代码是一门语言,这门语言搭建了人与计算机沟通的桥梁。通过编写代码,人类可以“命令”计算机开发网页、开发软件、搭建游戏... ...
这门语言并不是上帝的发明,它是前辈们发挥聪明才智创造出来的,前辈们的创造过程虽然充满了有趣与巧合,但是并不神秘!本文就从1980年开始,带你一览编程语言发展的“别样”历史。
1800年,Joseph Marie Jacquard让织布机学会了读穿孔卡片,造出了第一台重度使用多线程处理单元的机器。预见到天网(Skynet)诞生的织布工们激烈地反对该项发明。
Ada Lovelace
1842年,Ada Lovelace厌倦了贵族生活,于是在记事本上写写画画,而记事本上的这些内容被后世称作第一个发布的计算机程序,可不巧的是,当年还没有电脑。
1936年,Alan Turing啥都发明了,他是计算机逻辑的奠基者,许多人工智能的重要方法也源自于他。他对计算机的重要贡献在于他提出的有限状态自动机也就是图灵机的概念,对于人工智能,他提出了重要的衡量标准“图灵测试”,人们为纪念其在计算机领域的卓越贡献而设立“图灵奖”。
Alonzo Church
1936年,Alonzo Church和Turing一样啥都发明了,1936年发表可计算函数的第一份精确定义,对算法理论的系统发展做出巨大贡献。
John Backus
1957年,John Backus发明Fortran语言,也是“真正的编程者”使用的第一种计算机语言。
1959年,Grace Hopper发明了第一个面向企业、可用的编程语言,命名为“通用的业务导向语言”,简称为COBOL。
1964年,John Kemeny和Thomas Kurtz都觉得现有计算机语言的编程太难了,人们需要回归基础(basic),因而将他们发明的计算机语言称之为BASIC。
1970年,Niklaus Wirth创造了Pascal和几门其它语言(他就是这么爱创造语言),他还创造了沃斯定律。相形之下摩尔定律就过时了,因为软件开发者基于摩尔定律写的软件太臃杂了,连主机都带不动。后来Electron.js的发明和基于它的抽象概念也证明了这一点。
Dennis Ritchie
1972年,Dennis Ritchie在贝尔实验室里对工作产生了厌倦,于是决定搞个带大括号的C语言,并取得了巨大的成功。之后,他在语言中加入分段错误和其它一些对开发者友好的功能来增强C语言的生产力。
干完这些工作后,离下班还有几小时,所以他和贝尔实验室的小伙伴们决定开发个程序来展示C语言,然后他们就造了个叫Unix的操作系统(红红火火恍恍惚惚)。
Alan Kay
1980年,Alan Kay建立了一门叫做Smalltalk的面向对象的编程语言。这门语言里,什么都是对象,对象本身也是一个对象。可惜大家都没时间思考闲聊(small talk)的意义。
Larry Wall
1987年,Larry Wall经历了一次宗教体验,成为了一名传教者,他传播的教义就是Perl。
Jean David Ichbiah
1983年,Jean Ichbiah发现Ada Lovelace的程序就从来没真正运行过,于是决定以他名字创建一门语言。但他的语言也没运行过。
1986年,Brac Box和Tol Move决定要创建一门基于Smalltalk、不可读版本的C语言,并称之为Objective C语言,但没人看得懂这门语言的语法。
Bjarne Stroustrup
1983年,Bjarne Stroustrup从未来穿越过去,发现C语言没给编译留足时间,于是他把所有能够想到的功能加进去了,并命名为C++。几乎所有的编程者都在使用它,这样他们就有理由在工作的时候撸猫片和看科学松鼠会了。
Guido van Rossum
1991年,Guido van Rossum写了本关于蛋蛋和火腿的食谱(Python之父)。
1993年,Roberto Ierusalimschy和他的朋友们觉得他们需要一门英国本地化的脚本语言,在本地化过程中出了个错,使得本应该从0开始的计数从1开始了,然后他们把这个叫做Lua。
Rasmus
1994年,Rasmus Lerdorf为他个人主页的CGI脚本弄了个模版引擎,并把这个文件发布在网上了。世界各国人民钦定这个文件哪哪都要用上,于是兴奋炸裂的Rasmus又放了点额外的绑定数据库上去,并称之为PHP。
Yukihiro Matsumoto
1995年,Yukihiro Matsumoto不是很开心,还发现其它码农也不是很开心,所以他创建了Ruby语言让大家开心开心。Ruby语言面世后,Matz挺开心的,Ruby社区也挺开心,大家都很开心(*^__^*)。
Brendan Eich
1995年,Brendan Eich花了个周末设计了门语言,希望能够为世上所有的网页浏览器赋能,最终也影响天网。他最开始去了网景,并称自己设计的语言为LiveScript,但Java在代码审查环节火了,于是他们决定用大括号才好,改名叫JavaScript。
后来Java一团糟,于是他们觉得这语言跟Java沾亲带故会出事,所以又在标准化时候把它改名叫ECMAScript,但人们还是按习惯称之为JavaScript。
James Gosling
1996年,James Gosling创建了Java,第一个真正的过于详细的、设计模式高于实用性的、面向对象的编程语言。这么一个非常有效的、管理员供应商集装箱供应商服务管理者单件模式管理者供应商模式就诞生了。
Anders Hejlsberg
2001年,Anders Hejlsberg重建了Java,并称之为C#,因为用C语言编程比Java要更酷。大家都很爱这个Java新版本因为它一点也不像Java。
David Heinemeier Hansson
2005年,David Hanselmeyer Hansen创建了个叫做RubyonRails的网页框架,人们从此把红宝石与铁路联系起来了。
John Resig
2006年,John Resig给JavaScript写了个助手库,所有人都觉得这也是门计算机语言,给许多从网上复制粘贴jQuery代码的人们解决了就业问题。
Ken Thompson
2009年,Ken Thompson和Rob Pike打算也造个类似于C语言但有更安全的设备的语言,而且用金花鼠当作吉祥物让它更好推销。
他们把这门语言叫做Go语言,也开源了,支持社区的资金来源就是卖金花鼠的周边护膝和头盔。
2010年,Graydon Hoare也想造一门类似C语言的语言,并称之为Rust。人们表示,所有的软件都应该现在立即马上用Rust语言重写一遍。但Graydon喜欢一闪一闪的亮晶晶而不是生锈的(rust)东西,所以去Apple开发Swift去了。
2012年,Anders Hjelsberg想在网页浏览器里重写C#,于是他设计了TypeScript,其实也是JavaScript的一种,但更像Java了。
2013年,Jeremy Ashkenas也想像Ruby开发者那么开心,所以他搞了个CoffeScript,也就是JavaScript的编译,但看起来更像Ruby。然鹅,Jeremy并没有像Matz和Ruby开发者那样开心。
Chris Lattner
2014年,Chris Lattner设计Swift的初衷是让它别像Objective-C一样,所以最后Swift看起来就像是Java了。