V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  sagaxu  ›  全部回复第 439 页 / 共 481 页
回复总数  9606
1 ... 435  436  437  438  439  440  441  442  443  444 ... 481  
2017-06-11 15:02:35 +08:00
回复了 zgqq 创建的主题 Java java9 的语法几乎没有变化
@wangxiaoer 你说的那是 Java <= 6,一个死守 Java 6 的人,看到 Java7 和 Java8 的新特性,也会 parse 不了的。随便举几个例子。

Java 7 的 try-with-resource 让人一愣,Java 7 的 multi-catch 会让人思考 exception 的类型顺序,
Java 8 就更多了,lambda 表达式,stream 和并行 stream,随便拿个官网例子
double average = roster
.stream()
.filter(p -> p.getGender() == Person.Sex.MALE)
.mapToInt(Person::getAge)
.average()
.getAsDouble();
不熟悉 Java 8 的人 parse 起来真的 0 成本吗?而且即将发布的 Java 9,往这个方向越走越远,简单到不学就能用的日子,已经是过去时了。
2017-06-11 10:41:30 +08:00
回复了 zgqq 创建的主题 Java java9 的语法几乎没有变化
@wangxiaoer 脑子稍微正常的人,学个面向大众的新语言也是毫无难度,跟看小说一样,最多几天就学会了。语法是为这门语言的用户服务的,还是为熟悉别的语言但是不愿意熟悉这门语言的其他语言用户服务的?
2017-06-11 10:24:21 +08:00
回复了 zgqq 创建的主题 Java java9 的语法几乎没有变化
@gnaggnoyil 有什么软件是必须用 partial specialzation,不用就做不出来的? C 里的异常不就是用 goto 和 setjmp 做的么?语法糖无非就是少写几行代码,它不会给语言增加原来没有的能力。
2017-06-10 19:59:32 +08:00
回复了 ghui 创建的主题 问与答 大家对于收费软件的看法?
订阅了 jetbrains 全家桶,不说物美价廉,至少物有所值
2017-06-10 19:58:16 +08:00
回复了 1010011010 创建的主题 问与答 后端( PHP )有没有必要深度学习数据结构和算法
需要用到数据结构和算法的职位,不会招 PHP
2017-06-10 19:46:36 +08:00
回复了 EchoUtopia 创建的主题 程序员 学习 golang 的时候, copy 了份在线文档出来
官网文档很好了啊,文档网站本地也可以运行
2017-06-10 18:57:42 +08:00
回复了 ghostheaven 创建的主题 问与答 2017 年买个啥显示器写代码
@aheadlead 这个相当不错,我用了之后已经推荐好几个同事买了
2017-06-10 13:28:10 +08:00
回复了 silenceeeee 创建的主题 职场话题 找工作找到怀疑人生啊。
5 年以上都要高级或者资深了,没有公司愿意招一个 5 年的 CRUD 选手
@issues 你那是 python2,module 名字不同
Java 反序列化 JSON 得到的 object,不能调用它的方法吗?
2017-06-06 21:46:58 +08:00
回复了 ghui 创建的主题 Kotlin kotlin 大家在用了吗?
@Miy4mori 之前需要被 aop 操控的 class 需要写 open,除此之外还有哪些拧巴?
2017-06-06 18:30:19 +08:00
回复了 ghui 创建的主题 Kotlin kotlin 大家在用了吗?
用了半年了,日 PV 过亿的项目
2017-06-06 16:28:15 +08:00
回复了 muziling 创建的主题 Kotlin 为啥类属性 Kotlin 要贬低 Java
@silva C++这样也能算最灵活?估计你没玩过 lisp 吧。一个语言流行不流行,有很多因素在里面,灵活不灵活只是很小的一个因素之一。你觉得死板是优点,你高兴就好。不喜欢死板的 Javaer,已经用上 Lombok 了。
2017-06-05 19:54:58 +08:00
回复了 muziling 创建的主题 Kotlin 为啥类属性 Kotlin 要贬低 Java
@silva 对你来说是语义混淆,对我来说那是增强,它不会给我造成任何不清晰或者不明确,相反会节约我时间。

数量跟正确性无关,但是一大波主流语言的设计者们的共同选择,正确的可能性还是蛮高的。

从根本上说,是否加入 XX 特性可能无关正确性,而是各人根据自身经验和喜好,做的一个决定罢了。

ps: 从某种程度上讲,interface 和多态,是同类型同签名方法的不同语义,也是一种你眼中的混淆,只不过你没法回避这种混淆,只能认命。
2017-06-05 15:35:50 +08:00
回复了 muziling 创建的主题 Kotlin 为啥类属性 Kotlin 要贬低 Java
@mko0okmko0 Koltin 性能 >= Java,得益于 inline 方法
2017-06-05 15:34:27 +08:00
回复了 muziling 创建的主题 Kotlin 为啥类属性 Kotlin 要贬低 Java
@silva 你当然有权认为这是混淆,但是 C#,Swift,Python,Ruby,PHP,JS,VB 等等都是这么做的,这已经是比较 common 的 sense 了,也许 Java10 或者 Java11 也会引入这样的特性,你接受不了可以不用。哦,顺便说一下,即使是 Java6,用了注解,也会有一些改变语义的 magic 发生,是不是也是种混淆?还有==运算符,有时候比的是引用,有时候比的是值,你也别用了。
2017-06-05 14:21:48 +08:00
回复了 zgqq 创建的主题 Java java9 的语法几乎没有变化
@msg7086 Python 现在也经常有人写 list/dict/set comprehension 了,偶尔还会有两层甚至三层的 comprehension,Java 不这么写,只是因为长期以来一直语法罗嗦不方便这么写,Java8 稍稍改进了一点但还是不够简洁。

我举个例子试着对比一下可读性和罗嗦之间有没有关联,先来个 Java 版的
https://gist.github.com/anonymous/b7361b54a68afe154f9a4eb01ad0e228
71 行代码,原汁原味的 getter 和 setter,sortByAgeA 和 sortByAgeB 分别用了 Java7 和 Java8 的 style,更罗嗦的 Java7 可读性更高吗?我不觉得。

再看一下 Kotlin 的写法,
https://gist.github.com/anonymous/ba398be974f1861256a5770eb33b009c
只有 13 行代码,没有 getter/setter,连 toString 都自动合成了比较理想的形式,sort 的方法太简短,以至于专门定义个方法都显得多余。

more verbose 并不能得到 more readable,两者相关,但没有因果关系,再举个例子
a = a * b 和 assign a * b to a 比,后者更 verbose,而且不会让初学者对等号产生疑惑,但它可读性如何呢?
2017-06-05 12:36:07 +08:00
回复了 zgqq 创建的主题 Java java9 的语法几乎没有变化
@af463419014 去年恰好接手了一个两年的项目,我先把 Java6 升级到 Java8,再把 spring3 升级到 spring4,然后把 maven 迁移到 gradle,最后引入 Kotlin 混合开发,除了新增文件都是 Kotlin 以外,偶尔得闲了还不忘挑一两个 Java 文件转换成 Kotlin,夹带在版本中一起测试发布,迁移还是比较平稳的。

Java 不是语法糖不足的问题,它是落后现代语言太多,不跟别的比,就跟 C#比,它的语法也显得有些老态龙中了。如果我同事 low 到连一点儿最基本的语法糖都成为障碍,我会考虑换同事,或者换工作,不会迁就培训班水平的同事。
2017-06-05 12:07:46 +08:00
回复了 muziling 创建的主题 Kotlin 为啥类属性 Kotlin 要贬低 Java
@silva 你不需要看上下文,你可以当作它就是调用了 setter,赋值只是它的优化,优化时省略了自动合成的 setter 而已。即便是 Java 写了 setter,你不看代码,仍然不知道它是不是只做了赋值,还是做了别的事情。你创建的对象,JVM 也会做优化,有的在堆上,有的在栈上,通过逃逸分析和 JIT 等优化手段,它有很多种可能性,你在 Java 里写的 getter/setter,JVM 仍然存在帮你把方法调用优化掉的可能性,所以你关心是真的赋值还是 set 方法,毫无意义。

@af463419014 不熟悉 kotlin,熟悉 Python 或者 C#也行,即便 JS 也有这个功能,property 是很多现代语言的共性,并不会增加多少理解上的困难。Kotlin property 能做的事情远非 getter/setter 这么简单,它还能很方便的实现 lazy 求值。事实上很多 Javaer 已经开始用 Lombok 去自动合成 getter/setter,IDE 的确能比手写省事不少,但是一个 300 行的文件,跟一个 100 多行的文件,每次读到多出来的 100 多行代码会占用大脑几个 cycle,有时还要多拖动两下,降低效率。
2017-06-04 22:27:11 +08:00
回复了 zgqq 创建的主题 Java java9 的语法几乎没有变化
@CRVV 语义是一样的,只是性能不同,qsort 也能用 macro 封装,https://github.com/ahmadsalim/qsort-inline,这样就没有函数调用开销了,多态也可以通过函数指针模拟,内核 VFS 不就这么干的么。
1 ... 435  436  437  438  439  440  441  442  443  444 ... 481  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   911 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 3974ms · UTC 21:24 · PVG 05:24 · LAX 14:24 · JFK 17:24
Developed with CodeLauncher
♥ Do have faith in what you're doing.