V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
Cbdy
V2EX  ›  Go 编程语言

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

  •  
  •   Cbdy · 2019-06-13 17:09:17 +08:00 · 11635 次点击
    这是一个创建于 1997 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言  ·  2019-06-14 10:06:51 +08:00
    来自活雷锋(@littleMaple )的链接传送门:

    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
    90 条回复    2019-06-17 22:07:22 +08:00
    acehow
        1
    acehow  
       2019-06-13 17:17:26 +08:00 via Android   ❤️ 13
    这不是显而易见的吗?还用写这么一大坨来说明? go 就是谷歌自己的编程语言啊,由于开源在 github 上,会听取些社区意见,但具体语言的发展方向和功能取舍还是由谷歌做决定的。这样就挺好的了,大公司造出轮子,你学着用就完了。你还要掌握轮子的控制权,是不是要求的有点多了?
    judeng
        2
    judeng  
       2019-06-13 17:18:54 +08:00   ❤️ 9
    或许得不得到的才是最好的,国内很多人把 google 想的太伟光正了
    kx5d62Jn1J9MjoXP
        3
    kx5d62Jn1J9MjoXP  
       2019-06-13 17:23:55 +08:00   ❤️ 1
    一下子想不出来哪个广泛使用的编程语言是“社区”的,绝大部分其实是个人主导的
    echo314
        4
    echo314  
       2019-06-13 17:25:32 +08:00
    你没话语权,其他语言,照样影响不到它的发展。

    社区,说到底还是由一群有话语权的人和组织构成的。
    petelin
        5
    petelin  
       2019-06-13 17:26:08 +08:00   ❤️ 1
    是社区的又能怎么样, 也轮不到我们去指手画脚
    judeng
        6
    judeng  
       2019-06-13 17:26:17 +08:00   ❤️ 1
    google 又不是傻白甜
    Jirajine
        7
    Jirajine  
       2019-06-13 17:27:36 +08:00 via Android   ❤️ 1
    Linux 是 linus 的,而非社区的
    kidlj
        8
    kidlj  
       2019-06-13 17:27:56 +08:00   ❤️ 2
    想 open 就自己 fork 啊,怕作者没那个能力。Python 不也有一位终身仁慈 dictator。
    VDimos
        9
    VDimos  
       2019-06-13 17:29:39 +08:00 via Android
    Go 是 Google 的推导出谷歌不是善茬儿,这个怎么得出的?
    hmzt
        10
    hmzt  
       2019-06-13 17:29:40 +08:00
    @ssynhtn c/c++算吧,如果你说的社区是社区的每一个人都有权决定,那就太混乱了,根本做不到
    hoyixi
        11
    hoyixi  
       2019-06-13 17:34:34 +08:00   ❤️ 2
    问:为啥没有像 Java OpenJDK 一样的 openGo ?
    众人皆私下嘈杂, 唯 Java 答:侬现在个瘪三也能跟我比?
    u823tg
        12
    u823tg  
       2019-06-13 17:37:54 +08:00
    开源不开放吧!!! 不像 rust 流程放哪还有用。 go 完全一言堂
    azh7138m
        13
    azh7138m  
       2019-06-13 17:43:48 +08:00   ❤️ 1
    引用的文章 "A response about dep and vgo" 里面说的挺清楚,dep 存在很多问题,感觉黑的没啥道理啊。
    你一个包 /依赖管理,哪怕不是自带,做的真的好,社区也会用脚投票的(比如 yarn 对比 npm )。
    passerbytiny
        14
    passerbytiny  
       2019-06-13 17:48:46 +08:00   ❤️ 4
    首先,转载请再标题注明转载。
    其次,我看了原文,严重不同意原作者的观点。
    原作者有一个非常严重的错误:把谷歌排除在社区之外;或者换一种说法,把自已和一部分人当成整个社区。我不明白作者为什么要拿 Java OpenJDK 来说事,啥时候 OpenJDK 有不兼容 Sun/Oracle JDK ——闭源并且不免费——的专有特性了?而且 OpenJDK 社区的主导是商业公司和开源基金会,不是个人开发者。
    Phariel
        15
    Phariel  
       2019-06-13 17:49:43 +08:00 via iPhone   ❤️ 1
    Rust 也算 Mozilla 一言堂吗?
    Raymon111111
        16
    Raymon111111  
       2019-06-13 17:55:36 +08:00
    所以 redis 也是 redis 那个作者的

    没问题啊

    任何开源产品可以 merge master 的终究只是一小撮人
    charlie21
        17
    charlie21  
       2019-06-13 18:09:06 +08:00
    重要吗?
    KuroNekoFan
        18
    KuroNekoFan  
       2019-06-13 18:14:16 +08:00   ❤️ 2
    最`社区`的语言大概是 JavaScript 吧
    cubecube
        19
    cubecube  
       2019-06-13 18:14:30 +08:00 via Android   ❤️ 1
    @hoyixi 首先,狗家就写不出来一部像样的 go language specification,还有 jvm 规范😀
    janxin
        20
    janxin  
       2019-06-13 18:37:56 +08:00
    @cubecube 虽然不知道 G 家为什么写 JVM spec,不过 go 的 spec 没什么太大问题吧?
    janxin
        21
    janxin  
       2019-06-13 18:40:26 +08:00
    @KuroNekoFan “我们只要把事实标准变成真正的标准就好了!”
    hoyixi
        22
    hoyixi  
       2019-06-13 18:40:55 +08:00
    @KuroNekoFan #18

    你是想说 nodejs 吧

    JavaScript 本身更是巨头主导,背后本质是浏览器厂商, 个个巨有钱
    rrfeng
        23
    rrfeng  
       2019-06-13 18:42:09 +08:00
    你 fork 个 OpenGo 出来没人阻止你啊,所以后面还有什么要讨论的?
    vultr
        24
    vultr  
       2019-06-13 18:50:17 +08:00
    我想知道的是 google 有没有权利禁止一家公司用 golang, 如果有,那就比较可怕,如果没有,那应该没什么好怕的。
    love
        25
    love  
       2019-06-13 18:50:18 +08:00
    Go 比一般开源语言更是 Google 一家的而已,对一般人不影响 。

    除非你成了 Google 的大对手,又用着 Go 当主力,那可能会搞你,毕竟 G 家也不是白莲花。
    Chingim
        26
    Chingim  
       2019-06-13 18:51:41 +08:00 via Android
    @hoyixi ecmascript 很社区的,有 ecma 委员会,你可以申请加入。任何人都能给语言提 proposal,通过几个阶段后就可以加入到需要标准
    xfriday
        27
    xfriday  
       2019-06-13 19:00:43 +08:00
    java 还是 Oracle 的呢,还因为 9 行代码要 10 个亿美元呢,你们别用 java 了
    metrue
        28
    metrue  
       2019-06-13 19:06:30 +08:00
    @ssynhtn Rust 算么?
    beastk
        29
    beastk  
       2019-06-13 19:21:53 +08:00 via iPhone
    人家自家的东西,咋个就不能做主了,把你们惯的。
    1010543618
        30
    1010543618  
       2019-06-13 19:37:56 +08:00   ❤️ 4
    隔壁 JS 用‘#’开头当做私有变量已经走到阶段 3 了
    jziwenchen
        31
    jziwenchen  
       2019-06-13 20:02:38 +08:00
    第一篇文章里的意思大概是 go 语言是 google 的, 并不会按照社区的意愿去发展。要是一个人的能力强到可以设计语言的高度后就会很不舒服 google 的这种做法了。
    说白了,google 的产品不想让你用 你就用不了 用了就犯法. google 也不会听取他们不认可的意见 哪怕是好的意见.
    Cu635
        32
    Cu635  
       2019-06-13 20:06:28 +08:00
    @judeng
    是因为 google 曾经这样过,但是现在已经是完全沦落的了。标志性事件就是关闭 google reader。
    12101111
        33
    12101111  
       2019-06-13 20:09:21 +08:00 via Android   ❤️ 2
    Rust 的决策过程非常透明,RFCs 和 PR 都在 GitHub 上。
    vscode 也类似,除了少数闭源扩展
    azh7138m
        34
    azh7138m  
       2019-06-13 20:31:00 +08:00
    @1010543618 瞎黑,用 '#' 来保证前向兼容怎么了,你倒是给一个优雅的方案啊。
    cubecube
        35
    cubecube  
       2019-06-13 20:45:39 +08:00 via Android   ❤️ 2
    @janxin go-vm 的实现规范一部像样的文档都没有,兼容性也保证不了。必然出不来别的类似 openjdk j9 jrocket 之类的繁荣情形。好处就是 google 想怎么整就怎么整,坏处就是,偶尔大家得吃屎。jvm 的繁荣不是偶然的
    Daath
        36
    Daath  
       2019-06-13 20:48:46 +08:00 via Android   ❤️ 2
    希望川普不要一声令下出一个禁止一些公司用 go 的名单。。😂😂
    egen
        37
    egen  
       2019-06-13 20:51:10 +08:00
    skiy
        38
    skiy  
       2019-06-13 21:11:08 +08:00 via Android
    只要协议没改,我们都能自己 fork 一个出来二开。这个没什么好担心的
    janxin
        39
    janxin  
       2019-06-13 21:28:35 +08:00
    @cubecube runtime 的 spec 一直都没有过,语言 spec 跟 runtime 没关系。Go 没有 vm
    CYKun
        40
    CYKun  
       2019-06-13 21:34:01 +08:00
    @xfriday 9012 年了,还在这扯 9 行代码
    janxin
        41
    janxin  
       2019-06-13 21:40:21 +08:00
    @Cu635 G 家:我们就是要关掉用户喜欢用的(不赚钱业务!
    liuxey
        42
    liuxey  
       2019-06-13 21:41:52 +08:00
    有用会用就用,不能用就换,光甩两个 URL,自己完全不发表意见,看下面评论互相撕吗?
    LeonKennedy
        43
    LeonKennedy  
       2019-06-13 22:13:06 +08:00
    各位散了吧,这种营销文章当时然怎么挑事怎么说,别浪费时间争论了。让他滚
    miaomiao888
        44
    miaomiao888  
       2019-06-13 22:31:42 +08:00
    Chrome 改动一些功能有些人动不动说谷歌作恶,可人家代码明明都开源了啊,还要把心掏给你吗?
    Danswerme
        45
    Danswerme  
       2019-06-13 22:35:44 +08:00 via Android
    @1010543618 请问这些最新的 es 规范提案在哪里可以找到? ecma 的网站上?
    cubecube
        46
    cubecube  
       2019-06-13 22:38:32 +08:00 via Android   ❤️ 1
    @janxin 别较真,go 无非是把运行时打包了。叫啥无所谓
    beidounanxizi
        47
    beidounanxizi  
       2019-06-13 22:52:15 +08:00
    Go 是 谷歌的 也不影响我 喜欢 Go
    上哪找这么好的 Go roadmap 都给你画好了
    JAVA 有过吗?
    理解掌握一门语言这么轻松
    我觉得 Go 当之无愧
    impl
        48
    impl  
       2019-06-13 22:53:33 +08:00 via Android
    错。是 Rob Pike 的。
    impl
        49
    impl  
       2019-06-13 22:54:43 +08:00 via Android
    go 的吉祥物还是 Rob Pike 老婆画的。
    azh7138m
        50
    azh7138m  
       2019-06-13 22:56:58 +08:00
    @egen 回我做什么?
    我对 https://www.v2ex.com/t/573627#r_7480214 的回复是,js 在这里保证了前向兼容,是个很不错的方案,如果反对这个提案,请拿出一个更加优雅的解决方案,不要乱黑。

    我没看懂你这个回复意义何在。
    kidlj
        51
    kidlj  
       2019-06-13 22:59:44 +08:00
    @impl 原来那个人是 Rob Pike 的老婆啊,只是多次见到那个名字,关系还真不清楚。
    Cu635
        52
    Cu635  
       2019-06-14 00:10:07 +08:00
    @CYKun
    因为 Oracle 所属的国家是判例法系,法理上来说是可以援引一二百年前的判例来作为现在的判决依据的。当然要一直说了。

    @janxin
    其实主要是 google reader 关闭时间更早,要不然就是用 google code 说事了。毕竟 google code 支持多个版本控制协议。
    jon
        53
    jon  
       2019-06-14 00:16:39 +08:00
    论迹不论心
    agdhole
        54
    agdhole  
       2019-06-14 00:27:18 +08:00
    微软哭了
    littleMaple
        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
    1194129822
        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 行代码???你是智障???你比美国大法官还懂?经过这么多次判决为什么谷歌最终输了???呵呵
    AlphaTr
        57
    AlphaTr  
       2019-06-14 01:02:38 +08:00 via iPhone
    Go 不管是 Google 的还是社区的,首先它是开源的;就跟 Node.js 一样,之前是 Joyent 主导的,但社区只要你 NB,完全可以抛弃官方自己单独 Fork 一份带领着大家玩
    gramyang
        58
    gramyang  
       2019-06-14 06:50:31 +08:00
    抛开一万步说,只要 go 是开源的,并且其 mpg 框架的性能可以得到验证,那就有学习的价值。以后真的完全 ban 了我们也可以开发一套国产的类似 go 的语言,肯定也会用到 mpg 框架
    reus
        59
    reus  
       2019-06-14 09:40:01 +08:00
    @cubecube 你行你上啊,不给你提 pr 是么?还是说你提了 pr 就一定要接受,不然就不够社区? https://github.com/golang/go/blob/master/doc/go_spec.html
    reus
        60
    reus  
       2019-06-14 09:41:30 +08:00
    @cubecube go vm ?你连 go 有没有 vm,都不清楚,也好意思发言啊?
    AngryPanda
        61
    AngryPanda  
       2019-06-14 09:46:57 +08:00
    是谁的我不管,反正我要上。
    reus
        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 好几个编译器实现,完全没有问题。

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

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

    如果你只是以 Java 一种语言去衡量所有语言那就当我没说吧
    zhuangzhuang1988
        65
    zhuangzhuang1988  
       2019-06-14 09:51:55 +08:00
    肯定的,大部分社区有个屁的实力做牛逼的项目,最后还是某个人或公司上。
    66beta
        66
    66beta  
       2019-06-14 10:01:12 +08:00 via Android
    xxx 是微软的
    xxx 是脸书的
    ...
    passerbytiny
        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 的?
    FrankHB
        68
    FrankHB  
       2019-06-14 10:24:25 +08:00
    @beastk 连财产权地位都没有的破烂就好意思钦定什么自家不自家的了,看把你能的。
    FrankHB
        69
    FrankHB  
       2019-06-14 10:25:27 +08:00
    @azh7138m 优雅?把 private 这个屎概念忘掉。控制不手贱的做法多了去了,没必要整个包袱。
    KuoYu
        70
    KuoYu  
       2019-06-14 10:58:24 +08:00
    Python 不是一样的有仁慈的独裁者吗?一人一个意见会导致语言混乱的
    madmen
        71
    madmen  
       2019-06-14 11:01:42 +08:00
    周五了,开发任务完成了吗?就这儿划水....
    FrankHB
        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 的,但智商下限是从哪个方向往哪里辐射的还是个现实问题)。
    FrankHB
        73
    FrankHB  
       2019-06-14 11:35:12 +08:00
    @KuoYu 混乱不混乱看水平,但有水平不一定需要毒菜。毒菜要寡头起来,下场就是犯错一起蠢。
    GvR 干的蠢事可不少,有时候过于冒天下之大不韪的会被纠正并有一部分被承认(比如《 Final Words on Tail Calls 》如何 feel more educated ),但认怂认一半的态度还是很让人不爽的。
    于是久而久之,脑子更好使的人就不大愿意参与“社区”活动改进语言了。……你能指望剩下的能比他好哪去呢?
    xfriday
        74
    xfriday  
       2019-06-14 11:37:30 +08:00
    @1194129822
    @szq8014

    我不知道哪里得罪你们 2 位了,我看了你们的回复我心里挺不舒服,除了 block 我也没法干别的,不知道 v 站能不能举报
    zpf124
        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...
    继续做到 "一次编译到处调试".



    另外你看英语不好也可以翻译网页啊, 那个问题被关闭是因为提问者问有没有人能给个书或者文档, 让他详细了解一下几个的区别, 而有的人觉得这种提问会引来一堆推广自己作品的垃圾广告,所以才关了.
    azh7138m
        76
    azh7138m  
       2019-06-14 11:42:49 +08:00
    @FrankHB 我不是说 '#' 优雅,是指要做 private 没啥优雅的语法。
    class 是填之前 new func 的坑吧,以前巨蠢的继承方式,新语法要考虑 填坑 挖坑 兼容性,还能怎么做。
    FrankHB
        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 问题关不关和关闭的理由是不是可笑的问题本来就看脸,没什么参考性。
    FrankHB
        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 实现才简单。)
    yuankui
        79
    yuankui  
       2019-06-14 12:11:29 +08:00
    嗯,你牛逼,你 fork,让大家跟着你混。
    karllynn
        80
    karllynn  
       2019-06-14 12:12:24 +08:00
    大部分语言都是有主导者的,至少有个委员会,我觉得没啥问题啊
    darknoll
        81
    darknoll  
       2019-06-14 12:19:45 +08:00
    没毛病撒,觉得有问题的可以不用 go 转投其他语言啊
    testeststs
        82
    testeststs  
       2019-06-14 12:26:05 +08:00
    @passerbytiny
    JSL ???
    greenskinmonster
        83
    greenskinmonster  
       2019-06-14 12:30:57 +08:00
    自己 fork 一个,然后无条件接受任何 PR 就好了,这样就能保证 go 属于每一个人。
    testeststs
        84
    testeststs  
       2019-06-14 12:31:49 +08:00
    @gramyang
    那已有的项目呢?
    zpf124
        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 都不是它定的 谁没事回去关注它
    passerbytiny
        86
    passerbytiny  
       2019-06-14 12:58:29 +08:00
    @zpf124 #75 你这对“实现”的理解是真心独特。那么请问,ArrayList 中的 Array,对于 List 来说是不是私货。
    szq8014
        87
    szq8014  
       2019-06-14 14:19:22 +08:00
    @xfriday 因为你的回答没有任何建设性意义,本末倒置,java 是跟 Oracle 有关系,但是就是因为这事所以才讨论 go 是 google 的前提下还要不要去信 go 让 go 继续发展壮大。
    whp1473
        88
    whp1473  
       2019-06-14 14:36:59 +08:00
    @ssynhtn lua 算么?
    libook
        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,对其他贡献者不友好,所以也基本上封杀了发展为社区的可能性。
    FrankHB
        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 语言本身的首要文档这个事实。要推翻这点只能靠标题党诈欺了,还没谁做到。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1017 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 19:47 · PVG 03:47 · LAX 11:47 · JFK 14:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.