专栏首页GitHubDaily盘点那些像神一样的程序员...

盘点那些像神一样的程序员...

公众号关注 “GitHubDaily”

设为 “星标”,每天带你逛 GitHub!

在MIT的BBS上曾有一个帖子,其中问道:

你觉得谁是最厉害的程序员, 为什么?

虽然大家在回复的帖子中声明最厉害的程序员排名不分先后,然而大多数人仍把Bill Joy列在第一位。

Bill Joy?

年轻的程序员也许已经不知道他是谁了,但是他留在这个世界上的作品你一定知道,今天来讲一讲Bill Joy这位神一样的程序员。

1

1975的秋天,Unix光环加身的大神Ken Thompson休了一个长假,他回到了自己的母校,加州大学伯克利分校,他将在这里以访问学者的身份待一学年。

(Unix,Go语言发明人Ken Thompson)

在伯克利分校,Ken Thompson把Unix v6 安装到了最新的机器PDP 11/70上面,并且开设了一门Unix的课程。

(PDP-11/70)

他不仅讲解理论,还在晚上带着大家阅读一行行的Unix内核代码,向大家解释为什么这么做。

每个晚上,学生们都围绕在Ken Thomphson周围,瞪着一双双求知的大眼睛,聆听Unix作者的教诲,实在是太幸福了!

这些学生当中有一个研究生,Bill Joy, 也是我们故事的主人公。

2

Ken Thompson通过Unix在伯克利大学激发了黑客精神。

有一天Ken Thompson在PDP 11/70 机房“闲逛”的时候,在Unix上随手写了一个不太完善的Pascal编译器,这令Bill Joy大开眼界,原来黑客就是这么玩的啊!

Bill Joy在用Pascal写项目作业的时候,很快他发现了编译器的缺陷,他也决定做一个黑客,把这个编译器改好。

那时候没有IDE,他们使用一个叫ed的文本编辑器来程序,ed也是大神Ken Thompson写的,但是它实在是不好用,后来有人写出了em,Bill Joy和Chuck又改进了em, 把它变成了en ,然后是eo, ep...... ex。

必须要提一下,那时候并没有显示器,大家用的都是teleprinter :

ed,en,ex们和我们现在用的文本编辑器不同,是所谓的“行编辑器”, 它们有什么特点呢?

你想在文档中任意移动光标,选取要编辑的文本段落?对不起,不行!你只能以行为单位进行上下移动!

你好不容易定位到了一行,想改这一行的某个词,对不起,不行,你得删除这一行,然后重新输入!

当时的程序员过的都是什么日子啊!

Bill Joy 使用ex这个“趁手”的工具,很快就把Thompson留下的“烂摊子”Pascal编译器给收拾好了,新的Pascal编译速度很快,运行起来也很快,深受学生们的喜爱。

后来,伯克利大学购买了一批叫做ADM-3A的终端,在屏幕上终于支持可以随意移动的光标了!

Bill Joy 欣喜异常,他重新设计了ex, 增加了“可视化模式”,ex变成了大名鼎鼎的vi

(使用vi 编辑hello world)

vi这个编辑器让无数程序员爱不释手,更让无数程序员从入门到放弃。还和另外一个神器Emacs开启了长达几十年的论战:到底谁是最好的编辑器?

有个笑话说:如果让计算机生成随机数呢?

答:让新手退出vi。

3

1976年夏天,“休假”满一年的大神Ken Thompson返回了贝尔实验室, 他虽然走了,但是他撒播下的黑客的种子开始生根发芽。

Bill Joy和其他同学此时对Unix内核越来越感兴趣,他们发挥真正的黑客精神,不断地对Unix进行改进和增强,比如Bill 觉得Unix自带的Shell不爽,自己开发了一个C Shell (csh)

与此同时,他的Pascal编译器有着良好的声望,很多人都想要一个Copy。

Bill Joy突发奇想,为什么不把Pascal编译器,ex编辑器(还有后来的vi编辑器),以及其他对Unix的增强一起打成一个新的包,重新分发呢?

于是在1977年早些时候,著名的Berkeley Software Distribution,即BSD 诞生了!

(BSD 的logo 小恶魔)

BSD发布之后大受欢迎,各个学校和公司都在使用,后来相继发展出了3BSD、4.0BSD、4.1BSD、4.2BSD、4.3BSD,还有些后继产品如FreeBSD,NetBSD,OpenBSD,NeXTSTEP等, 其中NeXTSTEP最终演化成了苹果公司名扬天下的MacOS。

BSD不断增长的影响力引起了AT&T(贝尔实验室的母公司, Unix版权所有者)的不爽,AT&T和伯克利大学打了一场旷日持久的官司,我们按下不表。

4

接下来就是一个传奇的故事,关于TCP/IP。

当时,国防高级研究计划局(DARPA)主导了计算机网络的发展,由于BSD的良好表现,伯克利获得了DARPA的合同,希望能增强BSD,可以支持DARPA的网络。

当时有一家叫BBN的公司,曾经参加过ARPANET的建设,获得了实现TCP/IP协议栈的合同。

TCP/IP协议是互联网的基石, 读过的人都知道,光是理解这些协议就非常不容易,更不用说准确地、高性能地实现它们了。

BBN把TCP/IP协议栈实现以后,DARPA要求Bill Joy集成进BSD,但是被Bill拒绝了,他理由很简单:BBN写的TCP/IP性能太差了!还不如我自己写一个!

Bill Joy说到做到,很快就手写了一个高性能的版本,集成进了BSD。当被问道是怎么实现TCP/IP的时候, Bill Joy说:这非常简单,你只要读一下协议,然后写代码就行了

一个人打败了一个公司,这让BBN非常难堪!

5

1979年, Bill Joy 获得了伯克利大学的电气工程与计算机科学硕士学位,1982年他作为联合创始人创立了Sun 公司,作为首席科学家一直到2003年。

在这期间,他的成就依然无与伦比:

Network File System(NFS)的主要设计人。

微处理器 SPARC 的主要设计者(软硬通吃啊!),SPARC是Sun工作站的核心,每年给Sun带来几十亿美元的收入。

很多重要技术的灵感来源:Java, Jini , JXTA

6

vi编辑器, c shell , BSD Unix, TCP/IP协议的实现, NFS, SPARC处理器,一个人能搞定任意一样,足以在计算机的历史上刻下自己的姓名。

可是Bill Joy居然以一己之力创造了这么多的东西,让我们叹为观止。可是他想要“封神”, 还差一样东西:以他的名字命名的定律,或者法则。

这难不住Bill Joy, 以他的名字命名的有两个定律:

Bill Joy 定律1

从1984年起,计算机的峰值计算速度,每年翻一倍。

Bill Joy 定律2

不管你是谁,大多数绝顶聪明的人总是在为另外一个人或者组织工作。

作者:码农翻身号主刘欣,题图、排版由公众号(Java 后端)编辑,转载请著名此句话并且联系原作者。

本文分享自微信公众号 - GitHubDaily(GitHubDaily)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 那些神一样的程序员

    虽然大家在回复的帖子中声明最厉害的程序员排名不分先后,然而大多数人仍把Bill Joy列在第一位。

    架构师修行之路
  • 盘点关于程序员的那些经典案例

    现在都2021啦,不知道你有没有达到历史的高度。按照一般行业来说,增幅比例为8%,例如,你一个月每月工资为:10000元,第二年为:10000*(1+8%)=1...

    孙叫兽
  • 盘点那些让程序员目瞪口呆的Bug都有什么?

    程序员一生与bug奋战,可谓是杀敌无数,见怪不怪了!在某知识社交平台中,一个“有哪些让程序员目瞪口呆的bug”的话题引来了6700多万的阅读,可见程序员们...

    顶级程序员
  • 盘点那些让程序员目瞪口呆的奇葩Bug都有什么?

    程序员一生与bug奋战,可谓是杀敌无数,见怪不怪了! 在知识社交平台中,一个“有哪些让程序员目瞪口呆的bug”的话题引来了6700多万的阅读,可见程序员们对这个...

    老九君
  • 那些拼命加班的程序员们,后来都怎么样了?

    小张属于踏实肯干的程序员,在公司工作兢兢业业,也干出了很不错的成绩,当然,与之伴随的是,加班成为了家常便饭。

    黄小斜学Java
  • 那些不重视行业背景的程序员,后来怎么样了?

    国庆期间是读书的好时候,带一本陌生的书,去一个陌生的地方,在秋日的阳光里,享受着山间气息与阅读带来的充实感,这大概是人生最美好的时刻之一了。

    纯洁的微笑
  • 盘点程序员最喜爱的十个开发神器,免费送

    作为资深的程序员,虽不如市面上传的那样,背心拖鞋大裤衩、脑袋不洗牙不刷,但也是基本加班到深夜,眼圈黑黑的。

    蜻蜓队长
  • 盘点一下不能对程序员说的外行语录

    今天给大家总结下,深受我们程序员排斥的一些外行语录!仅供娱乐,O(∩_∩)O哈哈~ 你写软件?那你写个微信出来呗~ 你写网站?写个淘宝出来看看啊! 你学计算机...

    Java高级架构
  • 工作提高——《程序员思维修炼》中提到的那些点子

    我是一个习惯于多任务处理的人,因为我觉得这样子可以加快步伐,避免单一带来的枯燥。但这本书提到:

    陈黎栋
  • 程序员应该知道的那些画图工具-第一期

    现在写技术文章不但要写技术细节,图还得画的好看。对于表达思路和架构来说,图确实挺直观的,这篇文章介绍一下常见的绘图工具。大家可以看自己的喜好自行选择。

    梦醒人间
  • 如何像程序员一样思考——解决问题的经验

    除非你有个系统,否则用“随机的方式”可能就是你“解决”问题的方法(下面我开始学习编程写代码时候做做的事情):

    MavenTalker
  • 和程序员谈恋爱是一种什么样的神仙体验?

    最近小N和朋友们聊起程序员的话题,发现大家对程序员的评价是两极分化:一部分人认为程序员邋遢不浪漫不适合当老公;一部分人认为程序员是智慧与浪漫的结合体,也是理想...

    腾讯NEXT学位
  • 程序员通往架构师必须掌握知识点—并发编程的那些事

    并发编程是Java程序员最重要的技能之一,也是最难掌握的一种技能。它要求编程者对计算机最底层的运作原理有深刻的理解,同时要求编程者逻辑清晰、思维缜密,这样才能写...

    慕容千语
  • 年度Java技术盘点,懂这些技术的程序员2019年薪资翻倍!

    与一年前一样,Java仍然是最流行的编程语言。据TIOBE的数据显示,几十年来,Java比其他语言更常名列榜首,Java因为它拥有可移植性、可扩展性和...

    xcbeyond
  • mmap可以让程序员解锁哪些骚操作?

    用代码读写内存对程序员来说是非常方便非常自然的,但用代码读写磁盘对程序员来说就不那么方便不那么自然了。

    glumes
  • 什么样的程序员,才能让那些让猎头、名企HR们主动来找你

    作为一名程序员,如何更快地提高自己从而让自己向更高级别飞跃是每个人都要关心的问题。质的飞跃是一个慢慢的过程,哲学上说:大量的量变会带来质变,也就是说,程序员想要...

    一墨编程学习
  • 学计算机的不会修电脑,你信嘛,反正我是信了

    不能相信股市的大盘、丰田车的底盘、前男友的硬盘。冠希哥哥,让我们见到了花钱都看不到的东西,让我们一次次的得到快乐。男人不会修电脑,当心你那盘里的多少G。有了这么...

    程序员互动联盟
  • UAI AlphaGo 系列—— AlphaGo 的确是一个大事件

    用户1107453
  • 那些工作2年 就月薪2.5W的Java程序员,都有这1个共同点

    精讲java

扫码关注云+社区

领取腾讯云代金券