1
acehow 2019-06-13 17:17:26 +08:00 via Android 13
这不是显而易见的吗?还用写这么一大坨来说明? go 就是谷歌自己的编程语言啊,由于开源在 github 上,会听取些社区意见,但具体语言的发展方向和功能取舍还是由谷歌做决定的。这样就挺好的了,大公司造出轮子,你学着用就完了。你还要掌握轮子的控制权,是不是要求的有点多了?
|
2
judeng 2019-06-13 17:18:54 +08:00 9
或许得不得到的才是最好的,国内很多人把 google 想的太伟光正了
|
3
kx5d62Jn1J9MjoXP 2019-06-13 17:23:55 +08:00 1
一下子想不出来哪个广泛使用的编程语言是“社区”的,绝大部分其实是个人主导的
|
4
echo314 2019-06-13 17:25:32 +08:00
你没话语权,其他语言,照样影响不到它的发展。
社区,说到底还是由一群有话语权的人和组织构成的。 |
5
petelin 2019-06-13 17:26:08 +08:00 1
是社区的又能怎么样, 也轮不到我们去指手画脚
|
6
judeng 2019-06-13 17:26:17 +08:00 1
google 又不是傻白甜
|
7
Jirajine 2019-06-13 17:27:36 +08:00 via Android 1
Linux 是 linus 的,而非社区的
|
8
kidlj 2019-06-13 17:27:56 +08:00 2
想 open 就自己 fork 啊,怕作者没那个能力。Python 不也有一位终身仁慈 dictator。
|
9
VDimos 2019-06-13 17:29:39 +08:00 via Android
Go 是 Google 的推导出谷歌不是善茬儿,这个怎么得出的?
|
11
hoyixi 2019-06-13 17:34:34 +08:00 2
问:为啥没有像 Java OpenJDK 一样的 openGo ?
众人皆私下嘈杂, 唯 Java 答:侬现在个瘪三也能跟我比? |
12
u823tg 2019-06-13 17:37:54 +08:00
开源不开放吧!!! 不像 rust 流程放哪还有用。 go 完全一言堂
|
13
azh7138m 2019-06-13 17:43:48 +08:00 1
引用的文章 "A response about dep and vgo" 里面说的挺清楚,dep 存在很多问题,感觉黑的没啥道理啊。
你一个包 /依赖管理,哪怕不是自带,做的真的好,社区也会用脚投票的(比如 yarn 对比 npm )。 |
14
passerbytiny 2019-06-13 17:48:46 +08:00 4
首先,转载请再标题注明转载。
其次,我看了原文,严重不同意原作者的观点。 原作者有一个非常严重的错误:把谷歌排除在社区之外;或者换一种说法,把自已和一部分人当成整个社区。我不明白作者为什么要拿 Java OpenJDK 来说事,啥时候 OpenJDK 有不兼容 Sun/Oracle JDK ——闭源并且不免费——的专有特性了?而且 OpenJDK 社区的主导是商业公司和开源基金会,不是个人开发者。 |
15
Phariel 2019-06-13 17:49:43 +08:00 via iPhone 1
Rust 也算 Mozilla 一言堂吗?
|
16
Raymon111111 2019-06-13 17:55:36 +08:00
所以 redis 也是 redis 那个作者的
没问题啊 任何开源产品可以 merge master 的终究只是一小撮人 |
17
charlie21 2019-06-13 18:09:06 +08:00
重要吗?
|
18
KuroNekoFan 2019-06-13 18:14:16 +08:00 2
最`社区`的语言大概是 JavaScript 吧
|
19
cubecube 2019-06-13 18:14:30 +08:00 via Android 1
@hoyixi 首先,狗家就写不出来一部像样的 go language specification,还有 jvm 规范😀
|
21
janxin 2019-06-13 18:40:26 +08:00
@KuroNekoFan “我们只要把事实标准变成真正的标准就好了!”
|
22
hoyixi 2019-06-13 18:40:55 +08:00
|
23
rrfeng 2019-06-13 18:42:09 +08:00
你 fork 个 OpenGo 出来没人阻止你啊,所以后面还有什么要讨论的?
|
24
vultr 2019-06-13 18:50:17 +08:00
我想知道的是 google 有没有权利禁止一家公司用 golang, 如果有,那就比较可怕,如果没有,那应该没什么好怕的。
|
25
love 2019-06-13 18:50:18 +08:00
Go 比一般开源语言更是 Google 一家的而已,对一般人不影响 。
除非你成了 Google 的大对手,又用着 Go 当主力,那可能会搞你,毕竟 G 家也不是白莲花。 |
26
Chingim 2019-06-13 18:51:41 +08:00 via Android
@hoyixi ecmascript 很社区的,有 ecma 委员会,你可以申请加入。任何人都能给语言提 proposal,通过几个阶段后就可以加入到需要标准
|
27
xfriday 2019-06-13 19:00:43 +08:00
java 还是 Oracle 的呢,还因为 9 行代码要 10 个亿美元呢,你们别用 java 了
|
29
beastk 2019-06-13 19:21:53 +08:00 via iPhone
人家自家的东西,咋个就不能做主了,把你们惯的。
|
30
1010543618 2019-06-13 19:37:56 +08:00 4
隔壁 JS 用‘#’开头当做私有变量已经走到阶段 3 了
|
31
jziwenchen 2019-06-13 20:02:38 +08:00
第一篇文章里的意思大概是 go 语言是 google 的, 并不会按照社区的意愿去发展。要是一个人的能力强到可以设计语言的高度后就会很不舒服 google 的这种做法了。
说白了,google 的产品不想让你用 你就用不了 用了就犯法. google 也不会听取他们不认可的意见 哪怕是好的意见. |
33
12101111 2019-06-13 20:09:21 +08:00 via Android 2
Rust 的决策过程非常透明,RFCs 和 PR 都在 GitHub 上。
vscode 也类似,除了少数闭源扩展 |
34
azh7138m 2019-06-13 20:31:00 +08:00
@1010543618 瞎黑,用 '#' 来保证前向兼容怎么了,你倒是给一个优雅的方案啊。
|
35
cubecube 2019-06-13 20:45:39 +08:00 via Android 2
@janxin go-vm 的实现规范一部像样的文档都没有,兼容性也保证不了。必然出不来别的类似 openjdk j9 jrocket 之类的繁荣情形。好处就是 google 想怎么整就怎么整,坏处就是,偶尔大家得吃屎。jvm 的繁荣不是偶然的
|
36
Daath 2019-06-13 20:48:46 +08:00 via Android 2
希望川普不要一声令下出一个禁止一些公司用 go 的名单。。😂😂
|
37
egen 2019-06-13 20:51:10 +08:00
|
38
skiy 2019-06-13 21:11:08 +08:00 via Android
只要协议没改,我们都能自己 fork 一个出来二开。这个没什么好担心的
|
42
liuxey 2019-06-13 21:41:52 +08:00
有用会用就用,不能用就换,光甩两个 URL,自己完全不发表意见,看下面评论互相撕吗?
|
43
LeonKennedy 2019-06-13 22:13:06 +08:00
各位散了吧,这种营销文章当时然怎么挑事怎么说,别浪费时间争论了。让他滚
|
44
miaomiao888 2019-06-13 22:31:42 +08:00
Chrome 改动一些功能有些人动不动说谷歌作恶,可人家代码明明都开源了啊,还要把心掏给你吗?
|
45
Danswerme 2019-06-13 22:35:44 +08:00 via Android
@1010543618 请问这些最新的 es 规范提案在哪里可以找到? ecma 的网站上?
|
47
beidounanxizi 2019-06-13 22:52:15 +08:00
Go 是 谷歌的 也不影响我 喜欢 Go
上哪找这么好的 Go roadmap 都给你画好了 JAVA 有过吗? 理解掌握一门语言这么轻松 我觉得 Go 当之无愧 |
48
impl 2019-06-13 22:53:33 +08:00 via Android
错。是 Rob Pike 的。
|
49
impl 2019-06-13 22:54:43 +08:00 via Android
go 的吉祥物还是 Rob Pike 老婆画的。
|
50
azh7138m 2019-06-13 22:56:58 +08:00
@egen 回我做什么?
我对 https://www.v2ex.com/t/573627#r_7480214 的回复是,js 在这里保证了前向兼容,是个很不错的方案,如果反对这个提案,请拿出一个更加优雅的解决方案,不要乱黑。 我没看懂你这个回复意义何在。 |
52
Cu635 2019-06-14 00:10:07 +08:00
|
53
jon 2019-06-14 00:16:39 +08:00
论迹不论心
|
54
agdhole 2019-06-14 00:27:18 +08:00
微软哭了
|
55
littleMaple 2019-06-14 00:40:14 +08:00 1
来自活雷锋的链接传送门:
Russ Cox 的回应: Russ Cox ’ s response to “ Go Is Not a Community Driven Project ” - https://groups.google.com/d/msg/golang-nuts/6dKNSN0M_kg/Y1yDJRwQBgAJ Go 核心开发者的回应: Go Author's Response to 'Go Is Google's Language' - https://groups.google.com/forum/#!msg/golang-nuts/6dKNSN0M_kg/EUzcym2FBAAJ Hacker News 上对此争论的热烈讨论: https://news.ycombinator.com/item?id=19978200 https://news.ycombinator.com/item?id=20022177 https://news.ycombinator.com/item?id=20034891 |
56
1194129822 2019-06-14 00:42:15 +08:00 via Android
@xfriday 没想到哪里都一样。都有弱智,只是 Java 的商标在 oracle 手上,java 语言什么时候是 oracle 的了? jcp 拥有并最终决定 java 语言的发展,只是 oracle 是 jcp 执行委员会终生会员,但是还没有到决定 java 发现的地步.java 曾经也是 iso 标准。只是那些委员会看不起,所以只好自己发展 jcp。9 行代码???你是智障???你比美国大法官还懂?经过这么多次判决为什么谷歌最终输了???呵呵
|
57
AlphaTr 2019-06-14 01:02:38 +08:00 via iPhone
Go 不管是 Google 的还是社区的,首先它是开源的;就跟 Node.js 一样,之前是 Joyent 主导的,但社区只要你 NB,完全可以抛弃官方自己单独 Fork 一份带领着大家玩
|
58
gramyang 2019-06-14 06:50:31 +08:00
抛开一万步说,只要 go 是开源的,并且其 mpg 框架的性能可以得到验证,那就有学习的价值。以后真的完全 ban 了我们也可以开发一套国产的类似 go 的语言,肯定也会用到 mpg 框架
|
59
reus 2019-06-14 09:40:01 +08:00
@cubecube 你行你上啊,不给你提 pr 是么?还是说你提了 pr 就一定要接受,不然就不够社区? https://github.com/golang/go/blob/master/doc/go_spec.html
|
61
AngryPanda 2019-06-14 09:46:57 +08:00
是谁的我不管,反正我要上。
|
62
reus 2019-06-14 09:49:07 +08:00 1
@cubecube 运行时就是运行时,虚拟机就是虚拟机,不同的东西。go 没有虚拟机,所以就没有虚拟机规范。go 的目标代码是 x86, amd64, wasm, arm 这些,和 java 不一样。java 是编译成 jvm 字节码,所以才需要 jvm 规范。go 只有“语言规范”,没有“虚拟机规范”。这个语言规范已经有 google go, gccgo, llvm go, tinygo 好几个编译器实现,完全没有问题。
基本概念都不懂,“别较真”,“无所谓”,呵呵。 |
64
janxin 2019-06-14 09:50:20 +08:00
@cubecube 这里面区别大了啊,比如 VC 程序也有 Runtime,同样也可以静态编译,按照你的说法也是带 vm 的。
还有一个你混淆了 JVM spec 和语言 spec 的区别。语言 spec 对语法负责,足以保证相同代码获得同样的执行效果。当然执行过程中内存管理策略之类的问题,并不是所有语言都进行了限定,比如说 JS/Lua 之类的也都是这样的。 如果你只是以 Java 一种语言去衡量所有语言那就当我没说吧 |
65
zhuangzhuang1988 2019-06-14 09:51:55 +08:00
肯定的,大部分社区有个屁的实力做牛逼的项目,最后还是某个人或公司上。
|
66
66beta 2019-06-14 10:01:12 +08:00 via Android
xxx 是微软的
xxx 是脸书的 ... |
67
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 的?
|
70
KuoYu 2019-06-14 10:58:24 +08:00
Python 不是一样的有仁慈的独裁者吗?一人一个意见会导致语言混乱的
|
71
madmen 2019-06-14 11:01:42 +08:00
周五了,开发任务完成了吗?就这儿划水....
|
72
FrankHB 2019-06-14 11:17:07 +08:00 1
@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 的,但智商下限是从哪个方向往哪里辐射的还是个现实问题)。 |
73
FrankHB 2019-06-14 11:35:12 +08:00
@KuoYu 混乱不混乱看水平,但有水平不一定需要毒菜。毒菜要寡头起来,下场就是犯错一起蠢。
GvR 干的蠢事可不少,有时候过于冒天下之大不韪的会被纠正并有一部分被承认(比如《 Final Words on Tail Calls 》如何 feel more educated ),但认怂认一半的态度还是很让人不爽的。 于是久而久之,脑子更好使的人就不大愿意参与“社区”活动改进语言了。……你能指望剩下的能比他好哪去呢? |
74
xfriday 2019-06-14 11:37:30 +08:00
|
75
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... 继续做到 "一次编译到处调试". 另外你看英语不好也可以翻译网页啊, 那个问题被关闭是因为提问者问有没有人能给个书或者文档, 让他详细了解一下几个的区别, 而有的人觉得这种提问会引来一堆推广自己作品的垃圾广告,所以才关了. |
76
azh7138m 2019-06-14 11:42:49 +08:00
@FrankHB 我不是说 '#' 优雅,是指要做 private 没啥优雅的语法。
class 是填之前 new func 的坑吧,以前巨蠢的继承方式,新语法要考虑 填坑 挖坑 兼容性,还能怎么做。 |
77
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 问题关不关和关闭的理由是不是可笑的问题本来就看脸,没什么参考性。 |
78
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 实现才简单。) |
79
yuankui 2019-06-14 12:11:29 +08:00
嗯,你牛逼,你 fork,让大家跟着你混。
|
80
karllynn 2019-06-14 12:12:24 +08:00
大部分语言都是有主导者的,至少有个委员会,我觉得没啥问题啊
|
81
darknoll 2019-06-14 12:19:45 +08:00
没毛病撒,觉得有问题的可以不用 go 转投其他语言啊
|
82
testeststs 2019-06-14 12:26:05 +08:00
@passerbytiny
JSL ??? |
83
greenskinmonster 2019-06-14 12:30:57 +08:00
自己 fork 一个,然后无条件接受任何 PR 就好了,这样就能保证 go 属于每一个人。
|
84
testeststs 2019-06-14 12:31:49 +08:00
@gramyang
那已有的项目呢? |
85
zpf124 2019-06-14 12:39:12 +08:00
@FrankHB
JSR = Java Specification Requests java 语法规范提案 不论叫不叫 JLS 只要你这个是一个 JVM,并且发布给别人用了, 你就不能实现 JSR 定义以外的私货, 这是 java 跨平台的 确实是用技术以外的方式限制. 如果照你这么说 整个软件开发行业大部分都是靠技术以外的东西限制的, 而开源世界则是 100%靠技术以外的东西限制的. "连询问 JCP 制定的 JSR 跟 Oracle 制定的 JSL 之间的区别都是禁忌" "至于 SO 问题关不关和关闭的理由是不是可笑的问题本来就看脸,没什么参考性。" 一边说 是可笑的,没什么参考性, 一边用这个 可笑的案例得出了 JLS 和 JSR 是禁忌. 你搜不到 JLS 正是因为它不重要, JSR JEP 都不是它定的 谁没事回去关注它 |
86
passerbytiny 2019-06-14 12:58:29 +08:00
@zpf124 #75 你这对“实现”的理解是真心独特。那么请问,ArrayList 中的 Array,对于 List 来说是不是私货。
|
87
szq8014 2019-06-14 14:19:22 +08:00
@xfriday 因为你的回答没有任何建设性意义,本末倒置,java 是跟 Oracle 有关系,但是就是因为这事所以才讨论 go 是 google 的前提下还要不要去信 go 让 go 继续发展壮大。
|
89
libook 2019-06-14 16:28:20 +08:00
商业组织的开源项目和非盈利组织的开源项目从根本目标来说,还是不一样的。
其实开源界一直都有 Copyright 和 Copyleft 以及 free 和 non-free 的区别,我们可能听说过很多开源的好处,但绝大多数都是在 free 以及 Copyleft 下有效的,很多商业驱动的开源项目都只是商业组织对开源社区的单方面输出,确实能促进相关行业的发展,但是实际上也是对行业的一种控制手段,Android(看华为,虽然能用 AOSP 源码,但市场是被 Google Play Framework 控制的)、Chromium (掌握市场的是 DRM 之类的非开放组件)也都是这样的。 不过 Go 可能好一点是,在 License 里没有写明 Google 拥有 Go 的 Copyright (写的是“ Authors ”),所以如果想公道一些的话,社区贡献者中增加非 Google 员工的比例就可以了。 Mozilla 的很多项目是 MPL2.0 授权的,是 Copyleft,但不清楚为啥 Rust 是 Apache2.0+MIT 的,但至少 Mozilla 基金会是具有非盈利性质的血统的,做决策不会太看重商业利益。 一个很现实的情况是,商业公司做了很多高质量的代码,非常好用,不需要外人再来做什么工作去完善,以至于助长了大量的伸手党,最后对于伸手党的惩罚也出现了——参考 Ant-design 事件。 然后现在有很多个人开发者也在使用一些 Copyright 非常强的协议,比如 MIT,对其他贡献者不友好,所以也基本上封杀了发展为社区的可能性。 |
90
FrankHB 2019-06-17 22:07:22 +08:00
@zpf124 虽然 Java 和 JVM 耦合有些过头,JLS 原则上不管 JVM,后者由 JVMS (Java Virtual Machine Specification) 规范。两者一定程度上是独立的。
例如 Dalvik 上能实现的 Java 能符合 JLS,但 Dalvik 不符合 JVMS。这也体现出加了私货在名义上有问题,但实际上能(单向)兼容的情况(虽然不是 Java 语言这个层次上的)。 很遗憾(?),现状就是 spec 本身约定的技术没法限制这些使用。(当然,法律一定意义上倒是可以算另一个次元的技术……) JLS 的确是有自身特殊的鸡肋,一个原因是实际起到作用的各种平台规范太多而架空了(有很多不同方面的现象,例如,JavaSE 这个配置在 Java 生态的占比的弱小,再如 JLS 过分依赖 JVMS )。 这根本上也不是技术问题;这造成的文档等支撑项目的维护成本就技术角度上其实是很不经济的,只不过所有权人看上去不在乎这个(或者有意乐意这样抬高某些门槛)罢了。 但无论 JLS 在整个体系里的存在感多弱,都改变不了 JLS 是用来规范 Java 语言本身的首要文档这个事实。要推翻这点只能靠标题党诈欺了,还没谁做到。 |