一边好玩,一边不经意间改变了世界
某次在西安GDG参加活动,有一个奖品是书,我毫不犹豫地选了《Just for fun》(好吧,其实是因为另一本《Linux/Unix设计思想》在我前面已经被拿光了,虽然《Just for fun》这本书我也很喜欢,但是我依旧很生气,于是在活动结束之后又找David强行要了另外一本书才作罢)。对于这本书,我也是慕名已久。这本书有个副标题叫做“Linux之父林纳斯自传”。我敢断定,看这本书的,九成是和年轻时候的Linus差不多的技术宅男,但是这本自传除了一些技术名词,确实跟技术没太大关系,尽管它来源于这个星球上大概最伟大的技术故事。
Linus何许人也?对于这个世界上的几千万人来说,他是神,对于另外的几十亿人来说,这只是一个完全陌生的人名,尽管几乎他们每一个人都受益于Linus这个人,因为我们整个时代都受益于Linus啊!他和他创造的linux系统改变了整个IT发展的进程,他的linux跑在几乎所有的你家里的智能设备上,也跑在那些航天飞机控制系统和超级计算机上。多少年之后他又创造了git,改变了几千万程序员的生活工作方式,这是后话。
在读这本自传之前,在我内心深处,认定Linus其人是会影响社会形态的,当然是和RMS一起,尽管他两相互不太对付。人类未来的交流方式(不仅仅包括聊天,还包括买卖、游戏等)必定是由代码驱动的。而在我理想的终极社会形态里,代码驱动社会,那么必须具有两个条件,一是代码必须不封闭(不管是自由软件还是开源软件),二是去中心化(至于我为什么这么认为,另辟文再扯)。RMS和Linus在反对代码封闭上,行动都是一致的。
抱着这种虔诚的态度,我洗净了双手,翻开了这本“圣经”,它讲了些什么呢?他插科打诨地讲了自己宅男的青少年时期,那个时候的Linus就像一个21世纪的网瘾少年,不过Linus上的瘾是捣鼓计算机和写代码。当Linus大些的时候,他去了赫尔辛基大学,并在那儿一个不小心造出了linux。当然,Linus也写了他一夜成名及之后的一些故事。
抛却某些荤段子以及离北极圈越近的人民越适合编程的真理,也还是存在好些个让我印象比较深刻的东西。
作为极客中的极客的偶像,自然和所有的极客一样,Linus对技术的痴迷让人绝望。他妈妈说,养活这个孩子,只需要把他和电脑关在一起,时不时再扔进去一点面条,就ok了。Linus的性格导致他妈妈一直担心他能不能跟女孩子扯上什么关系。好在Linus最后在为人师表的时候勾搭上了女学生,没让他妈急一辈子。但是Linus在书中描写的“我们两人(指Linus和妻子朵芙)总算搞清楚了怎么样才能怀上孩子”场景,也真是不枉费他妈担心他这么多年。
Linus很早就对电脑充满了好奇心,但是更重要的是,他痴迷于改变一些什么了。当他买的汇编程序(用来把汇编语言转成机器语言)和编辑器无法放入EEPROM中去时,他自己用回汇编写了汇编程序和编辑器。这其后,他还克隆了不少游戏。另外,Linus为了体验最新的技术,尽自己可能升级电脑的CPU和内存。是的,当一个程序不能在Linus的现有机器上运行的时候,他会干两件事情:
花钱买能运行这个程序的机器
自己把这个程序重写了
所幸,Linus并不是个富二代,于是他更多干的就是把xx重写了,让它能够跑在自己的机器上。这样的好处是明显的,因为有的时候不是你的机器不行,而是软件本身就不行,比如Minix的终端仿真程序。某一天,Linus再也无法忍受Minix那烂爆了的终端仿真程序,于是他决定,重写一个!
这花费了Linus大把的时间,然后有一天他完成了,他觉得很兴奋。不多久,他就发现,若是自己需要把文件保存到磁盘上,那么就需要磁盘驱动程序和文件驱动程序……
一发不可收拾!
Linux就这样一不小心出现了!多亏了Andrew S. Tanenbaum的那蹩脚的Minix系统的终端仿真程序。显然Linus并不管这一点,所以后来跟Andrew S. Tanenbaum当着全世界吵架的时候,可一点也没让着对方。
我不禁陷入深深思考:当一个人拥有十足的创造力并且青春期的性并没有对其产生多大影响的时候,人的潜力真是大啊。
Linus的头脑清晰并不仅仅表现在他擅长的写代码上。Linus很明确地和技术领域的宗教政治不牵扯上关系,尽管他其实是这个话题的中心人物之一。他避免用任何宗教政治的态度去做选择。他其实是赞同GPL的(不然linux怎么会是GPL的),但是他又反感GPL社区的那种排他性的态度(嗯,说的就是RMS)。
和对GPL的观点一样,Linus也反对道德的制度化。它可能应该是这样,但是它不一样非得是这样。从某种意义上来说,Linus这个宣称开源的家伙比宣称自由的RMS更自由。这种自由的意义在于,自由的前提是,你拥有选择的权利。
在自由软件越发像是一种宗教仪式的岁月里,社区里的人们,保持理性实在难能可贵。不管一个人多么高贵,但是在思想上也是极其容易被这种仪式所驱动的。由于和宗教仪式以及政治运动保持距离,Linus强调自己只是对技术感兴趣,所以Linus在乎的是开源。
Linus的大脑似乎总是这么清晰的,在关键时候,他总是做了对的决定。比如决定到美利坚合众国工作的时候,他需要一份工作。但是他很明白地不会为任何Linux公司工作,为此他拒绝了RedHat的邀请,转而去了一家公司给X86处理器写程序。而当一家公司希望让Linus成为其董事,并给其1000万美元的时候,Linus直接拒绝了。Linus很清楚地知道,不能让上班这件事情和Linux社区扯上什么关系,并因此产生什么Linux本身开发的一些阻碍。天哪!那可是1000万美元!
Linus也是需要钱,他的电脑分期付款,最后还是由社区捐款负担了一部分。他需要买房子,所以当RedHat送给他的股票期权值500万的时候,他还是很开心的。好在,这些一切一切,都没有成为linux系统正常开发中的阻碍。我们不得不把这些归功于Linus在关键时候做出的那些正确决定。
有记者说Linus是一个不偏不倚的人,Linus不同意。Linus表现地不像RMS那么极端,但是他又是和微软绝对对立的。Linus在很多事情上的态度,都像是站在了中间,这让他不得不跟两边打架。从根源上来说,Linus的非两极态度,并不是他刻意做出的不偏不倚的态度。Linus尝试从自己觉得最重要的需求去看问题,他时而也表现地像一个独裁者,决绝而愤怒。那不过也是他真实的想法罢了。
Linus还有一些其它的思想也是比较有趣的。他对生命的意义思考为三个层次:生存、社会秩序以及娱乐。他概括基本所有的事物发展规律大概都是如此。比如性,一开始只是生存的需要,后来有了婚姻,也就成了一种社会秩序,最后到如今,性也具有了娱乐的味道。再比如战争,最开始是为了生存,后来有了国家,战争也成了维护社会秩序的手段。当战争被搬上了游戏机和电脑上的时候,它已经成为了一种特别重要的娱乐方式。
Linus的人生和编程密不可分,然而对于他来说,不管是人生还是编程,他已经跨过了生存和社会秩序的需要,而是为了娱乐。
是的,Just for fun!