编程语言简史

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

1800年

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

1842年

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

1936年

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

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

1936年

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

1946年

电子计算机被人类发明了出来,计算机是20世纪最先进的科学技术发明之一,对人类的生产活动和社会活动产生了极其重要的影响,并以强大的生命力飞速发展。这个时候的计算机语言是机器语言

20世纪50年代

汇编语言(Assembly Language)在这个时期诞生了,这是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言的统称,亦称为符号语言。

1954年

John Backus创建了FORTRAN语言,FORTRAN语言是世界上第一个被正式推广使用的高级语言,它是1954年被提出来的,1956年开始正式使用。

1958年

由欧美计算机学家合力所组成的联席大会于仍是晶体管计算机流行的1950年代末开发出ALGOL语言,这是算法语言(ALGOrithmic Language)的简称,是在计算机发展史上首批清晰定义的高级语言,也是第一个结构化程序设计语言。

1959年

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

1964年

John Kemeny 和 Thomas Kurtz 认为编程太难了,需要回归本源,他们把自己的编程语言叫做BASIC(初学者通用符号指令代码),这是最简单的编程语言,该语言只有26个变量名,17条语句,12个函数和3个命令。

1970年

Niklaus Wirth开发了多种语言,最后流行起来的是PASCAL。这是基于ALGOL编程语言,为纪念法国数学家、哲学家、电脑先驱布莱兹·帕斯卡而命名。它由瑞士Niklaus Wirth教授于六十年代末设计并创立的。Pascal具有语法严谨、层次分明等特点,被称为“编程语言里一个重要的里程碑”。

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

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

1972年

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

C语言的祖先是BCPL(Basic Combined Programming Language)语言,在1970年美国贝尔实验室的Ken Thompson在BCPL语言的基础上,设计出了B语言。接着在1972到1973年间,美国贝尔实验室的Dennis M.Ritchie在Ken Thompson的基础上设计出了C语言。

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

C语言是现代程序语言革命的起点,在TIOBE编程语言排行榜上几十年来基本上都占居首位。

1980年

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

1982年

硬件描述语言VHDL诞生,用于集成电路设计。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言 。自IEEE-1076(简称87版)之后,各EDA公司相继推出自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。

1983年

Verilog 另一种硬件描述语言,是由Gateway设计自动化公司的工程师于1983年末创立的。当时Gateway设计自动化公司还叫做自动集成设计系统(Automated Integrated Design Systems),1985年公司将名字改成了前者。该公司的菲尔·莫比(Phil Moorby)完成了Verilog的主要设计工作。1990年,Gateway设计自动化被Cadence公司收购。

1983年

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

1983年

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

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

1986年

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

1987年

Perl最初的设计者为拉里·沃尔(Larry Wall),他于1987年12月18日发表。Perl借取了C、sed、awk、shell 脚本语言以及很多其他程序语言的特性。其中最重要的特性是它内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。

1989年

为了开发MUD游戏,Lars Pensjǒ在1989年根据C语言开发了编程语言--LPC语言,使用LPC语言开发的MUD游戏被称为LPMUD。

1990年

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

1993年

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

1994年

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

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

1995年

James Gosling发明了Java,第一门真正过于繁琐的面向对象语言,在这里设计模式完全压倒了实用主义。于是就诞生了超级有效的管理器提供商、容器提供商、服务提供商、单一管理器提供商模式。

Java语言是目前最流行的编程语言之一,一直稳居TIOBE编程语言排行榜前三名。

1995年

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

1995年

1995年5月,Brendan Eich 只用了10天时间设计了一门语言,打算用这门语言来为全世界的每一个主流浏览器提供动力。

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

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

JavaScript是一个大杂烩,语法有多个来源:

  • 基本语法:借鉴 C 语言和 Java 语言。
  • 数据结构:借鉴 Java 语言,包括将值分成原始值和对象两大类。
  • 函数的用法:借鉴 Scheme 语言和 Awk 语言,将函数当作第一等公民,并引入闭包。
  • 原型继承模型:借鉴 Self 语言(Smalltalk 的一种变种)。
  • 正则表达式:借鉴 Perl 语言。
  • 字符串和数组处理:借鉴 Python 语言。

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。

2020年(ORZ)

2020年1月15日,中国科学院计算技术研究所正式对外发布由该所计算机体系结构国家重点实验室编译技术团队自主研发、面向新一代人工智能和物联网应用的“木兰”编程语言体系,并推出“木兰”开源软件包,供全球用户免费下载获取。发布会声称该编程语言由编译组完全自主设计、开发和实现。与之配套的编译器与集成开发工具也完全由团队自主实现的,是真正掌握核心技术的编程语言。

就在当天,网友就把这门语言的皮扒了下来,事实上“木兰”语言是刘雷创办的中科智芯公司研发的面向青少年编程教育的集成化产品,该产品的开发包中包含了Python开源编译器,对外却声称“完全自主”。解包后的木兰语言其实就是建立在Python之上,将Python构建的环境、包和项目都编译成一个可执行文件,就是给Python语言套了个马甲。


编程语言排行榜

file file


编程语言变量类型

file

京ICP备13031296号-4