V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
onc
V2EX  ›  程序员

开源,垄断,人才的成长

  onc · 2018-11-20 12:12:46 +08:00 · 14845 次点击
这是一个创建于 1977 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

方法有 2:

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

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

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

这个是开源的副作用?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

世界是分布式的!

第 1 条附言  ·  2018-11-20 21:24:19 +08:00
很高兴大家可以一起讨论。

首先谢谢一些朋友的指正。
应该是 chromium 开源,而不是 chrome。

至于 Docker 的开源,我觉得很难讲到底他们是因为什么。

我组织文字的能力确实还有待提高,上下文不太严谨。

这篇文章更多的是我口头的一种自述。


人才的成长,我认为很关键。

在现实中,我很喜欢那些勇于自己造轮子的小朋友。

很可惜,现在这样的人越来越难以找到了。为什么?



我最后写了一句世界是分布式的, 因为还有想写的东西,所以最后留个尾巴!
第 2 条附言  ·  2018-11-21 22:20:04 +08:00
今天刚看到的文章,写的较细,可以供大家参考: https://www.infoq.cn/article/tWYf2BKsm-821OYBQY60

本人不是业界分析师,写文章不会提到各种详细的数据。毕竟不以此为生。

所以,写出的东西主观性很强,一家之言,仅供启迪。
130 条回复    2018-11-21 16:03:50 +08:00
1  2  
zhangZMZ
    101
zhangZMZ  
   2018-11-20 20:23:42 +08:00   ❤️ 1
google 公司的某些专利在人走后,他们自己都看不懂,还得花钱请人家回来讲。参考《数学之美》
secondwtq
    102
secondwtq  
   2018-11-20 20:24:23 +08:00
@xuanwu 提到了一个有意思的例子:React 和 Vue,不谈技术问题,还是谈“开源”与“先发优势”的关系

产品 Y 开源有利于产品 Y 的公共社区的发展,这应该是被普遍接受的观点,现在做推理:

* React 以开源的形式发布,发布了之后大家觉得吼都去用,形成了一定的社区,过了两年同样开源的竞品 Vue 发布了——这是实际情况,我们假设 Vue 从 React 社区抢下的市场 = x
* React 没有开源,发布了之后大家觉得吼都去用,形成了一定的社区,过了两年开源的竞品 Vue 发布了—— Vue 此时有开源的优势,Vue 从 React 社区抢下的市场应该是 > x 的
* React 没有开源,发布了之后大家觉得吼都去用,形成了一定的社区,过了两年竞品 Vue 发布了,同样没有开源——这个 case 和开源没有关系,Vue 从 React 社区抢下的市场应该约等于 x

可见开源与否只在竞品同样开源与否的前提下有意义,非开源的产品,同样会有自己的先发优势和社区,两个同样开源的产品竞争,和两个同样非开源的产品竞争是一样的。
DjvuLee
    103
DjvuLee  
   2018-11-20 21:23:12 +08:00   ❤️ 1
开源让整个社会都提高了效率,这是一个必然会走的步骤,任何阻碍这个的都是无效的。


大公司开源对小公司的有效的,但是对同等规模到大公司的狙击,比如 Google 开源了 tensorflow 之后,逐步形成了事实标准的时候,对 Microsoft 公司就是很大的狙击。

目前开源也有很多一些问题,比如大公司免费试用社区的软件建立服务,如 AWS 使用 Redis 等。

更多的是大家怎么来解决这些存在的问题,而不是拒绝开源。
owenliang
    104
owenliang  
   2018-11-20 21:30:46 +08:00 via Android
开源主要还是提供了轮子,好学的人会了解背后思想,日积月累想必能融会贯通物尽其用。
sammo
    105
sammo  
   2018-11-20 22:07:39 +08:00   ❤️ 4
我不知道 “开源” 是如何促进行业发展的。

实际上,只有在一个平行世界里,你才能发现 “开源” 对整个 IT 行业,是冲击 还是 帮助:
在这个平行世界里,所有世界都和本世界一样,唯一不同的是 IT 行业并不受到开源思想影响
只有在这个控制变量的情况下,才可能去鉴定 有“开源” 和 没有 “开源” 的 IT 行业,到底哪个好,哪个坏。

就像 你说新中国的所有成就都得归功于 CCP、什么 GDP 增长常年保 8 都是 CCP 领导下的功劳
但我可以说 如果没有 CCP 中国会发展得更好。

就像 你说 当代 IT 行业发展很大程度都得归功于 什么 “开源” 、什么 Github 各种项目常年活跃 都是 开源精神的功劳
但我可以说 如果没有 开源 ,IT 行业会发展得更好。

为什么呢?显然,你忽略了很多东西并且就生活在 CCP 统治的中国下,所以你根本想象不到没有 CCP 的中国会是什么样子。你就生活在 开源统治之下,你根本想象不到 没有 开源 的日子会是怎样的。

比如
为什么这个厂商不真的去自己开发一个浏览器内核?
因为 Chrome 已经开源了自己的内核。有现成的东西,对一个有盈利压力的厂商来说为什么不用?
OK。我们回来,如果那个厂商不去用 Chrome 内核,而是自己开发。结果会如何?

我当然可以说
如果 Chrome 没有开源,那么 所有东西都是 闭源 的,那么 “开发浏览器内核” 作为一个很 NB 的技术,掌握它的公司,本身就足以盈利 —— 就是买软件。
懂得开发浏览器内核的人才,直接靠买软件就可以盈利。靠传统软件行业就可以盈利 —— 就不用去研究什么广告推送系统。人材也不会往互联网行业扎堆

那么,传统软件行业,也不会被人们所鄙视。互联网行业 也不会那么聒噪。人们也不会蜂拥而至进入互联网行业。整个 IT 行业 也都会有一个很清晰的门槛 摆在那里。

-

在你说什么开源促进了行业发展云云时,我可以说,正因为 有这些破玩意,所以 大大小小的培训班可以很容易地量产程序员 —— 尤其是前端程序员,因为前端圈子里开源玩意最多 —— 因为各种开源玩意存在,所以降低了行业门槛,拉低了全行业平均收入

请继续为开源欢呼吧,因为你不知道你失去了什么
kingwl
    106
kingwl  
   2018-11-20 23:33:08 +08:00   ❤️ 1
@kuangwinnie 开源->创造新的轮子是不经济的->缺乏更多的人去创造轮子->导致事实上的技术垄断。

1. 不是开源导致创造轮子不经济, 假设一个极端情况,chromium 没有开源,但是授权只需 1 人民币, 你还认为你的这个链条成立吗?

2. 即使没有开源,大公司依然会保持垄断与技术壁垒,小公司依然很难有发展的机会(别忘了专利),依然会形成事实垄断,但是与现在不同的是,做其他方向的小公司必须为此付出代价
kingwl
    107
kingwl  
   2018-11-20 23:36:49 +08:00
@xuanwu 关于 TiDB, 也许正说明了: 程序是没有国界的, 但程序员(或者所在的公司)有

是因为
1. 语言 因为能看懂母语, 所以交流方便
2. 专业领域, 因为你需要用中文相关,所以才会参与社区

但是这并不妨碍

1. 如果你是美国人 /英国人 /中国人 /任何人,参与交流
2. 如果你是美国人 /英国人 /中国人 /任何人,反馈 bug
3. 如果你是美国人 /英国人 /中国人 /任何人,成为 committer
4. 如果你是美国人 /英国人 /中国人 /任何人,使用代码,for free
xuanwu
    108
xuanwu  
   2018-11-21 02:10:29 +08:00
@secondwtq 商业公司通过开源获得人力资源是一种在推广的同时吸引劳力, 加速建立优势的方式(开源初始并不一定已有市场优势), 这种方式与其他已有市场优势地位的闭源项目用于维持或者延长优势地位采用的各种其他方式(商业宣传 /招聘)没有本质区别. 在此过程中公开了无论是不是"没那么重要"的技术, 总归是好事, 这也是楼主文末说到的, 假以时日, 在现在开源项目中处于边缘的国内开发者, 通过这么些年的学习(和对国外公司的无偿贡献), 迟早会有自己的核心项目和社区形成.

@DjvuLee 我并不认为楼主原意是拒绝开源, 而是探讨商业公司开源项目的商业目的. 毕竟在商言商, 商业运营必需要劳力和用户. 诸位是不是把商业开源和非盈利的开源组织混为一谈了?

@kingwl "任何人"? 源自 wiki:
英语的母语使用者: 360 – 400 million 第二语言使用者: 400 million; 作为外语使用者: 600 – 700 million, 总计算 15 亿
中文的仅仅算母语使用者: 12 亿
世界总人口: 77 亿
mcfog
    109
mcfog  
   2018-11-21 08:27:07 +08:00 via Android
1. 开源社区和商业公司的博弈和平衡你也许是没有看到,也许是刻意忽略,即使是大公司,做商业开源并不像你描述的那么容易,没有社区生态那不叫开源,只能说是源代码可下载

2. 不赞同开源难学,即使是特别大型特别困难的项目,开源也一定时降低了学习难度的,从头写难度是 100,有个混乱的开源项目难度也许是 95,有个良好的开源项目难点也许是 70,但如果你只有 5 的实力,可能连这个项目风格好不好,适不适合学习都判断不对

3. 我觉得如果你是真心觉得开源难学难参与,还想自己玩网络协议,那我觉得你可能是学的太少想的太多
kingwl
    110
kingwl  
   2018-11-21 09:12:12 +08:00
@xuanwu

假以时日, 在现在开源项目中处于边缘的国内开发者

谁告诉你在项目中处于边缘? 以 node 为例, 不管是 CTC,还是 committer,甚至到本地化, 都活跃着国人的身影

中文的仅仅算母语使用者: 12 亿 世界总人口: 77 亿

你只说了母语, 然而语言使用者会更多, 这个语言的门槛并不会比你给一个 cpp/go/rust/js/etc 项目提交代码需要会写 cpp/go/rust/js/etc 更高

退一万步说, 交流的英文要求很低, 非常口语化, 你只要有小学毕业的英文水平+google 翻译, 就可以基本无障碍的参与交流, 真的很难吗?
kaesi0
    111
kaesi0  
   2018-11-21 09:13:10 +08:00
挺不一样的思路
a4854857
    112
a4854857  
   2018-11-21 09:41:37 +08:00
提出了有趣的思考的,有讨论价值的的问题都要被 block。。block 到底是个什么工具啊,这些人怎么活下去的,越活越窄么
publicvoid
    113
publicvoid  
   2018-11-21 09:56:16 +08:00
#112 同想吐槽这种动不动就 block 的,傲娇的很,有不同的意见就说,又不是什么立场问题和三观问题。。。
publicvoid
    114
publicvoid  
   2018-11-21 09:58:26 +08:00   ❤️ 1
什么已 block,就跟小朋友一样,哎呀,不跟你玩儿了。。。
acoder2013
    115
acoder2013  
   2018-11-21 10:04:51 +08:00
raptor
    116
raptor  
   2018-11-21 10:19:43 +08:00
据我所知,docker 的开源过程大概是这样的:

他们公司原来是做某个互联网产品,为了部署方便开发了一个 docker,但是主打产品搞不好,公司快倒闭了,但是觉得这个 docker 还不错,不能浪费了,就放出来开源,早期 docker ( 2014 年以前)问题还是很多的,反正我是试了一下就没怎么正经用过,但是因为开源了,所以慢慢发展起来,越来越好了,这公司就起死回生了。
chinachimney
    117
chinachimney  
   2018-11-21 11:07:32 +08:00
好文章,虽然外行,但有所感触
loryyang
    118
loryyang  
   2018-11-21 11:18:24 +08:00   ❤️ 1
反正开源之后,程序员的活路少了好多,这行挣钱的路子也少了很多
我现在并不喜欢这个东西,就像以前的传统手工艺人,他是不会把自己吃饭的手艺来出来开源的。我觉得,大大拉低入门门槛,对一个行业里面的从业者来说,不是好事。
当然这是大势所趋,一旦开始就无法回头了,类似囚徒困境的恶性竞争下,很难再回去
canxden
    119
canxden  
   2018-11-21 11:25:42 +08:00
首先明确下, 楼主在这里不是讨论技术, 也不是讨论任何可以精确到某件事情的话题, 而是在说一个 IT 圈的哲学性问题.
既然如此. 那不妨先问问, 某些事是不是"这样"的, 再问"这样"对不对.
在你说的论据中, 很多事你说的"这样", 都会产生争议, 又何来对不对呢.
Norie
    120
Norie  
   2018-11-21 11:33:49 +08:00
存在即合理。
lixiangalixiang
    121
lixiangalixiang  
   2018-11-21 11:52:47 +08:00
比较赞同楼主,其实我一直以来也奉行对源码开放管理。而对于工程上比较简单的事情,比如核心算法模块,做一定的保密处理。研发一个算法本身很耗时间,但是写出来的代码反而很简单、很容易抄袭,这方面的泄露对公司来说是很不利的;而一定业务相关的代码,本身系统上就很复杂,复杂性主要是劳动力堆积产生的(当然架构设计方面设计也是比较费脑力的),对于拿到代码的人来说,想要掌控要花非常大的成本,最多就是参考一下设计,加快一下他们本身研发业务的进步。
vishva
    122
vishva  
   2018-11-21 11:59:42 +08:00 via Android
所以你到底在说什么,能不能总结一下
iyangyuan
    123
iyangyuan  
   2018-11-21 13:33:21 +08:00 via iPhone
这个目光有些局限了吧,历史是向前发展的,哪有永久的垄断?
no1xsyzy
    124
no1xsyzy  
   2018-11-21 13:49:09 +08:00
@yangzhezjgs #24 谁跟你说过中国是共产主义了吗?
cnt2ex
    125
cnt2ex  
   2018-11-21 14:01:43 +08:00
???

我怎么读完下来读出了“开源导致垄断”这个结论????????
abelmakihara
    126
abelmakihara  
   2018-11-21 14:10:44 +08:00   ❤️ 1
其实就和学术界发论文一个道理
yangzhezjgs
    127
yangzhezjgs  
   2018-11-21 15:09:33 +08:00
@no1xsyzy .....你什么阅读能力,“我以前还读过一篇文章,说有批评者说,开源软件是共产主义的阴谋。。”我说的那篇文章是篇英语文章,也是讨论开源利弊,和中国是不是共产主义有什么关系。
tt67wq
    128
tt67wq  
   2018-11-21 15:20:26 +08:00
我一直以为开源软件是大公司不想擦屁股的项目才会开源的
no1xsyzy
    129
no1xsyzy  
   2018-11-21 15:55:44 +08:00
@yangzhezjgs #127 哦欧,你的两段话粘得真牢,我眼 parse 没能分开
javaist
    130
javaist  
   2018-11-21 16:03:50 +08:00
思考角度新颖,色即是空,空即是色~~~
有没有人就“世界是分布式的!”写个小说看看啊
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3703 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 25ms · UTC 10:23 · PVG 18:23 · LAX 03:23 · JFK 06:23
Developed with CodeLauncher
♥ Do have faith in what you're doing.