「如果你有正确的态度,有趣的事情自然会找到你。」 —— Eric S. Raymond

1.

开源三问

一直记得很多年前的那个夏日午后,当我游荡在波士顿艺术馆里,突然被迎面而来的一大幅油画震撼住的场景。

那是一副色彩斑斓、布局奇特的画,从右到左依次画着三组人物:右边是几个女子和一个婴儿,中间是一个踮着脚、抬头举手正在摘果子的年轻人,左边则是一位迟暮的老人和一位女子,还有只鸽子。画面的左上角则用亮黄色的色彩衬托着三行法文:D ou venons nous/ Que Sommes nous / Ou Allons nous v。我好奇地拍下来用手机上的字典查了下,译文是:“我们从哪里来?我们是谁?我们往哪里去?” 原来这就是「人生三问」,高更的经典画作!

随着接触越来越多的开源社区,以及和不同的开源社群深入的交流,我也不由地心生好奇, 犹如高更画作里的人生三问:开源从哪里来?开源是什么?开源往哪里去?

2.

开源从哪里来

在深入了解开源的历史后,我们会发现开源其实不是与生俱来的,而是一个经过妥协后的名词,它最初的名字叫「自由软件」。

20世纪末期,自由软件运动和商业化专有软件历经过十多年的斗争和博弈。在1998 年 2 月,在硅谷一群资深黑客召开的一场小型聚会上,为淡化自由软件的纯意识形态而创造了「开源」这样的一个中性名词。而召集这场聚会的就是写出了一本以技术的视角但非技术化地描述了开源现象的书籍,已经成为也必将继续成为开源世界的经典之作《大教堂与集市》的作者——Eric S. Raymond (雷蒙德)。

确实,即使放在那个年代,自由软件也是一个意识形态十分浓厚的名词。自由软件由其发起人理查德·马修·斯托曼(Richard Matthew Stallman,下文简称 RMS) 针对当时市场上专有软件提供商不提供源代码而影响了程序员修改权利的现象发起的一场呼吁软件用户自由的运动。他的思想内涵有四层:

1. 用户对于软件的使用自由

2. 用户对于软件的修改自由

3. 用户对于软件的再发布自由

4. 用户对于将软件修改后的再发布自由

RMS 对这些权利主张的逻辑是:软件控制电脑,电脑控制人类;当如果由编写专有软件的公司控制了软件,那么变相就是公司控制了人;人类就会因此失去自由。

与其说他是个黑客级的精英,不如说他是人类自由的先锋卫士。斯托曼以其超越常人的前瞻性远见,意识到当人类进入到数字化时代,软件用户自由应当是人类的一项基本权利。

我想这个问题随着技术的快速发展,人类在数字世界面临的自由问题,已经不只是代码自由的问题,更是用户对在软件中产生的内容的自由权,以及软件智能对人类自由的影响和侵害等更多更深层的问题。关于数字世界里人类是否拥有自由的权利,及如何却拥有自由的权利的思考和行动实际上却远还没有开始。

而随后的市场是残酷无情的,事实上大多数的用户只关心软件给自己带来的使用便利,而其实根本不怎么关心软件使用的自由,最多只是更多地关心软件好不好用。如果有问题,供应商是否能提供及时的维护问题,就给微软这样的软件公司只要在承诺适当维护和更新的情况下,这似乎是符合市场潮流的。但即使在那样的情况下,Stallman 仍旧以堂吉诃德般的骑士精神孤独而执着地捍卫着。

聪明绝顶如比尔盖茨举起了版权的大旗,用管控用户的软件自由防守着自身的商业利益,而聪明的斯托曼也同样高高举起了版权的大旗,舍弃了自身的利益来捍卫用户的软件自由。比尔盖茨的旗帜叫 Copyright,而另一面叫 Copyleft [i]。就像我们阴阳太极,每样事物都有其正反两面,关键看使用它的人。而在 Copyleft 上闪耀的纹章就是 GNUGPL(通用许可证)。

就像比尔盖茨给他的 DOS、Windows 标出了市场零售价格,斯托曼的 GPL 同样给自由软件标出了价格。自由软件不是没有代价的,它是有价格的。只是它的价格不是以金钱来度量,而是当你自由地享用自由软件时,你也同时应当自由地把自由软件分享给到其他人。

且不说斯托曼在软件领域内作为顶流黑客的技术共献,仅自由软件的宣言和他借用版权规则发布的 GPL,就已经成就了自由软件运动的灵魂和血液。正是 GPL,才让一个在遥远北欧的 21 岁青年在有幸听过了斯托曼的布道,随后在他一时兴起而编写的 Linux 系统里注入了这份血液,意外地却又是必然性地造就了世界软件史上一个新的传奇。

直到很多年后,当 Linus 在他的自传《Just for Fun (只是好玩)》中回忆起当年的时光。他说他只是想给自己编一个能够方便他接入到大学电脑的远程终端,他只是想把成就在圈子里炫耀一下,但一不小心做出了一个惊世之作 LINUX。在这样有些小想法的背后,实际上就是 Linus 在听取了 Stallman 的演讲后受到启发把自己软件随后按照 GPL 许可的方式发布出来。于是,一件出乎了所有人意料的事情发生,人们不仅贡献了想法和意见,进而贡献出了代码反馈回来。于是,一场代码共享的社会运动就在 GPL 协议下的轰轰烈烈地展开了。

同样很多年后,当 Linus 在自传里反思 Linux 的开发管理过程时:当初如果事先知道要做多少基础建设工作和付出多少代价才能让 Linux 成功推出,他就早就没有了任何斗志。如果事先知道了,他估计自己不管有多优秀都不够,如果知道了推出linux 有多少工作,他会有多辛苦,事情会变得多复杂,他大概就不会启动这个项目了。所以,对于创新来说,如果一切都是功利性目的去预见和计划的,那么未必都能产生真正的创新。No plan is a plan。

而对于 Linux 的成功,他是这样反省自己的:一是他懒惰,二是他善于委托他人。但这也只是他自谦的说法,如果他懒惰,最多也是建设性的懒惰;他善于委托他人,但也更是他善于总结和管理他人的代码。他甚至因此建立了第二个开源的 GIT 项目,也成就了今天的 GITHUB、GITLAB 和 Gitee。

这不只是技术协作的成功,更是一次社会协作的成功。人类历史上第一次成规模地证实了,在发散并行无序的组织形式下,可以惊人的有序。他的成功首先打破了《人月神话》中 Brooks 定律:在一个已经延期的项目中,投入更多的人力时,只会让这个项目更加延期。同时又产生了一个新的林纳斯定律(Linus’s Law)——“足够多的眼睛,就可让所有问题浮现(Given enough eyeballs, all bugs are shallow)”。这就犹如牛顿的经典力学定律之后,突然有了量子力学定律,二者共同作用于世间。

3

开源是什么

互联网的兴起让全球的工程师,可以不分地域、不分时间,甚至不分种族地为了同一个愿景,在一个平台上协作起来。这些因素的综合,在天才如 Linus 般背后,真正的基因是一种来自于根植于这个叫黑客(hacker,热衷于计算机软硬件的技术高手)全体内心的「荣誉文化」——表面上是在分享和炫技,不过促成的显性结果是「利他」。但在利他的背后,源驱动力是黑客那通过被人认同和赞誉来获得的自我满足感。人不利我,我是为何?人若利我,我又何物?利他自利,自利利他 [ii]——才是根植于开源文化的灵魂。

而以这样的道德标准去要求每个俗世的大众,显然是一个极高的标准。正是因为淡化了意识形态,「开源」一词扩大统一战线,为了适应商业化环境的自由软件的演变形式。其关注点是: 代码开源协作,许可证模式在 GPL 模式下的变形兼容。

在世俗意义的社会实践上,一个相对中庸的可以兼容更多人群在一起的生态,则是一个最具生命力的生态。在工程学上,开源的核心是是否能产生建立有效的协作,协作后的成果是否有利于大多数群体不同利益的满足;在社会学上,其存在的核心是能否同时满足不同群体的差异化诉求,如作为社区程序员的荣誉和自我满足?如社区的企业化创业群体否能够建立合理的商业模式在既定规则下发展壮大?等等不一而足。

4

开源往哪里去

当下的中国,开源作为一个貌似发展的趋势,无论在政策层面,还是在资本市场上,因为各种原因都兴起了阵阵的热潮。但在这热潮的背后,我们是否也应当清醒而理智地看到:开源本质上是中性的,开源的灵魂在于软件用户自由,开源贡献者的驱动力本质上根植于来自声望和荣誉文化下的自我价值满足。

的确,开源可以包容一定的商业化和市场化,但商业化和市场绝对包装不了开源。政策的鼓励和政府的引导可以加速开源在中国市场的发展和壮大,但开源同时有着不以意识形态而改变的内在逻辑,而所有偏离了开源的灵魂和本源去运行的开源,大概率也终将和开源南辕北辙。

2021 年,距离 RMS 创立自由软件基金会 37 周年,距离 Linus 开始 Linux 的代码的第一次发布 30 周年,距离 ESR《大教堂与集市》的第一版发布 20 周年。

但时至今日,开源在全球以及在中国,是一个历史阶段性的软件运动?还是一个人类在科技领域的一个长久必然趋势?这依然值得继续探究,并有待实践论证。不过这不妨碍我们先做这样的结论:在软件领域内,通过开源进行的技术协作和知识分享是有显而易见的优势。因为有一点是明确的,即人类的知识理应在更广泛层面上共进、共享及共用。

很多现在足以称其伟大的艺术作品,大多经过岁月的发酵和历史的沉淀后,才得以确认被大家认可。有时候是几年,有时候是几十年,而有时候是几百甚至上千年。而正如此刻静静挂在波士顿艺术馆里的《我们从哪里来?我们是谁?我们到哪里去?》 ,假设只是为了当时利益,高更可能不会也没有机会在困境中画出这样的杰作。

唯有那些根植于人类内心本性的想法和愿景,才是让人们可以置目光于生命长度之外,置世俗财富与欲望于肉身之外去寻找和探索的源动力。于是,天才成就传奇,凡人成就历史,或许开源也如是。

注:本文涉及到的部分图片来源 wallhere、unsplash。

[i] 关于 CopyLeft:源自自由软件运动,是一种利用现有著作权体制来保障用户软件自由使用权利的许可方式,可以了解为允许他人使用、传播但加了一些少规则(维基百科释义)。详细理解可查阅 https://linux.cn/article-7826-1.html。

[ii] 出处:公元前1世纪末希勒尔犹太长老希勒尔Rabbi Hillel (Pirke Avot 1:14) 在《 圣贤箴言》的名句。

- End -

关于本文作者:狄安,系 OpenTEKr 创始人,企业级软件领域的连续创业家。现从事开源和数字化领域的开源文化研究布道,及开源和商业结合的探索与实践。

顺带预告:近期 OpenTEKr 联合云赛空间共同举办《TekSpark | 当数字化转型预见开源》系列讲座,将会以行业中发生的实际案例,结合时代的趋势以及技术的发展,分享深度的观察和洞见,与各位行业爱好者共同探讨开源与数字化的相关问题,旨在帮助开源技术发展企业用户,帮助企业用户找到开源技术。

平台编辑:李明康

瞰源 | 当我们谈论开源时,我们在谈论什么?相关推荐

  1. 【华为云技术分享】当我们在谈论卡片时,我们到底在谈论什么?

    [摘要] 卡片可能是一种可视方式.一种入口方式,也可能是一种集成方式.对于不同形式有不同的技术和业务复杂度,不可一概而论.卡片和微前端的结合,会将服务化更好的延伸到前端方向,解决服务化最后一公里的问题 ...

  2. 人物 | 当我们在谈论语音识别时,我们在谈些什么?——知乎达人、CMU博士生王赟...

    原标题:人物 | 当我们在谈论语音识别时,我们在谈些什么?--知乎达人.CMU博士生王赟 " 王赟:本科毕业于清华大学电子工程系,当前是卡内基梅隆大学(CMU)语言技术研究所(LTI)的博士 ...

  3. Android上百实例源码分析以及开源分析集合打包

    感谢网友banketree的收集,压缩包的内容如下: 1.360新版特性界面源代码 实现了360新版特性界面的效果,主要涉及到Qt的一些事件处理与自定义控件.但源码好像是c++. 2.aidl跨进程调 ...

  4. 又被 AI 抢饭碗?2457 亿参数规模,全球最大中文人工智能巨量模型 “源1.0”正式开源...

    作者 | 伍杏玲 出品 | AI科技大本营(ID:rgznai100) 输入: 昔我往矣,杨柳依依. 今我来思,雨雪霏霏. 行道迟迟,载渴载饥. 我心伤悲,莫知我哀! (以战争为题写一首诗) 回复: ...

  5. 当我们在谈论HTTP缓存时我们在谈论什么

    前言 在浏览器众多缓存中的HTTP缓存可能很多人对这个的概念并没有很清晰,每个人都知道进入一次网页之后再刷新一次页面,加载速度会比首次加载快非常多,每个人都知道这是浏览器缓存的magic,但是对此背后 ...

  6. php授权验证系统源码-全解开源版

    简介: php授权验证系统源码全解开源版,正版授权查询管理. 安装方法:上传PHP环境,访问域名instll,根据提示自动安装! 网盘下载地址: http://kekewl.org/MBJa7XXNk ...

  7. CentOS 8安装源设置基础软件仓库时出错

    问题场景:CentOS 8安装源设置基础软件仓库时出错 在虚拟机安装CentOS环境的时候出现设置软件仓库出错 问题描述: 安装源设置基础软件仓库时出错截图如下: 解决方案: 1.先确认网络是否连接 ...

  8. 还不错的全民采矿小程序源码+代码已开源

    正文: 还不错的全民采矿小程序源码+代码已开源,可配合流量主和激励视频,程序是单开版的,一个站点只能单个平台使用此应用,一个小程序使用此应用. 下方图片是小程序工具介绍: 下方是程序介绍: 程序: l ...

  9. 新CRMEB知识付费程序源码+代码全开源

    正文: 新CRMEB知识付费程序源码+代码全开源,程序其主要由: 其源码全开源,无加密,完全适合有技术的自行二次开发. 程序: lanzou.com/isEvR03y5y3a 下方图片是简单的安装环境 ...

最新文章

  1. dell服务器系统开机提示错误解决方法
  2. C# 发送电子邮件源码片段
  3. 《构建之法》阅读第四章、第十七章收获
  4. python声明数组_在Python中如何声明动态数组
  5. 谷歌服务器——为什么选择Jetty?
  6. html5调用系统声音1s响一次_20款奔驰GLC260提车改柏林之声音响,音乐诉请,为爱发声!...
  7. Java中的String,StringBuilder,StringBuffer的区别
  8. Hbase记录-client访问zookeeper大量断开以及参数调优分析(转载)
  9. 四个管理举措提高研发团队工作效率
  10. 在线作图|2分钟绘制一张相关性桑基图
  11. 萤石云视频预览、回放、自定义录制
  12. 威廉玛丽学院计算机专业好吗,威廉玛丽学院计算机专业怎么样?
  13. <C++>我用煮粽子的时间拿捏了类和对象中友元的全部形式
  14. 国内科技巨头的区块链布局:BAT多领域布局,迅雷领跑主链
  15. 为何戴绿帽的总是悲催老实人?
  16. 电脑电池出场容量与目前最大容量查询查询
  17. 推荐算法工程师学习路线及工作指南
  18. java虚拟机堆空间
  19. uploadifive struts2实现图片上传
  20. 关于elasticsearch.yml的配置

热门文章

  1. linux0.11—内存管理实验
  2. 联想r480安全模式_ThinkPad R480笔记本安装win10系统教程
  3. jFinal中DatatablesHelper封装与调用
  4. hadoop2.7.2基于centos完全分布式安装
  5. HCL IRF BFD配置
  6. http response code(HTTP状态码对照表)
  7. 记事本html插入图片,零基础学HTML(插入图片)
  8. JAVA集成unipush消息推送uniapp
  9. 安装并使用百度地图【vue】
  10. 提高vscode下载速度