大家好,我是校长。
前几天,我在知乎上看到两个关于开源的有意思的话题,值得聊一聊。
这两个问题分别是:该以怎样的心态对待开源和如何看待国内开源项目的不可持续性?
个问题:该以怎样的心态对待开源?
题主是这样想的,他说:
必须承认开源为造商业的东西省了一些成本...
但对开源,其实我心里很不舒服.
小公司拿着开源项目做集成赚钱.
很多程序员拿着开源项目,可以不求甚解,但求玩得转了.
我自己的态度是,开源项目是用来学习的.
像我这种高不成低不就,又有点臭骨气的,如今已被远远甩在了后面...
想做个东西 -> 哦,都有现成开源项目了,
做成了个东西 -> 哦,就是 xx 一样的东西嘛,
做更好的东西的意义和机会就少了太多太多.
知识不值钱,点子不值钱。因为知识告诉别人,你获得了一时的优越感,但这一次性就出卖完了.
写个开源项目又怎样呢,有了一个作者的称谓,别人获得了你廉价的劳动成果,你含辛茹苦把代码写得非常清晰易懂,有的人还觉得老子一看就懂说明老子水平高,而你水平也就这样。无语...
开源也促成了不少伸手党,这些人很讨厌,从来只知道索取,从未对开源做过任何贡献.
如果说开源节省了成本,但因为泛滥了,水涨船高的关系。其实对于程序员的工作毫无降低,又让人养成依赖.
它对于程序员这个群体的价值是促进了还是降低了?
如果一个人有着点臭骨气,该怎样对待开源?
以上是题主在问题下的描述。
我聊一聊我的看法吧,顺便也把第二个问题「如何看待国内开源项目的不可持续性」穿插着回答一下。
分两个层面来聊一聊这个问题吧。
从开源项目使用者的角度来看
我们这个社会说到底就是一切以生产力为中心,凡事可以提高生产力的方式,我们都得用,也要学会使用,否则很容易被这个社会淘汰。
毕竟你生活在一个激烈竞争的社会,如果你效率低下,肯定是会被社会所淘汰的。
在有现成的工具的前提下,你非得自己花费很长时间自己去写一个,这个时间成本后就得你自己承担,公司是要转移成本的,既然你在浪费时间,那么公司就得转嫁到你身上,承担的结果就是你可能会被淘汰了。
当然了,除非你自己写出了一个更好的开源项目,效率比现成的更高,否则,你就是在干浪费时间成本的事情。
就像题主所说的,你特别讨厌很多程序员拿着开源项目,可以不求甚解,但求玩得转的现象。
这种现象确实非常普遍,作为一个要想在社会上生存,又有追求的程序员,当然是既要…… 又要了。
你既要使用现成的开源项目,又要研究开源项目,从中学习,提高自己的技术,可以开发出更好开源项目或者产品。
一定不要敌视开源项目,也不要因为自己心高气傲,有追求,有心气,就看不起开源项目,不使用开源项目。
要想在这个社会上混得好,活得好,就要有开放包容的心态,站在巨人的肩膀上看的远多,好的事,这不丢人。
如果你能站在巨人的肩膀上,还能做出超越巨人的事,那你就是创新,就是进步,更是高手。
我们不要因为有了开源项目,就过度依赖开源项目,不求甚解,以致于自己的技术没有进步,自己得不到成长,这是对自己的不负责。
你不要管别人如何使用开源项目,别人如何跟你没关系,你做到自己问心无愧,能对自己负责就够了。
从开源者的角度来看
我经常看到一些这样的话题:什么中国的开源项目没有持久的,终都会烂尾,不再维护。
聊这个问题之前,我们得先聊一聊为什么很多人要开源?我认为三点原因吧。
1、开源项目目前在咱们国内是一种有能力的象征,可以通过开源项目建立知名度和影响力,甚至有好的开源项目还可以在大厂的职位晋升当中有帮助。所以,很多人就开始想办法搞开源项目,当自己的目的达到之后,这个开源项目终也就不了了之了,不再维护了。
这是国内很常见的一种现象吧。
2、开源是为了建立自己生态。就像是 Android ,linux 等操作系统吧,都开源了,它们开源的目的就是建立自己的生态,当开源之后,就会有很多人使用,很多人会给它维护,让这个系统越来越好,生态也越来越完善。
虽然开源的系统可能不挣钱,但是,完善之后的生态可能挣钱。就像是 Android 系统开源之后吧,因为免费,很多人使用,很多人使用之后,基于这个 Android 系统的很多应用可以挣钱,谷歌打造了一个谷歌三件套,比如:Google Play,谷歌服务等,大家都得用吧?这可以挣钱,如果 Android 系统不开源,可能智能手机时代就变成了苹果一家独大了。
3、开源可能是为了减少竞争。什么意思呢?很多商业公司做出了不错的产品之后,其中的有些技术可能会开源,供大家使用。到这里,你可能想问:供大家使用,不是增加竞争了吗?怎么是减少竞争呢?
道理很简单,你又不是把所有的技术开源,而是其中的某些技术开源,那么当你开源之后,很多公司可能就会使用这个开源项目,如果他们形成依赖,那么他们的一举一动不就掌握在你的眼皮子底下了吗?当别人使用这些开源项目形成依赖,他们做出的产品就不可能超越你的产品。
如果你不开源的话,其他竞争的公司自己研究,极有可能研究出比你更好的技术,到时候,你就有可能被超越。
开源可以降低门槛,其实也降低了竞争。
就像是光刻机,如果我们一直使用荷兰的光刻机,可能就不会自己研究光刻机了,一旦遇到紧急情况,我们就有可能被别人卡脖子。当被卡脖子的时候,再去研究就来不及了,万一撑不住,不就憋死了。
就像是为什么微软纵容盗版啊?通过纵容,可以占据市场主导地位,同时可以对其他同类软件形成竞争,抢占同类软件在市场上的份额。
只要微软有意打击盗版,完全有能力进行正版验证,拒绝盗版 Windows 在线升级。微软就是利用中国盗版猖獗这一点,迅速占领中国市场。
有意的放纵盗版还造成一个对中国相当严重的后果:中国没有一家企业能研制出属于自己国家的操作系统!盗版 Windows 的光碟只要 3、4 块钱便可以买到,而开发一个操作系统则需要投入几亿资金,在这样注定亏损的情况下,根本没有哪家公司有能力研制出国产操作系统。.
微软便是借此打压竞争对手,等到没有竞争对手的时候,便是收网的时候,典型的便是对网吧、公司等商业行为使用盗版 Windows 系统进行控告,要求使用正版 Windows。
在客户只习惯使用 Windows 的情况下,很多商业公司只得乖乖听话,后微软其实在中国赚了很多钱,可能单个的普通用户无法感知。
开源亦是如此。
所以,只有第二种和第三种情况下的开源项目才会持续,因为第二种和第三种的开源,可以持续带来大家看不见的商业利益。而种的开源是无法持续的,因为种开源无法带来长久的利益,当开发者达到自己的短期目的之后,就不再维护了。