我对开源软件的理解
这是前几个月的一个作业,贴出来和大家一起讨论一下(以我blog的流量,应该也没人讨论吧,呵呵)。
读了《大教堂与集市》,对于开源软件,有了更深一步的认识,我觉得开源软件从最初的几人小作坊,发展到后来书中所说的集市,到现在已经不完全是个集市了,她已经开始对大教堂之类的商业软件产生了巨大的影响了。
纵观开源软件的历史,也是一部坎坷史,同时也是一部互联网的发展史,在没有互联网之前,可以说是没有开源软件的,程序员的发展,靠的是仅有的书籍和各个公司的具体项目,大家各自为战,这好比大航海时代以前的中世纪,各国之间的交流非常缺乏,当然,科技也提高得非常缓慢。各个商业公司在自己的实验室做着一些工作,大家各自井水不犯河水,开源,在那时都没有一个具体的概念。
低速互联网时代来临以后就像世界进入了大航海时代,各个散落在世界各地的程序员们仅仅通过一根电话线就可以连接起来,伴随着电子邮件,BBS,IRC的兴起,黑客们之间的交流也变得频繁和方便起来了,大家都是做软件的,既然能聚到一起,就能做一些事情了,这时,开源软件才慢慢兴起了,当然,这里也要非常感谢像 微软 一样的商业公司,人都是有逆反心理的,尤其是黑客,如果没有他们的强力垄断和强力阻止,开源软件也不会这么蓬勃的发展。
同样,也是在这个时代,出现了开源软件的一些关键技术和想法,就是文章中所说的 集市 模式,他完全区别于商业公司的 大教堂模式,以一种全新的,自由的,志愿的,分布式的方式进行一些伟大的软件的开发,比如 Linux,谁会想到一个大学生的习作,会在全世界的黑客帮助下成为一个世界级的操作系统,这是一个典型的集市模式成功的例子,通过兴趣,邮件列表驱动一个软件的诞生,同时也是这个成功的例子,让很多人非常推崇Linux这种集市型的开发模式。
但是在大航海时代,还是有一些制约的,网络速度跟不上,各种联系工具还没发展起来,统一的交流平台还没有什么规模,所以此时的开源软件还只是一部分黑客们的玩物,并且由于语言的原因和社会发展度不同,还只是英语系和发达国家的专属,毕竟在90年代,很多发展中国家的人连电脑都没见过,也没有什么人从事软件开发职业。
高速宽带互联网出现以后,就像人们进入了航空时代,极大的带动了开源软件的发展,大家的交流更加的频繁,同时出现了很多社区和平台,大量的人进入到软件开发这个行业,并且随着各个发展中国家的人员也投入到软件开发行业中,让开源世界有了更多的思想和发展,比如**ruby** 就是非英语的日本人发明的,**github** 也是基于ruby社区发展起来的,**lua** 就是巴西人发明的,各种游戏脚本中也大量的应用了这个语言,**Nignx**就是老毛子开发的,等等这些还有很多。
在航空时代,开源软件社区的发展实际上也进入了航空时代,这些之前由一些黑客把持的东西,越来越多的开放给了大众,现在,任何人都可以在googlecode,github上获取代码,修改代码,提交代码,有任何好的代码,你都可以提交到这些网站上,并且还是免费的,只需要等待别人发现就行了。
由于开源软件越来越好的发展,使很多大公司都开始参与到开源软件中来了,使用和修改开源项目,更好的带动了开源事业的发展。也使开源项目越来越渗透到商业项目中来,让这个本来由IT行业专属的东西应用到了更多的领域,比如android。
同样,在这个时代,由于大量的开源项目,使得想要进入IT行业的学生们有了比之前更好学习方式,比如一个计算机专业的学生,学完操作系统课程,想自己实现一个,放在多年前,是很困难的,毕竟实现起来还有很多很多具体的问题,而现在呢,github一搜,大把内容,再加上VirtualBox这样的开源虚拟机,让你实现一个操作系统或者一个编译器都变得非常容易了。
之后的开源软件将如何发展?会不会进入到一个航天时代?现在也看到了一些端倪,目前几乎所有的商业项目,不管多么大型的,都基本上有一个成熟的开源实现,就连Google论文说的分布式文件系统,mapReduce这样的都有hadoop这样的开源实现,云计算中的虚拟化,大型的XenServer之类都已经开源了,今天刚刚看到的新闻,XenServer全面开源了,计算机行业进入了云时代,而云时代的东西几乎都有开源软件的参与,并且发挥的作用不再是一些边边角角,而是非常核心的东西了。
现在的软件开发人员,如果没有接触过开源软件,那他可能算不上一个合格的开发人员,相信到以后,一个开发人员没有参与过一个开源项目,那他也算不上一个合格的开发人员吧。