Go 语言是谷歌的,而非社区的

2019-06-13 17:09:17 +08:00
 Cbdy
11648 次点击
所在节点    Go 编程语言
90 条回复
AngryPanda
2019-06-14 09:46:57 +08:00
是谁的我不管,反正我要上。
reus
2019-06-14 09:49:07 +08:00
@cubecube 运行时就是运行时,虚拟机就是虚拟机,不同的东西。go 没有虚拟机,所以就没有虚拟机规范。go 的目标代码是 x86, amd64, wasm, arm 这些,和 java 不一样。java 是编译成 jvm 字节码,所以才需要 jvm 规范。go 只有“语言规范”,没有“虚拟机规范”。这个语言规范已经有 google go, gccgo, llvm go, tinygo 好几个编译器实现,完全没有问题。

基本概念都不懂,“别较真”,“无所谓”,呵呵。
szq8014
2019-06-14 09:50:06 +08:00
@xfriday 这边屎不好吃,去另一边看看那边的屎好吃不。
janxin
2019-06-14 09:50:20 +08:00
@cubecube 这里面区别大了啊,比如 VC 程序也有 Runtime,同样也可以静态编译,按照你的说法也是带 vm 的。

还有一个你混淆了 JVM spec 和语言 spec 的区别。语言 spec 对语法负责,足以保证相同代码获得同样的执行效果。当然执行过程中内存管理策略之类的问题,并不是所有语言都进行了限定,比如说 JS/Lua 之类的也都是这样的。

如果你只是以 Java 一种语言去衡量所有语言那就当我没说吧
zhuangzhuang1988
2019-06-14 09:51:55 +08:00
肯定的,大部分社区有个屁的实力做牛逼的项目,最后还是某个人或公司上。
66beta
2019-06-14 10:01:12 +08:00
xxx 是微软的
xxx 是脸书的
...
passerbytiny
2019-06-14 10:03:38 +08:00
@1194129822 #52 谷歌了一遍,没发现 JCP 能决定 Java 的描述,也没发现 Java 能忽略 JCP 的描述,连询问 JCP 制定的 JSR 跟 Oracle 制定的 JSL 之间的区别都是禁忌—— https://stackoverflow.com/questions/51282326/what-is-the-difference-or-relation-between-jls-jsr-and-jep。所以你有什么证据证明 Java 是 JCP 的,而不是 Oracle 的?
FrankHB
2019-06-14 10:24:25 +08:00
@beastk 连财产权地位都没有的破烂就好意思钦定什么自家不自家的了,看把你能的。
FrankHB
2019-06-14 10:25:27 +08:00
@azh7138m 优雅?把 private 这个屎概念忘掉。控制不手贱的做法多了去了,没必要整个包袱。
KuoYu
2019-06-14 10:58:24 +08:00
Python 不是一样的有仁慈的独裁者吗?一人一个意见会导致语言混乱的
madmen
2019-06-14 11:01:42 +08:00
周五了,开发任务完成了吗?就这儿划水....
FrankHB
2019-06-14 11:17:07 +08:00
@egen 看 TC39 的 proposal 十有八九就有种进了动物园的味道……
跟大部分猴子驱动的 proposal 类似,这个玩意儿里面也没给出 necessity。
在 the private syntax FAQ 说的大量废话都没涉及到为什么非得这样做(非要说有,就是 reflect 过头的历史 zz 设计,以及没敢提的兼容性)。
少量有意义的真话( Why is encapsulation a goal of this proposal?)却因为放在 syntax FAQ 里自己就变成笑话了。
结果还不就是 class 脑么……至于光是要强调 encapsulation,正经点的解法?多了去了,搞成 syntaxless 也不复杂,比如:
klisp.org/docs/Encapsulations.html#Encapsulations
虽然这坨也有一些问题,但在 es 这里不难变通掉。
……算了,大部分作者和用户的程度确实不到敢直接干掉 class 或者自己发明出 keyed variable 之类的水平。
比起 STC 什么乱七八糟的这里已经算是看得过去了(相比之下,虽然搞 Lisp 的都有分不清 PTC 和 TCO 的,但智商下限是从哪个方向往哪里辐射的还是个现实问题)。
FrankHB
2019-06-14 11:35:12 +08:00
@KuoYu 混乱不混乱看水平,但有水平不一定需要毒菜。毒菜要寡头起来,下场就是犯错一起蠢。
GvR 干的蠢事可不少,有时候过于冒天下之大不韪的会被纠正并有一部分被承认(比如《 Final Words on Tail Calls 》如何 feel more educated ),但认怂认一半的态度还是很让人不爽的。
于是久而久之,脑子更好使的人就不大愿意参与“社区”活动改进语言了。……你能指望剩下的能比他好哪去呢?
xfriday
2019-06-14 11:37:30 +08:00
@1194129822
@szq8014

我不知道哪里得罪你们 2 位了,我看了你们的回复我心里挺不舒服,除了 block 我也没法干别的,不知道 v 站能不能举报
zpf124
2019-06-14 11:38:47 +08:00
@passerbytiny

缩写错了, JLS = Java Language Specification
是 oracle 出的 java 语言规范的说明文档, 是告诉了你这个版本的 java 语言支持哪些标准. 这个是说支持哪些规范,而不是说 定义了一些规范.

JLS 就是个菜篮子, 你去逛商场,你要哪个就把哪个放进来, 但不是说你要自己在菜篮子种白菜.
JLS 的 se8 文档会告诉你, 这个版本里支持 JSR-335(lambda 表达式), 不支持 JSR-376(模块化语法) .


那这个 JSR-xx 是什么呢, 是 JCP 提出的一些规范, 这些规范告诉了你 某个语法是怎么写的, jvm 某个特性会如何执行, 这个最终定稿是靠投票的, 是 JCP 的大佬们开会的.
Oracle 作为 Java 商标拥有者 确实在这个会议上话语权不小,但也有其他话语权不弱于它的大佬, 比如 IBM, AZUL 等等.


定标准的永远都只有 JCP 一个地方.
类似 js 里那种 -webkit-xxx 这种事实规范抢先与规范设计和审议的事情在 java 里不存在, 这样的情况会影响兼容性.
从 sun 创建 java 的时候就就不允许这种影响跨平台兼容性的事情发生,参考 微软的 j++.

如今安卓导致了类似的问题, 所以现在 java 社区有些人在尝试做一个运行在安卓 Dalviks 上的真正的 JVM...
继续做到 "一次编译到处调试".



另外你看英语不好也可以翻译网页啊, 那个问题被关闭是因为提问者问有没有人能给个书或者文档, 让他详细了解一下几个的区别, 而有的人觉得这种提问会引来一堆推广自己作品的垃圾广告,所以才关了.
azh7138m
2019-06-14 11:42:49 +08:00
@FrankHB 我不是说 '#' 优雅,是指要做 private 没啥优雅的语法。
class 是填之前 new func 的坑吧,以前巨蠢的继承方式,新语法要考虑 填坑 挖坑 兼容性,还能怎么做。
FrankHB
2019-06-14 11:50:43 +08:00
@zpf124 要英语好,也没指出 JSR 的 S 和 R 分别是什么意思啊。
JLS 的 S 就是 specification,说 JLS 定义了 Java 语言,完全没有问题。你要自己实现一坨现成的 Java,而不管以后版本迭代的问题,用不着 JSR。
更一般地,你可以往 JLS 里种自己的菜而不需要 JSR,只不过因为一些非技术限制你不能把加了你自己私货的东西叫做 JLS ——但即便是这样,仍然不妨碍你照着这坨东西撸一个 Java 的扩充实现。
(类似 C++往 C 里面种菜也不叫 C,但是有一段时间 C++就是能作为 C 的 superset。)
至于 SO 问题关不关和关闭的理由是不是可笑的问题本来就看脸,没什么参考性。
FrankHB
2019-06-14 12:05:56 +08:00
@azh7138m
这是死胡同。
0.首先,class 本身无论怎么设计都容易有一堆破事,必须 trade off …… zz 正确的话就算了。
1.一般地,基于 class 的 private 的特性几乎不可能在设计上优雅到哪去(虽然是否容忍最终取决于设计者口味),不得不在 spec 写死不少 ad-hoc rules。
2.即便能容忍恶心到 spec 和实现的维护者,只是对某些用户来说能做到看上去的表面的优雅,在 ES 这类动态语言里水土不服。(机制上和现有别的 private 的语言不大一样,理解也不省事。)
3.再考虑实际需求(比如性能)和 ES 本身各种特性杂烩压缩了不少变通的余地,基本上就更没指望实现上优雅的可能性了。
4.另一方面,ecapsulation 的需求是普遍而真实有效的,被迫跟怎么都干净不了的特性捆绑这种做法,一开始在方法论上已经和优雅绝缘了。
5.结果就是,怎么改都不会更优雅……那么还是弃疗吧,等更根本的麻烦解决清楚了再说,而不是成为新的兼容性包袱。(关键是真实需求并不非得通过 private 实现才简单。)
yuankui
2019-06-14 12:11:29 +08:00
嗯,你牛逼,你 fork,让大家跟着你混。
karllynn
2019-06-14 12:12:24 +08:00
大部分语言都是有主导者的,至少有个委员会,我觉得没啥问题啊

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

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

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

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

© 2021 V2EX