提交 99073c6b 编写于 作者: SoftwareTeacher's avatar SoftwareTeacher

1st draft

上级 5246f3d1
......@@ -17,7 +17,7 @@
### 开源发展历史的脉络
注:关于开源的历史,在网络有很多介绍,我(邹欣)在这里不想做其他文档的复读机,而是主要讲我的理解。 由于我的水平、经历和看问题的角度,我的看法可能有不准确,不符合事实,或者有偏颇之处,希望大家指出这些问题,我们可以展开进一步的讨论和澄清。
1. 开源的环境/文化
1. 1940 - 1950 年代: 开拓阶段
计算机科学的发展,是建立在其他学科的基础上的,自然地,计算机软件的发展也不例外。
......@@ -36,7 +36,7 @@ Mark I 的内存:
1946 年 5 月: John von Neumann 发表了 “First Draft of a Report on the EDVAC", 描述了现代计算机的结构:
- binary logic gates
- stored instructions and data
- serial execution of instructions.
- serial execution of instructions
怎么实现 “stored instructions / programs", 而不被具体的机器细节所绑定? 如何用参数来支持对这个program 对不同输入? 这就是 sub-routine (子程序)的产生。
......@@ -52,9 +52,42 @@ Grace Hopper 霍珀在工作中,对于早期计算机指令的规范也做出
第三,她们发明了流程图 (Flow Chart),使用矩形来代表操作,使用菱形来代表选择。俗话说“一图胜千言”,流程图极大地提升了工作效率。所以一直到 70多年后的今天,还会被许多初学者沿用,帮助设计和理解程序。  
 
在1950年代末,沿着 "让计算机程序容易写,容易理解”的思路,霍珀还领导设计了现代编程语言 COBOL,这个语言后面被广泛地用于商业领域。
在1950年代末,沿着 "更高效地做科学计算“ 的思路, 为了 Formula Tranlating 而设计,诞生了 FORTRAN,当时的 IBM 电脑只有大写英语字母,因此这个语言的字母也全部大写,后来才改为 Fortran。 (早期发明者:John Backus 1953 - 1957)
在1950 年代末,沿着 "让计算机程序容易写,容易理解”的思路,霍珀还领导设计了现代编程语言 COBOL,这个语言后面被广泛地用于商业领域。
同时,沿着 "更高效地做科学计算“ 的思路, 为了 Formula Tranlating 而设计,诞生了 FORTRAN,当时的 IBM 电脑只有大写英语字母,因此这个语言的字母也全部大写,后来才改为 Fortran。 (早期发明者:John Backus 1953 - 1957)
随着计算机在二战后从科学计算转移到了商业应用,软件工程师开始考虑 “商业利益”, “知识产权” 的问题。
1950 年代, Hopper 主持了 Compiler 的研究,把高级语言编译为针对各个不同电脑的汇编代码,在这个过程中,她坚持了 “源代码共享”:
The fact that Hopper wholeheartedly welcomed non- UNIVAC personnel to learn about the A-2 compiler sheds some light on her beliefs concerning intellectual property. Hopper did not view software as a commodity to be patented and sold. Rather, she took her cue from the mathematics community. Like most other academics, mathematicians shared information universally, in order to advance knowledge. Though individual efforts were acknowledged by colleagues, advancement in the field was contingent on a communal view of information, community validation, and evolutionary advancement based on previous work. In the same way, software, according to Hopper, was a public good to be shared freely among all users. Complicating software development with secrecy would only inhibit innovation.
Beyer, Kurt W.. Grace Hopper and the Invention of the Information Age (Lemelson Center Studies in Invention and Innovation series Book 4) .
总结:在早期的计算机上,“软件” 只是实现把数学公式转化到机器代码中,子程序的出现,让大多数的常用计算公式能够一次写好,多次被调用。随着计算机软件科学和技术的发展,如何分享 “科研成果” vs “保护商业利益” 成为程序员需要面对的问题。
2. 1960 - 1970 年代:
在环境/文化方面: 黑客文化兴起
在计算机/OS 方面: Unix 在大学计算机教育界的兴起和版权纠纷
在应用软件方面:VI,Emacs:
商业创新方面: 个人电脑:Xerox Parc 的 Alto 电脑, Apple I,BASIC 解释器
软件许可证的诞生: EULA: End User License Agreement.
3. 1980 - 1990 年代: 开源的商业萌芽
商业版权: 导致 Unix 的碎片化, 导致商业发展的停滞和版权纠纷。 Macintosh, DOS, Windows, Windows NT, OS/2 ...
自发的开源项目从萌芽阶段发展: MINIX, Linux 等开源 OS 等产生。 MySQL, Apache,PHP。
4. 2000 - now 高速发展阶段
几乎所有的软件都有开源的替代产品。
互联网技术和产业的几次潮起潮落让开源成为一个实用而可以操作的选择。
高端:Sun 的工作站,Cisco 的网络设备,EMC 的存储,Oracle 的数据库。
低端:LAMP: Linux, Apache 网站服务器,MySQL 数据,PHP 脚本语言。
企业 IT 服务: scale-up. 买越来越高级的专用服务器和商用软件 转向 scale-out: 用便宜的硬件和软件取代.
企业 IT 战略: build or buy? 购买专用服务(被锁定) vs 自己构建 (技术和人力成本)。 原来只能二选一,现在 开源可以有一个混合模型,满足企业需要。
2020: 95% 的企业说 开源软件是他们企业 IT 基础建设的重要部分。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册