白癜风又快又好的偏方 http://m.39.net/pf/a_4658914.html?ivk_sa=1024320u作者
刘欣
责编
夕颜
在MIT的BBS上曾有一个帖子,其中问道:
“你觉得谁是最厉害的程序员,为什么?”
虽然大家在回复的帖子中声明最厉害的程序员排名不分先后,然而大多数人仍把BillJoy列在第一位。
BillJoy?
年轻的程序员也许已经不知道他是谁了,但是他留在这个世界上的作品你一定知道,今天来讲一讲BillJoy这位神一样的程序员。
KenThompson
的秋天,Unix光环加身的大神KenThompson休了一个长假,他回到了自己的母校,加州大学伯克利分校,他将在这里以访问学者的身份待一学年。
(Unix,Go语言发明人KenThompson,左,图源
维基百科)
在伯克利分校,KenThompson把Unixv6安装到了最新的机器PDP11/70上面,并且开设了一门Unix的课程。
(PDP-11/70,图源
维基百科)
他不仅讲解理论,还在晚上带着大家阅读一行行的Unix内核代码,向大家解释为什么这么做。
每个晚上,学生们都围绕在KenThomphson周围,瞪着一双双求知的大眼睛,聆听Unix作者的教诲,实在是太幸福了!
这些学生当中有一个研究生,BillJoy,也是我们故事的主人公。
做一个黑客
KenThompson通过Unix在伯克利大学激发了黑客精神。
有一天KenThompson在PDP11/70机房“闲逛”的时候,在Unix上随手写了一个不太完善的Pascal编译器,这令BillJoy大开眼界,原来黑客就是这么玩的啊!
BillJoy在用Pascal写项目作业的时候,很快他发现了编译器的缺陷,他也决定做一个黑客,把这个编译器改好。
那时候没有IDE,他们使用一个叫ed的文本编辑器来程序,ed也是大神KenThompson写的,但是它实在是不好用,后来有人写出了em,BillJoy和Chuck又改进了em,把它变成了en,然后是eo,ep......ex。
必须要提一下,那时候并没有显示器,大家用的都是teleprinter/p>
ed,en,ex们和我们现在用的文本编辑器不同,是所谓的“行编辑器”,它们有什么特点呢?
你想在文档中任意移动光标,选取要编辑的文本段落?对不起,不行!你只能以行为单位进行上下移动!
你好不容易定位到了一行,想改这一行的某个词,对不起,不行,你得删除这一行,然后重新输入!
当时的程序员过的都是什么日子啊!
BillJoy使用ex这个“趁手”的工具,很快就把Thompson留下的“烂摊子”Pascal编译器给收拾好了,新的Pascal编译速度很快,运行起来也很快,深受学生们的喜爱。
后来,伯克利大学购买了一批叫做ADM-3A的终端,在屏幕上终于支持可以随意移动的光标了!
BillJoy欣喜异常,他重新设计了ex,增加了“可视化模式”,ex变成了大名鼎鼎的vi。
(使用vi编辑helloworld)
vi这个编辑器让无数程序员爱不释手,更让无数程序员从入门到放弃。还和另外一个神器Emacs开启了长达几十年的论战:到底谁是最好的编辑器?
有个笑话说:如果让计算机生成随机数呢?
答:让新手退出vi。
BSD诞生!
年夏天,“休假”满一年的大神KenThompson返回了贝尔实验室,他虽然走了,但是他撒播下的黑客的种子开始生根发芽。
BillJoy和其他同学此时对Unix内核越来越感兴趣,他们发挥真正的黑客精神,不断地对Unix进行改进和增强,比如Bill觉得Unix自带的Shell不爽,自己开发了一个CShell(csh)。
与此同时,他的Pascal编译器有着良好的声望,很多人都想要一个Copy。
BillJoy突发奇想,为什么不把Pascal编译器,ex编辑器(还有后来的vi编辑器),以及其他对Unix的增强一起打成一个新的包,重新分发呢?
于是在年早些时候,著名的BerkeleySoftwareDistribution,即BSD诞生了!
(BSD的logo小恶魔)
BSD发布之后大受欢迎,各个学校和公司都在使用,后来相继发展出了3BSD、4.0BSD、4.1BSD、4.2BSD、4.3BSD,还有些后继产品如FreeBSD,NetBSD,OpenBSD,NeXTSTEP等,其中NeXTSTEP最终演化成了苹果公司名扬天下的MacOS。
BSD不断增长的影响力引起了ATT(贝尔实验室的母公司,Unix版权所有者)的不爽,ATT和伯克利大学打了一场旷日持久的官司,我们按下不表。
关于TCP/IP的传奇故事
接下来就是一个传奇的故事,关于TCP/IP。
当时,国防高级研究计划局(DARPA)主导了计算机网络的发展,由于BSD的良好表现,伯克利获得了DARPA的合同,希望能增强BSD,可以支持DARPA的网络。
当时有一家叫BBN的公司,曾经参加过ARPANET的建设,获得了实现TCP/IP协议栈的合同。
TCP/IP协议是互联网的基石,读过的人都知道,光是理解这些协议就非常不容易,更不用说准确地、高性能地实现它们了。
BBN把TCP/IP协议栈实现以后,DARPA要求BillJoy集成进BSD,但是被Bill拒绝了,他理由很简单:BBN写的TCP/IP性能太差了!还不如我自己写一个!
BillJoy说到做到,很快就手写了一个高性能的版本,集成进了BSD。当被问道是怎么实现TCP/IP的时候,BillJoy说:这非常简单,你只要读一下协议,然后写代码就行了。
一个人打败了一个公司,这让BBN非常难堪!
联合创立Sun公司
年,BillJoy获得了伯克利大学的电气工程与计算机科学硕士学位,年他作为联合创始人创立了Sun公司,作为首席科学家一直到年。
在这期间,他的成就依然无与伦比:
NetworkFileSystem(NFS)的主要设计人。
微处理器SPARC的主要设计者(软硬通吃啊!),SPARC是Sun工作站的核心,每年给Sun带来几十亿美元的收入。
很多重要技术的灵感来源:Java,Jini,JXTA。
BillJoy定律“封神”
vi编辑器,cshell,BSDUnix,TCP/IP协议的实现,NFS,SPARC处理器,一个人能搞定任意一样,足以在计算机的历史上刻下自己的姓名。
可是BillJoy居然以一己之力创造了这么多的东西,让我们叹为观止。可是他想要“封神”,还差一样东西:以他的名字命名的定律,或者法则。
这难不住BillJoy,以他的名字命名的有两个定律:
BillJoy定律1:
从年起,计算机的峰值计算速度,每年翻一倍。
BillJoy定律2:
不管你是谁,大多数绝顶聪明的人总是在为另外一个人或者组织工作。
《原力计划-学习力挑战》
正式开始
即日起至3月21日
千万流量支持原创作者
更有专属等你来挑战