这事儿吧,还真不是空穴来风。1997年,乔布斯回归苹果,带着从NeXT带来的“嫁妆”——NeXTSTEP操作系统,而NeXTSTEP的底层,很大程度是BSD Unix。BSD是啥?当年加州大学伯克利分校搞的Unix分支,代码开放,允许别人随便改、随便商用。苹果在它的基础上鼓捣出了macOS,后来又整出了iOS。所以,你今天用的iPhone,骨子里流着开源软件的血。乔布斯确实站在了开源的肩膀上,这一点连果粉都不得不承认。但……等等,他不是一直痛恨开放,主张封闭生态吗?这故事可没那么简单。
说实话,第一次知道这事儿的时候,我挺震惊的。感觉就像你发现你家楼下卖煎饼的大爷,居然是某上市公司前CTO。乔布斯这么个控制狂,怎么会用开源?不过后来一想,搞技术的人精着呢,开源就像公共矿藏,挖出来炼成自家独门武器,再高价卖给你。没错,这就是BSD协议的精髓——你可以利用开源代码做闭源商业产品,不用公开你的修改。乔布斯选BSD,简直是精妙的一步棋。反观GPL协议,你要是用了它的代码,你的产品也得开源,这™谁敢啊?所以GPL一直被称为“病毒协议”,爱它的人爱得要死,恨它的人牙痒痒。
开源软件的“强盗逻辑”与理想主义
很多人觉得开源就是免费,随便用。啊呸!开源不等于免费,更不等于没规矩。你用了别人的代码,就得遵守人家的协议。MIT协议宽松得像个老好人,Apache协议给你专利保护,GPL则是强制共产。你一不小心用错了协议,就可能惹上官司。我认识一哥们儿,创业公司,图省事用了个GPL组件,结果被开源社区追着屁股要求开源整个产品,最后只好重写,差点倒闭。这些都是血泪教训。

但话说回来,没有这些协议,开源世界早乱套了。Richard Stallman这老爷子,极端得可爱,他非要搞个GNU项目,喊出“自由软件”,不是“免费啤酒”的自由,而是“言论自由”的自由。他发明的GPL,硬生生造出了一个庞大的开源生态。不过,自由软件和开源软件还真不是一回事。自由软件更强调用户的权利,有点道德洁癖;开源软件则更务实,强调协作和代码质量。就我个人而言,讨厌被说教,所以我更喜欢“开源”这个词,商业味重点怎么了,能推动技术进步就行。对吧?
大厂为啥疯了似的搞开源?
现在这年代,不开源都不好意思说自己是科技巨头。Google开安卓、TensorFlow,微软开VS Code、TypeScript,连曾经视开源为癌症的微软,现在都成了开源的最大贡献者之一。啧啧,真香定律。🤣 你以为他们是大发慈悲?其实大厂开源,都是一本万利的生意。安卓开源,让Google统治了移动世界;VS Code开源,干掉了多少代码编辑器,最终微软的Azure云服务赚得盆满钵满。说白了,就是通过开源建立生态,把你圈进他们的领地,然后从其他地方收割。当然了,也有纯粹回馈社区的,比如一些基础设施项目,但少之又少。
个人开发者在里面就惨多了。我见过太多优秀的开源项目,维护者一个人吭哧吭哧写代码,没报酬,还被用户当免费客服使唤。一旦更新慢了,就有人骂“项目是不是死了”。真是用爱发电,最后爱被耗尽。我就想对那些伸手党说:要么贡献代码,要么给钱,别光在那BB。💡

那开源软件到底安全不安全?这是另一个灵魂拷问。代码公开,理论上谁都能审查,漏洞应该更快被发现,对吧?但实际上呢,很多关键开源项目,维护者就一两个人,根本看不过来。2014年的“心脏滴血”漏洞,OpenSSL那个让人想死的Bug,存在了两年多没人发现,全世界一半的网站裸奔。开源的安全,建立在足够的眼睛上,可如果没人看,那就是皇帝的新装。这事儿想想都后怕。所以,别迷信开源一定安全,得看项目的活跃度和采用率。
中国开源,不蒸馒头争口气

聊点提气的事。以前总说中国是开源的消费者,不是贡献者。但这两年真不一样了。像PingCAP的TiDB,分布式数据库,在海外都挺能打;还有华为的鸿蒙,虽然争议大,但核心部分确实开源了;前端框架Vue.js,尤雨溪一个人干翻React,国人骄傲!中国开源正在从边缘走向主流,虽然还有很长的路要走,代码质量、社区文化都有待提升,但至少不再是看客了。我挺期待的,哪天能出个像Linux那样统治级的项目。
最后,推荐几个普通人能用的开源软件,轻松替代付费货:办公用LibreOffice,别傻傻地买Office365;修图GIMP功能不输Photoshop,关键免费;剪视频?Shotcut和Kdenlive,简单粗暴;3D建模Blender,这小强简直逆天。PDF工具就用Okular,密码管理KeePass,记笔记Joplin。✅ 说穿了,开源软件不是洪水猛兽,也不是万能神药,它就是一堆代码,用好了,你也能站在巨人的肩膀上,就像乔布斯那样。
我问答网