个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈
“开源”简史
“开源”( Open Source )这个口 源于 1998 年的一次软件黑客峰会。当时,自由软件运动已经进行了 15 个年头。
软件自由
1969 年, Unix 操作系统诞生于贝尔实验室(隶属于 AT&T )。当时的 AT&T 因为反垄断原因,被限制不得进入计算机行业。因此 AT&T 最初对 Unix 的源码进行免费分发。然而,1982 年针对 AT&T 不得进入计算机行业的禁令失效了。
1983 年, AT&T 发布了大名鼎鼎的 Unix System V 。同时 AT&T 改变了 Unix 的授权模式,将其变成了收费的闭源商业软件。AT&T 的行为只是当时软件行业的一个缩影,很多企业或个人都一改过去的源码免费分发模式,而转向闭源的商业软件模式。由此催生了自由软件运动(始于 1983 年)。发起人 Richard Matthew Stallman ,业界尊之为 RMS 。(能被人用 3 个字母的缩写指代的美国人,都不是一般人,比如 JFK 。)
RMS 是学院派黑客的典型代表,他发起的自由软件运动不仅针对商业软件,更关乎用户自由使用软件的权益。自由软件运动虽然有过于理想化的问题,但它所代表的 区力量的觉醒早已深深影响了今天的软件行业。
经过不懈的努力与坚持,1990 年代自由软件阵营终于迎来了重量级的成员(使用 GPL 许可证)—— Linux ( 1991 )和 MySQL ( 1995 )。既然自由软件逐步走入正轨,为什么还要打出“开源”这样一面新的旗帜呢/p>
黑客与商业
1994 年,Netscape 公司成立。通过独创的 Javascript 编程语言和浏览器渲染引擎, Netscape 最风光的时候独占了浏览器市场 90% 以上的份额。Netscape 浏览器本身是收费的商业软件,但用户也可以选择下载免费的评估版。
然而,微软也瞄准了 络浏览器这个赛道。通过在 Windows 上内置 Internet Explorer 的方式,微软快速蚕食着 Netscape 的市场份额。尤其 1998 年,微软发布的 Windows 98 中内置的 Internet Explorer 4.0 从功能上也压倒了 Netscape 的产品。岌岌可危的 Netscape 在卖身于 AOL 之前做了一个大胆的决定:公开 Netscape 络浏览器的源码。(日后它将重生为 Firefox ,与 IE 展开新的争夺。)不过自由软件过于理想化的理念,显然与 Netscape 这样的商业公司存在一定的差异。
正是在这样的背景下,O’Reilly 召集了黑客 区中的重要成员: Linus ,三大脚本语言( Perl/Tcl/Python )的发明人, Netscape 公司代表, Apache 维护者等重量级人物一起召开了一次讨论会。讨论的重要成果之一是明确了不论是自由软件,还是开源软件,最重要的共性便是公开源码。这也是“开源”这个口 的由来。另一个开放式的话题则是,如何将开源背后的黑客文化与商业市场相结合。谁曾想 20 多年后的今天,我们依旧在寻找这个问题的答案。
因此,开源项目不应该避讳谈商业模式。因为从“开源”诞生的第一天,商业模式的探索就是其中重要的一环。可以说开源理念是对自由软件思想的延申,开源理念强调——共享与合作开发软件源码是有商业潜力的。
LAMP
“开源”,生逢其时。 1997/1998 亚洲金融危机之后,一方面资金回流美国,另一方面美国的利率也处于较低水平。第一轮互联 热潮( dot-com bubble )越发汹涌。
当时商业软件与服务器过于昂贵。开发人员开始采用 PC 硬件和日后大名鼎鼎的 LAMP 开源技术栈来构建自己的 站。 LAMP ,即 Linux 操作系统, Apache 络服务器, MySQL 数据库和 PHP 开发语言。不夸张的说,这些开源软件就是互联 早期的明灯( lamp )。
创新先锋
开源软件的基因中深深印刻着黑客 区的精英文化与创新精神。即便从自由软件运动开始算起,“开源”的诞生也不过 30 多年。但“开源”已经对今天的软件产业,甚至整个 IT 产业带来了深刻的启发与影响。
如果回溯近 20 年的 IT 产业发展脉络,以下几个标志应该是公认的:
互联 、移动互联 ,云计算
整个互联 行业引领了近 20 年的 IT 技术发展。始于 1990 年代的互联 虽然是非常年轻的行业,但也是对 IT 技术最敏感的行业。开源 LAMP 技术栈为互联 行业的发展奠定了基础,而互联 行业的急速发展也帮助孕育了大量开源软件。
最初当 SuSE 和 Red Hat 将 Linux 引入企业服务器市场时,开源软件只是商业软件的低成本替代品。 在相当长的一段时间里,开源软件都忙着去补齐相比商业软件所缺失的能力。但即便是在那个阶段,开源软件也贡献了不少创新的工具,组件和理念。其中最典型的一个例子, MySQL 数据库将计算引擎与存储引擎两部分进行了独立的模块化设计(和今天说的云环境下的计算与存储分离不是一个概念)。 MySQL 允许用户选择自己需要的存储引擎,甚至这个存储引擎可以是由另一个公司开发的。(虽然现在 MySQL 和 InnoDB 都在 Oracle 手里,但早先他们其实是两家公司。)Db2 和 Oracle 可没这样的操作。
及至最近十年,移动互联 与云计算大放异彩。 Redis , MongoDB , Spark , Docker ……这些带来创新理念的基础软件,无一是按照传统商业软件的模式进行运作的。
大数据
大数据这个概念, 1990 年代就开始出现。早期对大数据价值的挖掘利用,主要是通过 EDW/BI (企业数据仓库,商业智能)这样的解决方案来实现。当时, Teradata 是数据仓库中绝对的霸主。而 IBM 通过收购 Cognos 和 SPSS 在 BI 领域占有重要的位置。这些商业解决方案当年主要服务于金融,电信,大型制造等行业。
大数据的特点之一是价值密度比较低( 2 倍的数据无法带来 2 倍的价值)。因此传统的分析处理方式虽然在性能上也许依然可以满足要求,但在成本上却很难被用户所接受。一直到 2005 年 Hadoop HDFS 的出现,数据处理的成本大幅下降。终于在开源软件的推动下,企业级的大数据分析处理能力变得唾手可得。
机器学习与深度学习
2016年 DeepMind 研发的 AlphaGo 4:1 战胜李世乭。由此将人工智能的这一波浪潮推向了新的高度。这一轮人工智能还能走多远个问题的答案见仁见智。但值得注意的是,各种主流的人工智能平台框架( Tensor Flow , Caffe , Keras , PyTorch , Paddle Paddle 等等)都是开源的。甚至英伟达这样的硬件厂商都推出了 RAPIDS 这样的开源 AI 框架。
开源软件的创新之处,不单单体现在技术上。更重要的是开源软件背后的开放协作理念,以及对软件价值的重新定义,彻底改变了今天的软件世界。
重塑软件价值
时间回到 2009 年,那正是商业软件公司欣欣向荣的时代。那时笔者是 IBM 的一名软件售前工程师。同事们热烈讨论着日暮西山的 SUN 究竟还有什么出路。 有传闻 IBM 会收购 SUN,不过这样的收购恐怕过不了反垄断调查。
谁曾想 Oracle 最终出手。这笔交易完成后, Oracle 成为了与 IBM 一样的集软硬件,服务于一体的全栈型企业 IT 公司。 Oracle 与 IBM 之间的双雄争霸似乎将会从数据库领域拓展到企业 IT 的各个领域。
然而,我们知道这样的事情最终并没有发生。 Oracle 与 IBM 双双迷失在这开源软件大爆发的时代……
传统商业软件的玩法
我们都知道传统商业软件通常采用许可证( license )销售模式。一般的流程是,软件厂商会将用户的硬件配置(比如 CPU 核数,存储容量等等),代入他们的神奇公式(公式里的各种常量大概都是上帝确定的),最终计算出软件许可证的金额。
那么用户支付许可证费用以后,就能愉快的使用软件了吗于软件厂商来说,还有两个问题:
- 许可证费用一般都给了很大的折扣(为抢标, 价 1 块钱的也不是没有)。
- 许可证往往是一次性收费,今年收了,明年怎么办呢/li>
因此除了一次性收取的许可证费用,软件厂商又设计出了按年收取的软件升级保护费用(通常是按比例从许可证费用折算而来)。 只要购买了升级保护,用户以后就可以一直使用最新的“版本”,而无需重新支付许可证费用。 Oracle 称其为许可证支持( license support ), IBM 称其为订阅与支持( subscription & support )。
按照一般的直觉,人们会认为商业软件的核心是许可证费用,软件升级保护只是许可证的附加产品(毕竟连计算方法都是跟着许可证走的)。但事实往往是反直觉的,请看 Oracle 2017 年财 :
2017 | |
---|---|
收入 | |
Total revenues | 37,728 |
New software licenses | 6,418 |
Software license updates and product support | 19,229 |
成本 | |
Total operating expenses | 25,018 |
Research and development | 6,159 |
单位:百万美元
原来,软件升级保护收入超过整体收入的 50 % ,是新售软件许可证收入的 3 倍,也是整个公司研发支出的 3 倍。真是了不起的成就!也正是依靠这个基本盘, Oracle 的转型之路还算是比较从容。足见可持续性收入对于软件公司有多么的重要。
为了保住 license support 的收入,2018 年开始 Oracle 甚至修改了自家数据库的发布周期与命名规范。既然 license support 是按年收取的,那么每年至少要发个“版本”,不然用户这一年的升级保护不是白交了么其实例如 Oracle 18c ,它并不是新的数据库“版本”。严格意义上讲,它是 Oracle 12.2.0.2 ( Version.Release.Modification.Fixpack ),更像是一个 fixpack (或者按 IBM 的叫法是 function level )。
按照惯例, fixpack 升级本来也不需要购买升级保护……
Oracle 未来的“版本”发布节奏
顺便说一下,这里为什么只给出 2017 年的数据呢为自 2018 财年第 4 季度开始, Oracle 不再单独列出软件升级保护的收入金额,转而将软件升级保护收入与(总是达不到市场预期的)云收入合并后一起汇 。(这波操作厉害。反正都是按年收取的可持续性收入,合并也没毛病。所以说 Oracle 是最牛的商业软件公司。)
其实何止 Oracle , IBM 和微软也开始采用淡化版本的方式进行软件发布了。这些商业软件巨头一个个学起了开源软件的迭代模式,可见“开源”对软件行业的影响多么巨大。
“开源”带来的改变
目前比较常见的开源基础软件商业模式是这样的:
- 针对一般用户,提供基础开源版本,满足用户的基本需求
- 针对核心用户,提供收费的高级版,满足用户的进阶需求(如分布式,高可用,以及工具链软件等)
- 收费模式通常是以软件订阅的名义,按年进行支付
坦白地说,目前开源软件的商业设计比起传统商业软件还是稚嫩了不少。甚至,开源软件的订阅模式与传统的软件升级保护,形式上看似乎也没有那么大的区别。但为什么开源软件能造成这么大的影响呢因在于,开源软件的模式触及了用户心中长久以来的一个疑问:软件究竟是什么/p>
传统商业软件公司将软件以产品的形式卖给用户。因此,用户花钱买来的软件许可证以及软件升级保护是一种资产。什么样的资产呢不生息,也不能转售,只会慢慢折旧的资产。这样的资产放着有什么用又会喜欢这样的资产呢/p>
而在开源模式下,软件开发者向用户提供的是一种服务。这种服务不单纯只是软件本身,还包括了软件的前期开发过程,以及使用/试用反馈。可是,难道传统商业软件公司不从用户那里收集需求听取用户的意见来改进自己的产品错,这些他们都做了。但有多少用户感受到了呢(除了少数几个特殊照顾的大客户)/p>
其中的区别可以用 SuSE 公司的口 来说明:“ We’re the open open source company ”。“开源”背后的关键之一就是开放协作( open collaboration )。以开放的流程与心态,方便用户参与到软件的设计,研发,及反馈中。哪怕用户不写一行代码,他也可以参与其中。通过查阅公开的文档与问题记录,用户能清楚的了解项目的进展,设计的思路,存在的问题及解决方法。这不仅仅是“参与感”,用户也能建立起对项目的控制感与信任。一个可参照的例子,华为为了赢得英国电信市场的信任,主动将通信产品相关的源码与开发流程交由英国监管机构审查。
更改版本命名规则,让用户觉得每年的升级保护没有白买,是一条容易的路。构建一个开放协作的环境,为用户提供软件服务,是一条困难的路。
我们,选择那条能通往未来的路。
附Java/C/C++/机器学习/算法与数据结构/前端/安卓/Python/程序员必读/书籍书单大全:
(点击右侧 即可打开个人博客内有干货):技术干货小栈
=====>>①【Java大牛带你入门到进阶之路】 =====>>②【算法数据结构+acm大牛带你入门到进阶之路】 =====>>③【数据库大牛带你入门到进阶之路】 =====>>④【Web前端大牛带你入门到进阶之路】 =====>>⑤【机器学习和python大牛带你入门到进阶之路】 =====>>⑥【架构师大牛带你入门到进阶之路】 =====>>⑦【C++大牛带你入门到进阶之路】 =====>>⑧【ios大牛带你入门到进阶之路】 =====>>⑨【Web安全大牛带你入门到进阶之路】 =====>>⑩【Linux和操作系统大牛带你入门到进阶之路】天下没有不劳而获的果实,望各位年轻的朋友,想学技术的朋友,在决心扎入技术道路的路上披荆斩棘,把书弄懂了,再去敲代码,把原理弄懂了,再去实践,将会带给你的人生,你的工作,你的未来一个美梦。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!