一头疏于梳理的长发和一把肆意生长的大胡子,往往可能是人们对于理查德马修斯托曼的第一印象。这位马上就要过60岁生日的自由软件基金会主席不用手机、不买房、没有汽车,看起来像是个流浪汉,但是却是美国工程院院士、麦克阿瑟奖得主,以及五所大学的荣誉博士和两所大学的荣誉教授。同时,他也是世界上最著名的黑客之一。

站在比尔盖茨的对立面

斯托曼和比尔盖茨有些相似之处。他们年纪差不多,都在大城市出生和长大,都曾在哈佛大学就读,都是程序员;但是,他们的主张却截然不同。比尔盖茨致力于消除盗版、保护版权;而斯托曼则主张源码共享、自由复制。比尔盖茨和他创立的微软公司让软件行业一度成为年轻人就业的首选,斯托曼的自由软件运动则催生了Linux和难以计数的自由软件,让全球十亿的计算机用户有了更多选择——脱离软件公司的控制,而且免费。

斯托曼对计算机的兴趣是在高中萌生的。他在纽约曼哈顿的IBM科学中心展现了对计算机技术的兴趣与天赋,并且由此在暑假中得到写一个数值分析程序的机会。1971年,十八岁的斯托曼进入哈佛大学,同年就受聘于刚刚成立不久的麻省理工学院人工智能实验室,一干就是十几年。就是在这里,他开发了被称为“神的编辑器”的Emacs。

在这十几年中,斯托曼也成为了计算机历史的一部分。他目睹着计算机从庞然大物变成桌上必备品的过程,也经历了软件行业迅猛发展的浪潮。成千上万聪明的年轻人投身到这个行业中,商业软件公司纷纷建立,施乐、苹果和软件这样的公司成为新的偶像,写软件、卖出去、挣大钱,正成为这个行业的新规则。

但是斯托曼并不喜欢这样。他一直认为,软件这种智力产物应该是可以免费获取和免费分发的。软件是由黑客的兴趣凝成的结晶,以金钱为代价阻碍它们的流通,将会禁锢思想和抑制创造。他认为人们有发自内心的创造渴望,而限制这种渴望,本身就是犯罪。

最后一个黑客

1983年,比尔盖茨善于软件版权的论述已经深入人心, 人们已经接受把软件作为商品看待的想法。麻省理工学院人工智能实验室的几句程序员离职创办了一家公司,走上了模仿微软公司的道路。也就是从那时开始,斯托曼决心发起自由软件运动。

他认为,软件的商业化不仅会阻碍计算机文化的发展,还会让人们丧失自由。当人们受制于某个不发布源代码的商业软件,也就同时受制于软件公司。用户无法自由地改变软件来适应看书的工作和生活,也无法确定软件中是否有让自己受到伤害的东西。

虽然世界上大多数人并不是程序员,无法自由修改软件的源代码来添加自己想要的功能,但是这并不是重要,对于软件源代码的诉求是道德上的,软件公司本来有义务向用户提供源代码——用户自己是否能修改并不重要。

1984年1月,自由软件基金会成立,斯托曼差不多是一个人和整个行业对抗。当时他只能睡在办公室里,没有钱,民不知道接下来会发生什么。他就像唯一的战士,面对迎面杀来的千军万马,手里的武器却只是一根牙签。

第二年,自由软件基金会发布了“自由软件通用许可证”,任何使用这种许可证发布的软件,都允许其他人查看、修改和传播软件的源代码,并且在传播软件的时候,也要同时发布源代码。斯托曼说:“我试着从总体上改变人们接触知识和信息的方式。我认为个人独占知识、控制人们使用知识,或者企图阻止人们共享知识,都是一种蓄意破坏行为。这种行为只有利于这样做的少数人,而代价却是让全社会都变得更贫困。”

作为一个黑客,斯托曼认为真正的黑客们本来就不是为了钱才工作。好奇心、乐趣和成就感是他们的驱动力,如果获得额外收入的话,那可算是某种意外。事实证明,真正的黑客还为数不少。自由软件运动开始发展壮大,应用软件、编译器直到操作系统都有了能替代商业软件的自由软件,它们的使用者也越来越多,从个人到企业和组织,都在从自由软件中受益。

改变了这一切的斯托曼,已经成了黑客中的传奇。他的名字有了专用的缩写rms,他那标示性的长发和胡须也成为黑客精神的象征——虽然热爱自由的黑客们不会把它的头像像切格瓦拉的头像那样印在T恤上。

黑客们的故事(连载六):IT世界里的理想主义者的更多相关文章

  1. Cocos2d-js官方完整项目教程翻译:六、添加Chipmunk物理引擎在我们的游戏世界里

    添加Chipmunk物理引擎在我们的游戏世界里         一.简介                   cocos2d JS能给我们力量来创造令人印象深刻的游戏世界.但缺乏某种现实.       ...

  2. Java练习 SDUT-2737_小鑫の日常系列故事(六)——奇遇记

    小鑫の日常系列故事(六)--奇遇记 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 今天,小鑫在山上玩的时候,意外被推下 ...

  3. Android NFC开发(二)——Android世界里的NFC所具备的条件以及使用方法

    Android NFC开发(二)--Android世界里的NFC所具备的条件以及使用方法 NFC的应用比较广泛,而且知识面也是比较广的,所以就多啰嗦了几句,我还还是得跟着官方文档:http://dev ...

  4. VRChat简易教程3-往世界里导入模型和VRC接口初探

    一.准备工作 按前面的教程新建一个project,导入sdk并创建地面(Terrain)和VRCWorld. 本教程中我们学习如何导入别人做好的模型并使用VRC提供的接口来实现物品的抓取,模型素材(小 ...

  5. python世界里的局部变量和全局变量: 潜规则太重要了!!!

    python世界里的局部变量和全局变量: 潜规则太重要了!!! 先上代码: def fun(): def test_global(): ''' 内层和外层都需要声明为global, 才能彻底打通变量名 ...

  6. 原来Java世界里也有这么多精彩的故事,学Java真有趣!

    大千世界,无所不有.这世上不光有人类世界,还有咱们的java世界.今天就由我这个实习导游带领你们了解了解咱们的java世界奇妙之处.   有一种暖男叫catch,有一种真爱叫try---catch,世 ...

  7. 【转载】Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载六)Linux的网络配置

    本篇是Linux小白最佳实践第6篇,目的就是让白菜们了解Linux网络是如何配置的.Linux系统在服务器市场占有很大的份额,尤其在互连网时代,要使用计算机就离不开网络. 想每天能听到小妞的语音播报, ...

  8. 百度云世界里的“七种武器”:PCS、BAE、Site App、ScreenX等

    如果说去年百度世界的关键词是“百度新首页”的话,那么今年在研发者人群中,对百度世界最深的印象就是“七种武器”,即在云的世界里,百度为开发者所提供的包括个人云存储.LBS.移动云测试中心等在内的七种工具 ...

  9. 面向对象世界里转转七(Liskov替换原则)

    前言:Liskov替换原则是关于继承机制的应用原则,是实现开放封闭原则的具体规范,违反了Liskov原则必然意味着违反了开放封闭原则.因此,有必要对面向对象的继承机制及其基本原则做以探索,来进一步了解 ...

随机推荐

  1. win7访问ubuntu所在分区

    用ext2explore就可以了

  2. Good Bye 2013 C

    C. New Year Ratings Change time limit per test 1 second memory limit per test 256 megabytes input st ...

  3. vbs脚本要求在cmd中输入输出用StdIn ,StdOut

    Dim StdIn, StdOutSet StdIn = WScript.StdInSet StdOut = WScript.StdOut Do While Not StdIn.AtEndOfStre ...

  4. 从Unity引擎过度到Unreal4引擎(最终版)

    原文地址:http://demo.netfoucs.com/u011707076/article/details/44036839 前言 寒假回家到现在已经有十多天了,这些天回家不是睡就是吃....哎 ...

  5. 基于bootstrap分页

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. git push throws error: RPC failed; result=22, HTTP code = 411的解决办法

    原因:默认 Git 设置 http post 的缓存为 1MB,将其设置为 500MB 解决办法如下: git config http.postBuffer 524288000

  7. B. Santa Claus and Keyboard Check 模拟

    http://codeforces.com/contest/752/problem/B uuu yyu xy xx 注意变化了之后,检查一次前面已经变化过的就好.因为可能前面的满足,但是变了后不满足. ...

  8. iOS真机调试问题-App installation failed,The maximum number of apps for free development profiles has been reached.

    The maximum number of apps for free development profiles has been reached. 源引:http://www.jianshu.com ...

  9. temp--test audio micphone

    DWORD CALLBACK waveInProc(HWAVEIN hWaveIn, UINT uMsg, DWORD dwInstance, DWORD dwParam1, DWORD dwPara ...

  10. 技术英文单词贴--C

    C category 种类,分类,范畴 cols 列数目 comma 逗号 component 组件,部件,成分 configure 配置,安装 configuration 配置,布局,构造 cons ...