太牛逼了,居然有人将各大编程语言绘成了一部编年史!

点击上方 "程序员小乐"关注公众号, 星标或置顶一起成长

每天早上8点20分, 第一时间与你相约

每日英文

Whatever you are facing today, remember to give yourself some credit for making it this far. You are stronger than you know.

无论你今天要面对什么,既然走到了这一步,就奋 斗下去,给自己一些肯定,你比自己想象中要坚强。


每日掏心话

生活中没有什么可怕的东西,人活一世,感性的同时,总是少不了理性的克制。


来自:大数据文摘 | 责编:乐乐

链接:toutiao.com/a6656219499991138823/

640?wx_fmt=jpeg

程序员小乐(ID:study_tech)第 629 次推文   图片来自网络


   正文   



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


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



640?wx_fmt=gif


640?wx_fmt=gif



640?wx_fmt=jpeg


1800年,Joseph Marie Jacquard让织布机学会了读穿孔卡片,造出了第一台重度使用多线程处理单元的机器。预见到天网(Skynet)诞生的织布工们激烈地反对该项发明。



640?wx_fmt=jpeg

Ada Lovelace


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



640?wx_fmt=jpeg


1936年,Alan Turing啥都发明了,他是计算机逻辑的奠基者,许多人工智能的重要方法也源自于他。他对计算机的重要贡献在于他提出的有限状态自动机也就是图灵机的概念,对于人工智能,他提出了重要的衡量标准“图灵测试”,人们为纪念其在计算机领域的卓越贡献而设立“图灵奖”。


640?wx_fmt=jpeg

Alonzo Church


1936年,Alonzo Church和Turing一样啥都发明了,1936年发表可计算函数的第一份精确定义,对算法理论的系统发展做出巨大贡献。



640?wx_fmt=jpeg

John Backus


1957年,John Backus发明Fortran语言,也是“真正的编程者”使用的第一种计算机语言。



640?wx_fmt=jpeg


1959年,Grace Hopper发明了第一个面向企业、可用的编程语言,命名为“通用的业务导向语言”,简称为COBOL。



640?wx_fmt=jpeg


1964年,John Kemeny和Thomas Kurtz都觉得现有计算机语言的编程太难了,人们需要回归基础(basic),因而将他们发明的计算机语言称之为BASIC。


1970年,Niklaus Wirth创造了Pascal和几门其它语言(他就是这么爱创造语言),他还创造了沃斯定律。相形之下摩尔定律就过时了,因为软件开发者基于摩尔定律写的软件太臃杂了,连主机都带不动。后来Electron.js的发明和基于它的抽象概念也证明了这一点。



640?wx_fmt=jpeg

Dennis Ritchie


1972年,Dennis Ritchie在贝尔实验室里对工作产生了厌倦,于是决定搞个带大括号的C语言,并取得了巨大的成功。之后,他在语言中加入分段错误和其它一些对开发者友好的功能来增强C语言的生产力。


干完这些工作后,离下班还有几小时,所以他和贝尔实验室的小伙伴们决定开发个程序来展示C语言,然后他们就造了个叫Unix的操作系统(红红火火恍恍惚惚)。



640?wx_fmt=jpeg

Alan Kay


1980年,Alan Kay建立了一门叫做Smalltalk的面向对象的编程语言。这门语言里,什么都是对象,对象本身也是一个对象。可惜大家都没时间思考闲聊(small talk)的意义。



640?wx_fmt=jpeg

Larry Wall


1987年,Larry Wall经历了一次宗教体验,成为了一名传教者,他传播的教义就是Perl。



640?wx_fmt=jpeg

Jean David Ichbiah


1983年,Jean Ichbiah发现Ada Lovelace的程序就从来没真正运行过,于是决定以他名字创建一门语言。但他的语言也没运行过。


1986年,Brac Box和Tol Move决定要创建一门基于Smalltalk、不可读版本的C语言,并称之为Objective C语言,但没人看得懂这门语言的语法。



640?wx_fmt=jpeg

Bjarne Stroustrup


1983年,Bjarne Stroustrup从未来穿越过去,发现C语言没给编译留足时间,于是他把所有能够想到的功能加进去了,并命名为C++。几乎所有的编程者都在使用它,这样他们就有理由在工作的时候撸猫片和看科学松鼠会了。



640?wx_fmt=jpeg

Guido van Rossum


1991年,Guido van Rossum写了本关于蛋蛋和火腿的食谱(Python之父)。



1993年,Roberto Ierusalimschy和他的朋友们觉得他们需要一门英国本地化的脚本语言,在本地化过程中出了个错,使得本应该从0开始的计数从1开始了,然后他们把这个叫做Lua。



640?wx_fmt=jpeg

Rasmus


1994年,Rasmus Lerdorf为他个人主页的CGI脚本弄了个模版引擎,并把这个文件发布在网上了。世界各国人民钦定这个文件哪哪都要用上,于是兴奋炸裂的Rasmus又放了点额外的绑定数据库上去,并称之为PHP。


640?wx_fmt=jpeg

Yukihiro Matsumoto


1995年,Yukihiro Matsumoto不是很开心,还发现其它码农也不是很开心,所以他创建了Ruby语言让大家开心开心。Ruby语言面世后,Matz挺开心的,Ruby社区也挺开心,大家都很开心(*^__^*)。


640?wx_fmt=jpeg

Brendan Eich


1995年,Brendan Eich花了个周末设计了门语言,希望能够为世上所有的网页浏览器赋能,最终也影响天网。他最开始去了网景,并称自己设计的语言为LiveScript,但Java在代码审查环节火了,于是他们决定用大括号才好,改名叫JavaScript。


后来Java一团糟,于是他们觉得这语言跟Java沾亲带故会出事,所以又在标准化时候把它改名叫ECMAScript,但人们还是按习惯称之为JavaScript。


640?wx_fmt=jpeg

James Gosling


1996年,James Gosling创建了Java,第一个真正的过于详细的、设计模式高于实用性的、面向对象的编程语言。这么一个非常有效的、管理员供应商集装箱供应商服务管理者单件模式管理者供应商模式就诞生了。



640?wx_fmt=jpeg

Anders Hejlsberg


2001年,Anders Hejlsberg重建了Java,并称之为C#,因为用C语言编程比Java要更酷。大家都很爱这个Java新版本因为它一点也不像Java。



640?wx_fmt=jpeg

David Heinemeier Hansson


2005年,David Hanselmeyer Hansen创建了个叫做RubyonRails的网页框架,人们从此把红宝石与铁路联系起来了。



640?wx_fmt=jpeg

John Resig


2006年,John Resig给JavaScript写了个助手库,所有人都觉得这也是门计算机语言,给许多从网上复制粘贴jQuery代码的人们解决了就业问题。



640?wx_fmt=jpeg

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开发者那样开心。



640?wx_fmt=jpeg

Chris Lattner


2014年,Chris Lattner设计Swift的初衷是让它别像Objective-C一样,所以最后Swift看起来就像是Java了。


640?wx_fmt=png

欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,学习能力的提升上有新的认识,欢迎转发分享给更多人。


欢迎各位读者加入程序员小乐技术群,在公众号后台回复“加群”或者“学习”即可。

猜你还想看


关于如何实现一个 TCC 分布式事务框架的一点思考

如何用一句话激怒怒怒怒怒怒怒怒互联网人?

如何让 Mybatis 自动生成代码

为什么 IDEA 比 Eclipse 更好?

如何用几个简单的命令改善你的Linux安全?

关注「程序员小乐」,收看更多精彩内容
嘿,你在看吗640?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值