编程语言简史:有人讨厌花括号,于是他发明了 Python

周其
 周其
发布于 2018年01月26日
收藏 35

编程语言有上千种,但是流行的不过10来种,那些我们经常使用的编程语言都是谁在什么时候创造出来的呢?Casper Beyer 为我们进行了整理。

1800年

Joseph Marie Jacquard 教会了一台织布机读穿孔卡片,制造出了第一个高度多线程的处理单元。他的发明受到了预见天网(Skynet)诞生的纺织工人的强烈反对。

1842年

Ada Lovelace(英国诗人拜伦之女)为计算程序拟定“算法”,写作的第一份“程序设计流程图”,被珍视为“第一位给计算机写程序的人”。稍微有点不便的是当时还没有计算机呢。

1936年

阿兰·图灵被称为计算机科学之父,人工智能之父。但英国法庭却并不认可,还判处对他进行化学阉割。

女皇后来宽恕了他,但不幸的是当时他已经过世很久了。

1936年

Alonzo Church(算法理论重要奠基人)发明了lambda算子,跟图灵生活在同样的时代,但是他在时代的另一边,也并没有被女王阉割。

1957年

John Backus创建了FORTRAN语言,这真正是程序员使用的第一种语言。

1959年

Grace Hopper发明了第一门针对企业面向商业的编程语言,并且把这门语言叫做“面向商业的通用语言(common business-oriented language)”,简称COBOL。

1964年

John Kemeny 和 Thomas Kurtz 认为编程太难了,需要回归本源,他们把自己的编程语言叫做BASIC。

1970年

Niklaus Wirth开发了多种语言,最后流行起来的是PASCAL。他喜欢开发语言。

他还发明了让摩尔定律变得过时的Wirth定律(软件变慢的速度比硬件变快的速度更快),因为软件开发者会编写出连大型主机也没法跟上的臃肿软件。

这在后来被证明是正确的——在Electron.js被发明出来后

1972年

Dennis Ritchie在贝尔实验室上班上到无聊了,于是他决定写出带有花括号的C语言,这门语言取得了巨大成功。随后他又增加了分段错误等对开发者友好的功能来辅助提高生产率。

折腾完这门语言之后他还有时间,于是他跟在贝尔实验室的伙计决定给C语言做个演示程序,结果他们弄出了一个操作系统,UNIX。

1980年

Alan Kay发明了一门面向对象语言,他把这门语言叫做Smalltalk,在Smalltalk中一切都是对象,甚至一个对象也是对象。没人真正搞得清楚small talk是什么意思。

1983年

Jean Ichbiah注意到Ada Lovelace的程序从来都没有实际运行过,决定以她的名字开发一门语言,但是这门语言还是没有跑起来。

1983年

Bjarne Stroustrup 注意到C在编译方面花的时间还不够多,于是他把自己能想到的每一项功能都增加了进去,然后称之为C++。

每一个地方的程序员都接受了它,因为这样他们在工作的时候找借口看阿猫阿狗视频和xkcd漫画就显得比较有诚意了。

1986年

Brac Box 和 Tol Move决定在Smalltalk的基础上制作一个C语言的不可读版本,他们把这门语言叫做Objective-C,但是没人弄得清楚它的语法。

1987年

Larry Wall有宗教经验,他成为了一名牧师,并且把Perl变成了一种教义。

1991年

Guido van Rossum不喜欢花括号,于是他发明了Python,语法选择的灵感来源自Monty Python(巨蟒剧团)和Flying Circus(飞行马戏团)。

1993年

Roberto Ierusalimschy和他的朋友认为自己需要一个巴西本地化的脚本语言,在本地化期间发生了一个错误,这个错误会把指针从1而不是0开始计算,他们把这门语言叫做Lua。

1994年

Rasmus Lerdorf给他个人主页的CGI脚本做了一个模板引擎,后来他把自己的资料都放到了网上。

世界决定将这些东西用到一切,Rasmus于是匆忙地将一些数据库绑定做了进去,并把这门语言叫做PHP。

1995年

Yukihiro Matsumoto不是很高兴,因为他注意到其他程序员不是很高兴。他创建了Ruby来让程序员高兴。在他创建了Ruby后“Matz”高兴了,Ruby社区高兴了,每个人都高兴了。

1995年

Brendan Eich利用周末时间设计了一门语言,打算用这门语言来为全世界的每一个主流浏览器乃至于最终的Skynet都提供动力。

他先是找到了Netscape然后说这门语言叫做LiveScript,但在代码评审期间Java变得流行起来,所以他们决定最好还是用花括号,然后就把它更名为JavaScript。

结果表明,Java却是一个会让他们惹上麻烦的商标,JavaScript随后更名为ECMAScript,但大家还是把它叫做JavaScript。

1996年

James Gosling发明了Java,第一们真正过于繁琐的面向对象语言,在这里设计模式完全压倒了实用主义。

于是就诞生了超级有效的管理器提供商、容器提供商、服务提供商、单一管理器提供商模式。

2001年

Anders Hejlsberg重新发明了Java然后把它叫做C#,因为用C来编程感觉要比Java酷。每个人都喜欢这个新版本的Java,因为它完全不像Java。

2005年

David Hanselmeyer Hansen创建了一个web框架叫做Ruby on Rails,从此大家不再记得Ruby和Rails是两个独立的东西了。

2006年

John Resig为JavaScript写了一个帮助库,每个人都以为那是一门语言,从此从互联网上拷贝粘贴jQuery代码就成为了一门职业。

2009年

Ken Thompson 和 Rob Pike 决定做一门类似C那样的语言,但要有更安全的装置,还要有更好的卖相,并且把Gopher(囊鼠)作为吉祥物。

他们把这门语言成为Go,并把它做成开源然后另外卖Gopher商标的护膝和头盔作为收入来源。

2010年

Graydon Hoare也想把语言做成C那样,他称之为Rust。每个人都要求马上用Rust把软件的每一块都重写一遍。Graydon希望做点更有亮点的事情,于是开始为苹果开发Swift。

2012年

Anders Hjelsberg希望在web浏览器里面写C#,于是他设计出TypeScript,这东西其实是JavaScript,但里面有了更多的Java的东西。

2013年

Jeremy Ashkenas想要像Ruby开发者一样快乐,于是他创建了CoffeeScript,这东西编译后像JavaScript但是样子又更像Ruby。Jerry从来都没有变得像Matz和Ruby开发者那样真正快乐。

2014年

Chris Lattner做Swift的时候,其主要的设计目标就是不要成为Objective-C,最后它看起来像Java。

原文链接:https://medium.com/@caspervonb/a-brief-totally-accurate-history-of-programming-languages-cd93ec806124

译者:36Kr 编译组   编辑:郝鹏程。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:编程语言简史:有人讨厌花括号,于是他发明了 Python
加载中

精彩评论

h
holysky

引用来自“天命剑主”的评论

有没有花括号我不在乎,但每一块代码至少给一个do end或者begin end吧,缩进来区分就有些过分了
花括号是最完美的缩进解决方案,没有之一.
赫兹
赫兹
这翻译真的是一坨屎,应当严格限制科技科学等领域相关文章进行机器翻译,翻译的太扯了,这么严谨的学科,这么不严谨的文章; 要么直接上英文原文,要不就别发出来了~~~
开源中国首席罗纳尔多
开源中国首席罗纳尔多
我觉得花括号挺好的呀,分明
Raymin
Raymin

引用来自“天命剑主”的评论

有没有花括号我不在乎,但每一块代码至少给一个do end或者begin end吧,缩进来区分就有些过分了
Python 书上的示例代码,总有缩进排错的,要自己琢磨才能跑正确!
好消息是:Python 4.0 要支持纯空白字符编程了,代码由 空格 Tab 换行 组成。
天命剑主
天命剑主
有没有花括号我不在乎,但每一块代码至少给一个do end或者begin end吧,缩进来区分就有些过分了

最新评论(65

双曲线

引用来自“eechen”的评论

用换行结束语句的编程语言就是尴尬.
PHP输出多行字符串比JS舒服多了.
$html = '
  <a href="/">
    <img src="/logo.png" />
  </a>
';

引用来自“akamos01”的评论

JS用反引号就能做到,和php一样能嵌入表达式,而且表达式里可以再嵌入反引号,php做得到吗?

引用来自“cyper”的评论

js输出多行字符串是最方便的, 怎么变成尴尬了:
var name = "Andrew";
var age = 21;
var output = `
Hello my name is ${name}.
I am ${age} years old.
'', "" 随意写单双引号.
`

chrome浏览器及nodejs中都测试通过.

引用来自“南湖船老大”的评论

你这就触及PHPer的知识盲区了,小心被喷

引用来自“eechen”的评论

还知识盲区?你真是秀逗.
模板字符串这种东西,JS到了ES6才加入,而PHP天生就支持好么?
$name = 'php';
echo "username: {$name}"; // 输出 username: php
JAVAer少丢人现眼了.

引用来自“南湖船老大”的评论

哈哈哈,你百度后回来了啊,快感谢人家又教你个新的知识点

引用来自“eechen”的评论

少小人之心了,我在zhihu上早就说过这个问题,你这个JAVAer这么多年了,还是这么无下限.
哈哈,又玩JAVA还玩PHP的应该怎么站队?
AutoPlus
AutoPlus
这些语言是给高手用的,低手就算了吧,给你 lisp 还不晕菜
开源中国-首席村长
开源中国-首席村长
PY搞大括号跟PHP有啥区别啊,我的设想是用;来表示条件执行代码段结束。
李大蛋
李大蛋

引用来自“天命剑主”的评论

有没有花括号我不在乎,但每一块代码至少给一个do end或者begin end吧,缩进来区分就有些过分了

引用来自“Raymin”的评论

Python 书上的示例代码,总有缩进排错的,要自己琢磨才能跑正确!
好消息是:Python 4.0 要支持纯空白字符编程了,代码由 空格 Tab 换行 组成。
那不就是whitespace语言吗
风水书生
风水书生
想搞个带大括号的python
土卫十六
土卫十六
没有Delphi,差评!
进击的代码
进击的代码

引用来自“进击的代码”的评论

神特么化学阉割…1842年那个我看了几遍也没看懂具体的意思,机器翻译吧?开源中国能不能搞个审查啊

引用来自“Anjelo”的评论

真的是化学阉割,原因是同性恋问题,最后图灵因此自杀。为了搞笑点就直接省了这部分描述。

引用来自“进击的代码”的评论

但是后面还有个阉割…

引用来自“Anjelo”的评论

那种用药物控制欲望的手段就叫“化学阉割”,度娘一下可以找到详细资料。
��我去好吧
Anjelo
Anjelo

引用来自“进击的代码”的评论

神特么化学阉割…1842年那个我看了几遍也没看懂具体的意思,机器翻译吧?开源中国能不能搞个审查啊

引用来自“Anjelo”的评论

真的是化学阉割,原因是同性恋问题,最后图灵因此自杀。为了搞笑点就直接省了这部分描述。

引用来自“进击的代码”的评论

但是后面还有个阉割…
那种用药物控制欲望的手段就叫“化学阉割”,度娘一下可以找到详细资料。
如比如比
如比如比
♪(^∇^*)
DK_925
DK_925
(●ˇOˇ●)
返回顶部
顶部