您的位置: 首页 >信息公开>详细内容

信息公开

软件工程专业同学假期必读书籍推荐之《大教堂与集市》— 开源运动的独立宣言

发布时间:2022年08月03日 来源: 作者: 浏览次数: 【字体:

8a73d66b56d248e38552c761e648b329.png909ce446ed2f49069f778fe7f9592d0a.png

       从开源运动发起至今已经翻过了几十个年头。回顾过去,这些年来计算机技术发展之迅猛很大程度上都受益于这场伟大的运动。纵观整个开源史,开源运动彷佛就是一场惊心动魄的战役,因此希望同学们能通过此书了解这场波澜壮阔、气贯长虹的战役进行的曲折过程,领悟“黑客精神”的精髓、学习“教堂模式”和“集市模式”、深入理解开源软件背后的共创思想。本文我选了几个经典且有趣的话题和同学们分享。

 


01

作者语录

“我是一名黑客,20年来,作为本书所描述的黑客文化的一份子,我有幸和这个世界上一些最有趣、最杰出的人一起共事,一起解决那些让人着迷的东西,并有幸获得几次珍贵的机会,去做出一些创新和有用的东西。有太多的人教给我有价值的东西,教给了我黑客技术和其它东西,我无法在在此一一列举,谨以本书的内容作为回馈。”

“这些文章记录了我在不同阶段的发现和体会”,在这个迷人的发现之旅中,我学会了以更新、更深刻的视角来看待我长期以来熟悉的工作。我一直惊讶的是,这样一个简简单单的随笔,居然在开源软件融入主流世界的过程中起到持续催化的效果。希望读者能够在这些随笔中捕捉那些令人兴奋的精彩片段,在主流商业及客户迈入这一旅途之际,一同感受那些展现在我们面前的令人赞叹不已的美妙前景。”

 

 

02

目的

  首先我想要明确一点,本书讲的是讲黑客行为和文化,以及开源运动的思想起源的,也许你会很自然地(再自然不过了)问:“我为什么要关心这些?”

   我直接引用书中的一段原话:

     计算机软件在世界经济和商业战略决策中扮演着越来越重要的角色。不管你是由于什么原因打开这本书,大概你对那些关于信息经济、数据时代、互联世界的说法都听得太多了,如果我们能对如何编写更优质、更稳定的软件有更深入一点的认识,都将会产生滚雪球般的深远影响。”

  这段话很抽象,似乎也并没有阐释什么具体的内容,例如:具体如何编写优质软件或是具体什么深远的影响等等。这一切都需要你从书中寻找答案,并形成自己的理解。

 

03

什么是开源

“开源”这个词相信每一位同学都非常熟悉,但如果只是听名字的话是很容易产生误解的。开源是不是只是把软件的源代码公开就可以了呢?这彷佛就是在描述某个利他主义的人或者组织把自己的劳动成果大公无私的分享出来。这样的说法当然也没有错。但实际上,“开源软件”是一种比较特别的软件开发模式,为了方便各位同学理解,我需要稍微介绍一下黑客的相关背景知识。

 

04

黑客与开源

“开源软件”的思想本身起源于黑客精神,本书的作者Eric S. Raymond 是一名非常著名的程序员,准确的说,是一名黑客。在此我需要强调一下这里所说的“黑客(hacker)”并非类似于电影《我是谁:没有绝对安全的系统》等中非法破解别人的计算机系统,并以此谋利或者宣扬自己意识形态的那样一群计算机高手——他们严格的说应该叫做“骇客 (cracker)”。Hacker这个英文单词最早和计算机并无任何关系,仅在麻省理工学院的一个小圈子内被使用,专指那些喜欢用模型研究火车信号调度和动力系统的一群人。50年代末,MIT购买了计算机,这样一群人便被计算机给吸引了,从而将“黑客”这个词引入了程序员文化里:它专指对计算机技术有着强烈兴趣的人——解决问题就是这群人的最大兴趣;他们为了解决问题愿意学习和研究,且没有功利目的等。当然,你可以理解为“黑客”就是一群有着理想主义的计算机理工男。随着时间的推移,“黑客”这一群体越来越庞大并渐渐形成了自己的独特的价值观,例如:对计算机的访问应该是不受限制的、所有的信息都应该可以自由获取、不要迷信权威等等。这就是早期的开源思想。后来,随着开源的思想越来越普及,黑客们的价值观就具象成了编写和维护开源代码,积极参与开源社区建设。在早期,计算机还只是学校和大型机构里的研究工具,当时黑客的人数虽然不多,但是在这些地方去使用计算机仍然是很自由的。上世纪80年代,计算机的商业价值被逐步挖掘,个人计算机(Personal computer)也开始普及,越来越多的企业开始进入计算机行业,使得计算机行业迅速扩大,无论是软件的种类还是使用的方便程度都在剧增。这同时也给黑客们带来了巨大的困扰:企业为了自己的商业利益只提供编译完成的软件,拒绝提供源代码,这就和黑客们的价值观有了巨大的冲突,尤其是操作系统软件,学过操作系统原理的同学应该知道,操作系统是计算机硬件和软件的连接器,提供了硬件和软件交互的接口。因此,如果操作系统的源码不能被随意访问,黑客的自由就会极大程度上被限制。形象地说,在操作系统上编程就相当于使用乐高或者万代来搭建玩具或高达模型,操作起来相对简单但不自由,乐高和万代提供了什么模块和零件你就只能用什么模块。如果黑客可以访问操作系统源码,就不再是搭建固定的玩具或高达,而是拥有了一台制作模型的机器,他们想生产什么模块就能生产什么模块。那么当开源思想和黑客精神与计算机技术进步衍生的商业问题产生碰撞,激化出不可调和的矛盾时,有一位名叫Richard Matthew Stallman的天才站了出来并掀起了一场运动(在之后被称为自由软件运动),他号召黑客们团结在一起,创造一个源代码完全开放的操作系统GNU。实际上,GNU只是把Unix系统重新实现了一遍,且保证不使用任何有版权的程序代码(Linux、MacOS、IOS和绝大多数服务器都属于Unix体系)。这还不算完,Richard不仅将程序代码完全公开,他还将原来的黑客精神中自由、开放的价值观具象成了一个概念:Copyleft(反版权/通用公共许可协议),与copyright(版权)相对,代表公共版权。这便是开源平台的起源。

以下为维基百科的定义:

Copyleft is the legal technique of granting certain freedoms over copies of copyrighted works with the requirement that the same rights be preserved in derivative works. In this sense, freedoms refers to the use of the work for any purpose, and the ability to modify, copy, share, and redistribute the work, with or without a fee.

以下为百度百科的定义:

著佐权(Copyleft)是一个由自由软件运动所发展的概念,是一种利用现有著作权体制来保护所有用户和二次开发者的自由的授权方式。在自由软件授权方式中增加著佐权条款之后,该自由软件除了允许使用者自由使用、散布、修改之外,著佐权许可证更要求使用者修改后的衍生作品必须要以同等的授权方式释出以回馈社会。

 

05

教堂模式与集市模式

  可能你在读书之前会产生这样的疑问:为什么书名要叫做“大教堂与集市”呢?教堂和集市与计算机软件有什么关系?实际上,作者是用“教堂”和“集市”这两个形象代表了两种不同的软件开发模式。

“教堂”模式:代表自顶向下的模式,即有一群精英进行顶层设计,按照计划去完成任务。

“集市”模式:代表自底向上的模式,即没有一个绝对主导的核心,靠的是普通个体们的组织合作,一起去完成一个复杂的任务。那么我们之前介绍了大名鼎鼎的开源运动就是“集市”开发模式的最佳实践之一。

 

06

开源软件带来的影响

  在我们熟知的开源软件中,最成功过的莫过于Linux操作系统,它持续更新了超过30年,本书的作者也是Linux早期开源项目的参与者之一。Linux可以说是最成功的操作系统之一,绝大多数网络服务器的操作系统都是Linux。此外,我们现在互联网的基础设施都是由开源软件构成的,例如:Apache web服务器(大家常用的Tomcat)、MySql数据库、Chrome浏览器等等。你只要连接了互联网,你就一定使用过它们。我们在前文提过开源运动的起源,开源软件从早期一批程序员的爱好,发展至今抽象出的共同创造思想,它被潜移默化地影响着,从而演变成了一种互联网文化基因。诸如B站的某一个UP主看了某个视频并觉得视频中某些细节很有趣,便对原视频进行剪辑,制作了一个新的鬼畜视频。当其他UP主看到了这个鬼畜视频之后又产生了新的想法,于是在这个视频的基础上重新创作,并把自己的想法融入进去。在多位UP主的共同创作之后,这个视频便成功“出山”,从一个小众文化变成互联网流行文化。再比如,很多游戏里的mode其实也是一种共创文化。很多游戏的发烧友和狂热粉丝不仅喜欢玩游戏,还热衷于修改游戏,让游戏具有更多符合自己需求的剧情或是玩法。很多游戏之所以能经久不衰就是因为mode版本层出不穷,从而增加了玩家的新鲜感。例如《上古卷轴5》被誉为mode版本最多的游戏,或者像如今的《Dota2》和《英雄联盟》最早也是起源于魔兽争霸中的RPG地图《Dota》,而《Dota》也曾属于魔兽争霸3众多mode分支中最流行的一个之一。

 

07

开源运动和自由软件运动

  值得注意的是开源运动和Richard领导的自由软件运动并不是一回事,尽管它们在宏观理念上具有追求自由等极大的共性。开源运动是一种开发的模式和方法,而自由软件运动更多的是一种理想主义的精神。

 

 

分享到:
【打印正文】
×

用户登录