开源,垄断,人才的成长

2018-11-20 12:12:46 +08:00
 onc

前段时间有个事情,某个国内厂商抄了 Chrome 的代码,却说是自己开发的,并取得了投资一事,大家骂成一片。

看到这个我却有一个其他的想法,为什么这个厂商不真的去自己开发一个浏览器内核?

因为 Chrome 已经开源了自己的内核。有现成的东西,对一个有盈利压力的厂商来说为什么不用?

OK。我们回来,如果那个厂商不去用 Chrome 内核,而是自己开发。结果会如何?

方法有 2:

  1. 首先他要找到并雇佣原来开发过浏览器内核的人才。容易找吗?我估计很难。Chrome 开源已经 10 年,V8 引擎也已经 10 年。放在 10 年以前,国内还真有开发浏览器内核的人,但现在应该基本都放弃了,很难找到在这个方面有现成经验的人。

  2. 招收新人,从 0 开始开发。抱歉,Chrome 已经开发了 10 年,你想多少时间可以赶上? 新人接手这样的底层项目,需要大量的时间慢慢开始。如果你愿意培养 2-3 年,而且找到的新人还不错,还有个好的项目带头人,到第 3 年的时候,我相信是可以出些成果的。但国内好像没这样的公司。

总之,不可行。说这么多,我们回来审视一下 Chrome 的开源,我们看到的是 google 对 浏览器开发产生了一种垄断,而这种垄断是随着时间越来越加剧。

这个是开源的副作用?

我觉得不是,这更像是商业开源的主要目的之一。

我们可以看到近些年很多国外的商业开源项目,公司一开始就将自己的主力项目开源,放到 github 上。例如:docker,mongodb....

为什么这么做? 告诉世界上所有关心这方面项目的开发者,我们已经开发了,你不用再写了,放弃你的项目吧! 这就是通过开源来造成一种技术垄断。

因此,商业公司的开源项目会横扫一大批初始开发者。本来这些开发者可以开发一个雏形版本,但由于商业公司开源了,导致这些雏形项目的开发者失去了开发的动力。所以,也扫清了很多的潜在对手。 任何伟大的软件,都是从最基础,最简单开始的。而这个开发动力一般就是市场的空白,或者相同项目的高售价。初始项目不需要太多人参与,一两个人足矣。这一两个人随着项目的开发,个人能力会得到提高,项目也会进一步前进。

没有持续的项目,人才是无法提高的。

最后,当开源项目经过多年的开发,这个世界上基本没有了类似项目的开发人才。即使有,也需要很长的时间才能赶上现有的项目。好了,开源造成的垄断就形成了。

这不能说好,但也不能说不好。开源作为一种软件开发方式,帮助了我们很快的共享了开发软件的很多有益信息,在本质上是提高了业界整体的开发水平,对整个行业是非常有益的。

这点应该是毫无疑问的。开源对软件行业产生了很大的推进作用。

但是,后期很多大公司拥抱开源,将项目开源,也有很多更深层次的原因。

好了,上面说了开源,以及开源对人才的影响,我想再引申到人才的成长。

记得很多年以前,有人总是问我,微软这么有钱,你们弄的这个项目虽然这么有前途,但人家想做的话,不一下就做出来了,哪还有你们什么事。每当说到这个,好像有钱就是万能的,有钱的公司就是无敌于天下了。 可这么多年过去了,我们看到微软并没有把所有新项目都吃下去,反而错失了很多东西。这里有微软公司方向等内部的原因。

我更想说的是,微软的人才不是做所有项目的人才。每个项目的人才都需要培养。

我们现在经常看到新闻说,华为公司每年投入几百亿到研发中,那么这几百亿的核心是什么?我想,就是养了很多人才,让他们对很多项目做研究与开发。这才是研发的核心,对人才的培养。

在现有的体系下,一项研发的成功以及未来进一步的发展,就靠这些人才来做。如果这些人才走了,即使留下了研发的成果,但后续可能很难继续进步。

而人才是如何来的? 人才是慢慢培养的。每个人才都有自己擅长的项目。

10 年前,虽然我也经常看各种网络协议,但从来没考虑过自己编写网络协议。经过 10 年的沉淀,看了这么多协议,近期又再对网络协议做比较、做优化,我忽然发现自己开始对网络协议有意见了,有自己的想法了,有修改协议的冲动了。

到了这个年纪,看很多计算机问题,与原先的角度完全不一样了。这是我这些年来不间断学习的结果。

所以,我个人认为:时间是一个关键点。对于任何项目,你给予人足够的时间去学习,去实践,他只要智商不低,未来总会成为某一方面的专家。

4 年前,国内搞 AI 的开发者应该非常非常少,但我相信,再过 2 年,你会看到很多国内搞 AI 的人才。

任何一种技术都不能成为一种壁垒,只要时间够长,人才是可以培养的。

没有什么独一无二的大脑,在同一时刻,世界上总有人和你一样有同样天才的想法。

世界是分布式的!

15341 次点击
所在节点    程序员
130 条回复
May725
2018-11-20 18:24:30 +08:00
这个见解让我对开源又了解了一分。
确实呀, 商业开源会造成类似垄断的作用,长时间积累的巨量代码,不是轻易能消化得了。
Sh1n3k3n
2018-11-20 18:30:19 +08:00
很高兴看到作者的文章,基于作者以下是个人对于开源,人才,垄断的看法。

开源的核心是思想,既让大家看到解决问题的新颖方法。
开发语言,是实现逻辑的工具。

开源的魅力:
虽然项目可能只具雏形,代码粗糙,但开源后对这种解决问题新思路大家都能看到。
开源能吸引这 2 种人才参与,让解决问题的逻辑和逻辑的优雅实现都能得到更多优化,甚至起到抛石引玉的效果。

对所有人的意义:
学习解决问题的逻辑思路,激发出更多的思路,学习实现代码,使用项目解决现实问题.....
每个人都能从开源项目获益。

人才:
一种是能想出解决方法的人才,既能发现问题并找到解决方法,或在基于前人对于某一个问题解决方案基础上能有更优解。
一种就是优雅使用开发工具实现解决方案的人才。
这些同作者意见一样需要时间培养的。

垄断:
这点略有异议作者的垄断可能指的是"这类问题大家都用我的解决方法吧"这样的想法,让后人看到这样的问题时只想到这一种解。
但这种垄断只是暂时的,需求和问题不断出现总有一些问题需求会触及到解决方法的先天弱势。
这时会有能人或公司另起炉灶创造出更好的解决方法。
Justin13
2018-11-20 18:37:54 +08:00
确实,写的不错,角度新奇。某种意义上开源让垄断变得更容易了。
kingwl
2018-11-20 18:41:26 +08:00
@kuangwinnie

1. 开源对开源者带来了什么(事实上的技术垄断)

相反 你任何时候都可以写一个至少和没有开源产品时的水平相同的产品, 然而你并不能免费用 /学习这个公开出来的代码库


2. 技术垄断下的一些后果((违背协议的)二次封装,小企业培养不了人才)
二次封装你完全可以开源, 那为什么说是违背协议?,难不成是为了建立新的技术壁垒?
小企业培养不了人才, 没有开源就培养得了吗? 这是公司的问题
kingwl
2018-11-20 18:47:06 +08:00
1. 首先他要找到并雇佣原来开发过浏览器内核的人才。容易找吗?我估计很难。Chrome 开源已经 10 年,V8 引擎也已经 10 年。放在 10 年以前,国内还真有开发浏览器内核的人,但现在应该基本都放弃了,很难找到在这个方面有现成经验的人。

你这样说, 是忽视了国内参与 chromium/v8 的开发人员的贡献, 国内有不少人活跃在这些社区, 我建议你发表言论之前先了解下

2. 有朋友会说了,既然他们已经开源,我可以再跟从他们的项目一起做开发啊。商业公司的开源项目,项目的主要开发者都是在一同工作的同事,你参与不到他们的具体讨论中去,也无法被分配项目。 所以,你也没法真正参与开发。你的角色无非是提出问题,找到 bug 而已,也就是测试人员。

参与开发并不难, 完全可以参与到讨论中(issue), 也可以被分配项目(committer), 你甚至还可以 review 别人的代码, 国内的一个反例就是 tidb


3. 商业公司的开源项目,你想再建立分支也比较困难。很多开源项目一开源就会放出大量的代码,而阅读这大量代码很困难。 特别是缺少设计思路,核心要点等等文档,导致你比较难以完全消化这些代码。做程序员的都清楚,从别人的基础之上开始继续写下去是一件非常困难的事情,这和自己重新再写一遍没什么太大区别。

相反, 在代码质量高, 测试与文档完善的情况下, 继续写下去比重写一遍简单太多了, 而代码质量高, 测试与文档完善这两个条件, 出现在大型开源项目中的概率大还是小厂代码中的概率大, 用屁股都能猜到
JerryCha
2018-11-20 19:02:52 +08:00
差不多是这个道理,就好像现在除了 AcFun 谁还去再发明一个 flv.js 会显得很傻逼一样。
但其实,要不要重复造轮子,取决于资本,不然 Google 还搞 Fuchsia 干啥。
lulinux
2018-11-20 19:06:13 +08:00
拿一个特例来证明开源会造成垄断,逻辑错误。windows 如果从一开始开源,就会像现在的 linux 一样四分五裂。另外,chrome 并没有获得垄断地位,无论是在 pc 端还是移动端。
secondwtq
2018-11-20 19:12:32 +08:00
楼主很会思考,可惜槽点不少

第一是没有中心思想,特别是最后几段什么“世界是分布式的!”的口号完全不知所云

然后是事实问题,Chromium 的开源背景很复杂,首先 Chromium 的浏览器外壳开源与否和本帖话题(本帖话题究竟是什么?)无关,因为大家都在用的是 Chromium 的内核,即 Blink 和 V8。Blink 是 Apple 的 WebKit 的 fork,WebKit 是 Apple 对 KDE 项目的 KHTML 的 fork。KHTML,不出意外的,是 LGPL 的——意味着按照 license,Apple 和 Google 想要做任何 non-trivial 的修改并发布产品,都必须开源他们的代码。两次 fork 都在社区中产生了很多的争论。当然 Apple 和 Google 作为商业公司,不出意外的,把他们自己的修改做成了 BSD 的 License,导致了现在 WebKit 和 Blink LGPL+BSD Dual License 的现状。这个例子举的太烂了。

dotCloud 之前一直在做开源,没想到 Docker 发布之后一下子火了,创始人表示是个 “ surprise ”

然后是心态问题,对待商业公司开源完全没有必要诛心。最简单的逻辑:项目不是说开源就开源,开源一个内部项目是有成本的,但是商业公司还在做,那么必然是有所得的。没有必要再做展开了,因为“很多大公司拥抱开源,将项目开源,也有很多更深层次的原因”这句话是废话,楼主这个帖子在“很多大公司拥抱开源,将项目开源,也有很多更深层次的原因”这句话之前的话绝大多数也是废话。

很多收费闭源软件,提供了学生版,功能限制的免费版,Apple 和 MSFT 的硬件设备有教育优惠,360 搜狗等桌面软件和一票互联网服务免费用,楼主认为这是为什么?我相信楼主还能就这个话题写出 1k5 字的长文来,但是这些商业行为套路早就被很多人熟悉并且分析过了啊,楼主的分析毫无新意。

“很多大公司拥抱开源,将项目开源,也有很多更深层次的原因”这句话之前的内容,唯一不是废话的是“这更像是商业开源的主要目的之一”

因为这句话和之前的事实错误一样,也是错的 ...

相比于各种促销活动,免费软件来说,开源是最“共产主义”的一种行为,将开源行为的*主要*目的定论为获得*垄断*地位,这是无法接受的
kuangwinnie
2018-11-20 19:16:36 +08:00
@kingwl
1. 我看未必,这也是这篇文章的主旨之一:
开源->创造新的轮子是不经济的->缺乏更多的人去创造轮子->导致事实上的技术垄断。

2. 我想说的是那个把开源的 chromium 拿去卖是违背协议的。(而且我不觉得这里有歧义)
没有垄断,小企业就有可能有更多的从低成本开发慢慢升级的机会,这也是这篇文章的主旨之一。

你的意见我能理解,但大家的思路完全不同。

但其实我想了想,这个问题是依托在不同的开源项目和不同水平的程序员看法会有不同的想法的。
搞机器学习的库和搞数据库的程序员还有新入行的和老油条,对于这个问题的想法可能完全不同。

这是两种不同解释问题和思考问题的角度,谈不上哪个更好,只是角度不同。我只能说这篇文章至少对于我,是很有启发的。
xuanwu
2018-11-20 19:34:58 +08:00
开源导致社区资源愈加集中于已处于领域优势地位的项目(如 Chrome)是必然的, 这是富者越富的一个方面--越不缺人力资源的地方越有人力资源.
楼主提到的两个问题非常现实(角色边缘, 代码很难消化). 而根源还是在于代码难以消化. 这就和英语命名有关. 正好今天回答的一个问题"中国为什么没有 Apache?"有异曲同工之处: https://www.zhihu.com/question/268978889/answer/535028630
init6reboot
2018-11-20 19:37:04 +08:00
我觉得很有道理,缺少探索过程的学习和应试差不多
solonF
2018-11-20 19:43:47 +08:00
楼主的表达能力或者我的阅读能力有一个肯定是不合格的。
首先一篇文章的排版,楼主用了 1-2 列举,和两个·,我想问一下,那两个·那两段应该是比较清晰的表述吧,为什么有一段·的开头是“有的朋友会说了”
楼主设问:厂商自己开发浏览器内核,结果会如何?然后另起了格式变异的一段,开头是方法有 2,然后起了“ 1.2.”两段。按照这两段的字面意思,设问句的表意或许为“厂商自己开发浏览器的内核的方法我认为有两种途径”更合适。等……等等,这就是陈述句啊。而且用这个的话,加上自己的推测,不合适。
您在论坛发帖,想要大家讨论,发出一篇乱糟糟的文章让人不太好参与(我觉得,但是这帖热度还挺高)
稍微概括一下您的讨论点:您认为开源是商业垄断的一种手段,开源和人才成长之间的关系是人只有从项目最开始做起才会成为人才。
我不知道前面几位说思路赞,写得好的人从您的主题中获得了什么。但作为一个有十年阅读网络协议经验的人来说,您的表达能力真的太差了,从标题到主题的排版到逻辑。但是如果是 troll 的话,您还是蛮成功地拉到了关注。
ruimz
2018-11-20 19:51:39 +08:00
我们老师也这么说过。他们几个研究生同学在 8 几年的时候自己做系统,芯片,指令集,原型机都做出来了结果!!美国人这时候开始卖芯片了,那以前做的就…不要了呗

然后,因为**领域涉及到**安全的各种芯片之类,必须要自主可控,所以**在这方面投入很大
secondwtq
2018-11-20 19:55:30 +08:00
然后再来吐槽楼主关于“人才”方面的言论,虽然说所有事情最后都要落在人上,但是在这个世界中,个人的作用没有楼主想像的那么大

人们喜欢把应届生比喻为一张白纸,这里再做一个类比,某人(称为 X )随机招了 n 个人,这 n 个人可能有应届生(一张白纸),可能有有工作经验的人(被其他公司画过的纸)。现在把这 n 个人( n 张纸)叠加到一起,当 n 足够大且取样足够均匀时,X 得到的是一个所有点的颜色都一样的图案——还是一张白纸,只不过稍微黑了点 ...

决定这 n 个人的团队最后看起来是什么样子的,其实不在这 n 个人,而在于有权力在这张“灰纸”上画的人——也就是 X

简单来说,“关键人物”起的作用比普通成员要大得多。这个关键人物比如钱学森,马云,乔布斯,马化腾等。但是也不是说有了“关键人物”就能成事。我这个回复的主旨在于“‘人’没有楼主想像的那么重要”,不仅需要关键人物的“鱼”也需要其他的“水”。那就谈谈“水”的问题

首先没有合适的“水”,你可能根本找不到“关键人物”,比如你给的钱不够,没人愿意来,比如人家觉得你们技术氛围 /管理风格不行,呆着不舒服,仅仅举两个简单的例子。再次即使有了“关键人物”,“水”依然在持续发挥作用。比如说 Google 和阿里,两个公司都挺有钱吧,人才挺多吧,偏偏都一直想做什么“社交”,而且产品死的一个比一个惨,这是为什么?

这个道理很好理解,本站网友甚至都总结出公式了,阿里出的 App 必然又大又慢,阿里出的轮子很多都是方轮子,但是阿里明明一直招的人都还行啊,就是文化问题,环境问题

这个环境又不是马云一个人说了算的,实际情况更像是马云(关键人物)定了个基调,驴风(化名, 次关键人物)做了演绎,熊雷(次次关键人物)再做演绎 ... 最后的结果大概不完全是马云想要的,但是大体上符合马云想要的

这个例子还可以引申出另一个很有趣的事情是,阿里的轮子方可以不用,阿里的 App 慢照样有不少装机量,这又是为什么?

一个在本站接受量颇广的观点是“(想取得世俗的成功)技术没那么重要”,楼主可以自行回顾相关帖子

这个甚至包括大多数的开源项目(在此场景下“世俗”指代开源项目的 popularity )。举个例子,V8 这东西根本不是 rocket science,JIT 是可以追溯到 Smalltalk 甚至 John McCarthy 的东西,GC 之类的也是可以追溯到 John McCarthy 的东西 ... 天下前端一大抄,意思就是前端折腾了十几年,无非就是把其他领域早就有的东西搬过来自己造一遍轮子(更深层的含义则是前端还是“新兴领域”,或者用不那么友好却更通俗的话说是天生残废 ...)

所以我们甚至不需要钱学森,只需要大学里面找几个相关领域不那么水的教授过来指导指导工作就行 ... 放心,不是所有教授都在做 V8
xuanwu
2018-11-20 20:04:48 +08:00
@secondwtq 在"技术没那么重要"的情况下, 尽量利用先发优势扩大影响就直接影响生存了. 见#90 通过开源加速建立开发者社区是一个重要方面.
littleylv
2018-11-20 20:07:43 +08:00
楼主你开心就好
xuanwu
2018-11-20 20:11:16 +08:00
@kingwl
@lance6716 关于 TiDB, 也许正说明了: 程序是没有国界的, 但程序员(或者所在的公司)有

在#90 链接里, 有另一个方面的阐述:

现状是, 中文开发者主创的开源库 /框架, 绝大多数的贡献者也都是中文开发者, 即使非常流行和国际化的框架如 vuejs 也是如此. 原因肯定是多方面的. 能够想到的有:
- 有类似功能的国外开源项目. 作为外国程序员首选参与的肯定是那些
- 如果是和中文本身相关的库, 如结巴分词, 主要的用户也是中文开发者, 自然维护的也是
silvernoo
2018-11-20 20:14:18 +08:00
有意思的观点
secondwtq
2018-11-20 20:15:16 +08:00
@xuanwu 问题的关键在于“先发优势”不在于“开源”,问题的根本是*穷人如何赚钱,小破公司如何成为垄断大公司,后发国家如何追赶列强*的问题,就算没有“开源”,类似的问题依然还存在,比如 Microsoft Office,Autodesk,Intel x86
duer
2018-11-20 20:19:56 +08:00
@xivisi 同意,我也 block 了这个杠精

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

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

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

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

© 2021 V2EX