java9 的语法几乎没有变化

2017-06-03 18:47:09 +08:00
 zgqq

距离 java9 发布还有两个月,可惜语法居然没啥变化,现在 java 的语法糖实在太少了,写久了有点没意思啊

8481 次点击
所在节点    Java
68 条回复
wangxiaoer
2017-06-12 08:20:44 +08:00
@zgqq 我觉得如果有 js 开发经验,就不说 es6 了,jquery understore promise 这些库用过的话,那些流式操作符应该不难懂。
wangxiaoer
2017-06-12 08:28:08 +08:00
@sagaxu 及时这样,我仍然觉得 java 的那些语法糖(各种符号)相对还是少的。我觉得 java 最简单的地方在于他的认知统一,比如当你面对一个陌生的对象、数据结构,你不清楚有哪些 接口,输入一个点,IDE 直接全出来了。因为 java 里面大多数就是 xxx.y xx.y()这种操作。
Python 这种,完全抓瞎,你想计算一个字符的长度,s.length? s.size? 特么的猜了半天发现是 len(s), 但是别的地方又有 xx.y()这种,这就是严重的割裂,让人无所适从。基本上离了文档没法写,可是计算一个字符串长度而已,我看哪门子文档啊。
所以见到推荐 python 入门,觉得 python 简单的,我都难受,真心不如 js 入门好受。
Miy4mori
2017-06-12 09:05:11 +08:00
@wangxiaoer 我也想吐槽 python 这种 pop 和 oop 混搭的标准库,哈哈哈。
svenzhao
2017-06-12 09:54:05 +08:00
有些人真搞笑... 怪不得 java 经常被人吐槽..
又不是让你通篇人肉 debug
i+++i++i++++i 这种东西
一个程序员 连简单的语法糖都学不会 还学什么?弱智吗?很难吗?

满篇的啰里啰嗦破就一定好读?易维护??看得清楚????

无非就是给自己喜欢待在舒适区 找一个理由罢了
tlday
2017-06-12 10:26:43 +08:00
@svenzhao 我觉得把好好的讨论问题上升到人身攻击,阴阳怪气的嘲讽别人的人,才是真的恶心。
sagaxu
2017-06-12 13:40:47 +08:00
@wangxiaoer IDE 提示补全那都是静态类型的功劳,哪个静态类型语言的 IDE 没这个功能?这跟语法糖没什么关系。

你觉得 Python 不统一,那是因为你没系统的学过它,如果学过,就该知道所有的取长度的都是 len,不管是字符串还是字节序列,列表还是字典,只要是长度就是 len,相当统一,这点还被 go 语言借鉴了去。你是在 thinking in java,不是在 thinking in python。

实际上 Python 设计的非常简单和一致,但是这种简单只有学过 Python 的人才能感受到,不是精通 XX 语言就顺便附带着懂 Python 了。
wangxiaoer
2017-06-12 14:00:47 +08:00
@sagaxu 我没说我懂 python。你根本没有明白我在说什么,长度是 len(s)不错,可是去除空字符呢 s.strip(),如果不是查阅 api,我可能会觉得是"strip(s)"。

再举个例子,数组合并成字符串,根据开发 js java 的经验,直觉告诉我可能是 ary.join("") ,实际是','.join(s),好吧我认了,分割字符串,我想套路差不多吧,python 不走寻常路,那可能是",".split(s)吧,结果真正的分割是 s.spilt(),我能怎么办,我也很无奈啊。
sagaxu
2017-06-12 15:12:13 +08:00
@wangxiaoer 那是因为不知道__len__, __iter__, __init__等 magic 方法对于 python 的意义,所以你才会觉得 len 跟 strip 有可比性,才会以为有 strip(s)这样的东西存在,只有极其普遍和通用的方法,才有可能做到 built in 里去。你能告诉我 set/list/dict 等类型的 strip,应该如何定义吗?

Java 的 join 是 String 类型的静态方法,String::join(a, list) 对应 python 的 a.join(list)
Java 的 split 是 String 上的实例方法,所以 s.split()对应 python 的 s.split()

把 join 定义在 array 上的是 js,不是 java,跟 java 不一致的是 js,不是 python。

你无法下手 Python,这个锅 Python 不背。

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

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

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

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

© 2021 V2EX