编程语言的“别样”编年史

2019 年 1 月 10 日 中科院物理所

编译:狗小白、云舟


代码是一门语言,这门语言搭建了人与计算机沟通的桥梁。通过编写代码,人类可以“命令”计算机开发网页、开发软件、搭建游戏... ... 


这门语言并不是上帝的发明,它是前辈们发挥聪明才智创造出来的,前辈们的创造过程虽然充满了有趣与巧合,但是并不神秘!本文就从1980年开始,带你一览编程语言发展的“别样”历史。


1800年,Joseph Marie Jacquard让织布机学会了读穿孔卡片,造出了第一台重度使用多线程处理单元的机器。


预见到天网(Skynet)诞生的织布工们激烈地反对该项发明。


Ada Lovelace


1842年,Ada Lovelace厌倦了贵族生活,于是在记事本上写写画画,而记事本上的这些内容被后世称作第一个发布的计算机程序。


可惜当年没有电脑,真是不巧。



1936年,Alan Turing啥都发明了,但英国法庭看他不顺眼,还阉了他。后来女王免了他的罪名,虽然当时他已经死去几百年了。


Alonzo Church


1936年,Alonzo Church和Turing一样啥都发明了,但他生活在太平洋彼岸(也不是基佬)所以没被女王人道主义。


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了。


相关报道:

https://medium.com/commitlog/a-brief-totally-accurate-history-of-programming-languages-cd93ec806124


来源:大数据文摘

编辑:蓲阳


近期热门文章Top10

↓ 点击标题即可查看 ↓

1. 女生冬天穿那么少不冷吗?我找了个男生试了下......

2. 严肃科普:如何区分奥特曼

3. 人类花百年规划设计的铁路网,这些无脑生物26小时就搞定了

4. 2018 年最冷科学知识 Top 10

5. 一幅图读懂量子力学(Ⅳ)

6. Physics World 评选出2018年度十大科学突破

7. 昨晚,我在秋名山输给了一个沙发……

8. 假如有人告诉你这个世界的本质是弹簧,你愿意相信吗?

9. 磁铁可以只有一极吗?它或许能打开万物理论之门

10. 上坡要刹车; 下坡踩油门,关于怪坡你了解多少?

点此查看以往全部热门文章


登录查看更多
0

相关内容

【Manning新书】现代Java实战,592页pdf
专知会员服务
99+阅读 · 2020年5月22日
【实用书】Python数据科学从零开始,330页pdf
专知会员服务
142+阅读 · 2020年5月19日
Gartner:2020年十大战略性技术趋势, 47页pdf
专知会员服务
77+阅读 · 2020年3月10日
阿里巴巴达摩院发布「2020十大科技趋势」
专知会员服务
106+阅读 · 2020年1月2日
【强化学习】深度强化学习初学者指南
专知会员服务
180+阅读 · 2019年12月14日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
87+阅读 · 2019年11月25日
2019年10月编程语言排行榜:前8名15年如一日
大数据技术
7+阅读 · 2019年10月13日
深度学习的特殊之处 - Python深度学习
遇见数学
7+阅读 · 2018年11月21日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
量子计算
人工智能学家
7+阅读 · 2018年4月6日
CCCF专栏:李航 | 人工智能的未来 ——记忆、知识、语言
中国计算机学会
7+阅读 · 2018年3月16日
1月书讯:从这10本好书开读
图灵教育
5+阅读 · 2018年1月23日
荐书丨机器学习——Python实践(留言送书)
程序人生
7+阅读 · 2018年1月5日
手把手教TensorFlow(附代码)
深度学习世界
15+阅读 · 2017年10月17日
一张通往计算机世界的地图
中科院物理所
8+阅读 · 2017年10月12日
AliCoCo: Alibaba E-commerce Cognitive Concept Net
Arxiv
13+阅读 · 2020年3月30日
Arxiv
6+阅读 · 2018年10月3日
Arxiv
3+阅读 · 2018年3月13日
Arxiv
27+阅读 · 2017年12月6日
Arxiv
6+阅读 · 2016年1月15日
VIP会员
相关VIP内容
【Manning新书】现代Java实战,592页pdf
专知会员服务
99+阅读 · 2020年5月22日
【实用书】Python数据科学从零开始,330页pdf
专知会员服务
142+阅读 · 2020年5月19日
Gartner:2020年十大战略性技术趋势, 47页pdf
专知会员服务
77+阅读 · 2020年3月10日
阿里巴巴达摩院发布「2020十大科技趋势」
专知会员服务
106+阅读 · 2020年1月2日
【强化学习】深度强化学习初学者指南
专知会员服务
180+阅读 · 2019年12月14日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
87+阅读 · 2019年11月25日
相关资讯
2019年10月编程语言排行榜:前8名15年如一日
大数据技术
7+阅读 · 2019年10月13日
深度学习的特殊之处 - Python深度学习
遇见数学
7+阅读 · 2018年11月21日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
量子计算
人工智能学家
7+阅读 · 2018年4月6日
CCCF专栏:李航 | 人工智能的未来 ——记忆、知识、语言
中国计算机学会
7+阅读 · 2018年3月16日
1月书讯:从这10本好书开读
图灵教育
5+阅读 · 2018年1月23日
荐书丨机器学习——Python实践(留言送书)
程序人生
7+阅读 · 2018年1月5日
手把手教TensorFlow(附代码)
深度学习世界
15+阅读 · 2017年10月17日
一张通往计算机世界的地图
中科院物理所
8+阅读 · 2017年10月12日
Top
微信扫码咨询专知VIP会员