感觉 java8 和之前的 java 不是一种语言。

2016-05-15 22:18:49 +08:00
 baozijun
感觉完全就是 scala 了.....
8370 次点击
所在节点    程序员
41 条回复
knightdf
2016-05-15 22:33:00 +08:00
只是有一些地方像 scala 而已, scala 还是要复杂的多
hujianxin
2016-05-15 23:02:09 +08:00
别闹了哥们
tobyxdd
2016-05-15 23:12:18 +08:00
??
bramblex
2016-05-15 23:21:18 +08:00
Haskell 党后排瓜子板凳围观即将到来的装逼+撕逼大战
baozijun
2016-05-16 00:00:44 +08:00
@hujianxin 没有啦,只是刚看完 java8 实战,全是函数式编程的使用,所以吐槽下
caixiexin
2016-05-16 00:13:56 +08:00
stream api 蛮好用的
Bryan0Z
2016-05-16 00:17:36 +08:00
其实我也这么觉得……之前试着写 Java 8 ,旁边一只 Java 猿走过来,硬是没看出我在写 Javs
hantsy
2016-05-16 01:00:59 +08:00
Java 8 算是一次飞跃了。。。用过就知道了。

1. JVM 层面,引入 Metaspace ,干掉了 Permgen , OutofMem 。。。新的 G1 回收算法。
2. API 方面就太多了, JSR 310 ,多线程,并行计算, Lambda , FuntionalInteface , Optional , Stream 等等。
hantsy
2016-05-16 01:06:26 +08:00
@baozijun 之前我也只是用一些 Java 8 特性,特别喜欢 JSR 310 。

后来一个项目用 Spring Integration , 用上了其 Spring Integration Java DSL (它也有 Scala , Groovy DSL ),这东西,根本把 Java 8 的新特性体现出来了。第一次看那个经典的 Cafe 例子,差点晕了。

https://spring.io/blog/2014/11/25/spring-integration-java-dsl-line-by-line-tutorial

Cafe 这个例子作经典的 EIP 安案例也有 Apache Camel 版本。
incompatible
2016-05-16 01:06:33 +08:00
Time API 终于堪用了,把之前的 Date 和 Calendar 设计者的脸打得啪啪响。喜闻乐见。
hantsy
2016-05-16 01:22:34 +08:00
@incompatible JSR 310 是 Joda Time 的标准化, Spring Data JPA 已经支持(通过 JPA 2.1 的 AttributeConverters 转换,下一代的 JPA 应该会内置支持), Hibernate 5.1 自己也内置支持新的时间了。

但另外一个 Money API 没进 8 , 也没看到有 9 的计划,有这个处理金融数据方面多了。 Money API Spring 4.1 已经宣称已经支持了。。。 Hibernate 有第三方支持。

以前的时间, Currency 在地域之间转换考虑不足。
ayaseangle
2016-05-16 02:38:15 +08:00
特性少,语法啰嗦。。
linux40
2016-05-16 08:28:25 +08:00
我觉得,不向前兼容是这个版本可以叫做一门新语言的必要条件。。。
PyPog
2016-05-16 08:59:28 +08:00
让我想起了 Python
Mutoo
2016-05-16 09:29:04 +08:00
还有 ActionScript3
qqmishi
2016-05-16 09:58:49 +08:00
以及 swift
LINEX
2016-05-16 10:07:23 +08:00
有了 lambda 表达式,代码结构变好看了,不过任重道远啊,距离 Scala 还差得远啊~
NullMan
2016-05-16 10:33:19 +08:00
@LINEX 个人认为, Lambda 是 Java 最烂的特性了. 仅仅只是代码变少了而已, 但是变得非常不好读, 不好写. 在你没有那个类库的函数式接口的源码情况下(.jar), 你根本就不晓得那个函数式接口的唯一一个抽象方法名到底叫什么, 参数类型是什么, 返回值是什么类型. 你必须看着这类库的 API 文档写代码.

我不觉得匿名内部类比 Lambda 差. 匿名内部类, 对编写者, 读者, IDE 都是有好处的. Lambda 对这三者毫无好处. 仅仅只是代码行数变少了而已, 而这在大型工程型项目里, 是微不足道的, 哪怕是在微型项目里也是微不足道的.

详情见: http://www.importnew.com/10480.html
reeco
2016-05-16 10:35:06 +08:00
@NullMan +1 ,厂里写 Lambda , code review 都过不了
LINEX
2016-05-16 10:55:27 +08:00
@NullMan
@reeco
确实没考虑到可读性,以后还是少用为妙。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/278823

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX