点击上方“CSDN”,选择“置顶公众号”

关键时刻,第一时间送达!

编程语言从何而来?程序员惯用的 Java、C、C++ 等语言又是谁研究而成的?本文追溯到 1800 年,历数百年来的编程语言进化史。

1800

Joseph Marie Jacquard 发明了能够阅读穿孔卡片的织布机,创造出了第一个高度多线程的处理单元。然而他的这些发明却长期受到织工的反对。

1842

数学家 Ada Lovelace 编写了世界上第一个机器算法,后来被称为第一个计算机程序,只是由于当时没有计算机而无法运行。

1936

艾伦.图灵在二战中破译了德军密码并发明了计算机,然而他却因为自己的同性恋取向惨遭化学阉割。

在他去世几个世纪之后,终于在2013年得到了女王的赦免。

1936

Alonzo Church 发表了可计算函数的第一份精确定义,他实现了与图灵类似的成就。

1957

John Backus 发明了FORTRAN 语言,这是第一门真正被程序员使用的语言。

1959

Grace Hopper 发明了第一个面向企业业务的编程语言,又称“面向商业的通用语言”,也常常简称COBOL。

1964

美国达特茅斯学院约翰·凯梅尼和托马斯·卡茨认为,像 FORTRAN 那样的语言太过专业,编程非常困难。于是他们简化了 FORTRAN,并设计出了更适合初学者的 BASIC 语言。

1970

尼古拉斯·沃斯非常痴迷于编程语言,他率先提出了结构化程序设计思想并发明了 Pascal 语言。

此外他还提出了Wirth定律,意为“软件变慢的速度比硬件变快的速度更快”,这让摩尔定律变得充满讽刺。之后的 Electron.js 也确实证明了这一点。

1972

丹尼斯·里奇在贝尔实验室工作期间发明了 C 语言,开启了现代程序语言的革命。之后,他又添加了段错误和其他一些帮助开发人员的实用功能,大大提升了编程效率。

除了 C 语言之外, 他和贝尔实验室的同事还创造了伟大的 Unix 操作系统。

1980

Alan Kay 发明了面向对象的编程语言 Smalltalk,在 Smalltalk 中,一切皆对象。

1987

拉里·沃尔发明了 Perl 语言。

1983

Jean Ichbiah 发现 Ada Lovelace 的程序从未运行成功过,因此决定用她的名字创建一种语言,于是 Ada 语言诞生了。

1986

Brac Box 和 Tol Move 通过融合 C 语言和 Smalltalk 的特征,发明了 Objective-C。但由于其语法晦涩,不太容易理解。

1983

Bjarne Stroustrup 在 C 语言的基础上引入并扩充了面向对象的概念,发明了—种新的程序语言并将其命名为 C++。

C++ 大大提升了应用程序的编程效率。

1991

Guido van Rossum 讨厌带有大括号的编程语言,于是他参考 Monty Python 和 Flying Circus 语法,并发明了 Python。

1993

Roberto Ierusalimschy 和其朋友创造了一门巴西本地的脚本语言。在本地化过程中,由于一个小的错误使得索引从1开始,而不是0。这门语言就是 Lua。

1994

Rasmus Lerdorf 为他个人主页的 CGI 脚本制作了一个模板引擎,用来统计他自己网站的访问量。

这个文件被上传到网上之后用它的人越来越多。后来又用 C 语言重新编写,还添加了数据库访问功能。这门语言就是 PHP。

1995

松本行弘发明了 Ruby 语言。

1995

Brendan Eich 利用周末时间设计了一种语言,用于为世界各地的网页浏览器提供支持,并最终推出了 Skynet。他最初去了 Netscape,并将这门语言命名为 LiveScript,后来在代码审查期间 Java 逐渐开始风靡,因此他们决定将其改名为 JavaScript。

后来 Java 使其陷入了商标麻烦,于是 JavaScript 被更名为 ECMAScript。但是人们还是习惯称之为 JavaScript。

1996

James Gosling 发明了 Java,这是第一个真正意义上面向对象得编程语言,其中设计模式在实用主义中占统治地位。

2001

Anders Hejlsberg 认为使用 C 语言编程比起 Java 来说更酷。于是他参考 Java 的特征发明了 C#。那些不喜欢 Java 的人对 C# 非常满意。

2005

David Hanselmeyer Hansen 创建了名为 Ruby on Rails 的 Web 框架。

2006

John Resig 为 JavaScript 编写了一个帮助程序库,后来大家称之为 jQuery。

2009

肯·汤普森和罗伯·派克创建了一种类似 C 的编程语言,其更具安全性并且适合市场需求,它的吉祥物是一只地鼠。这门语句就是开源的 Go。

2010

Graydon Hoare 也创造了一种类似 C 的语言,他称之为 Rust。人们期待 Rust 能够编写任何软件。但是 Graydon 想要做更炫的事情,于是投身了 Apple 的 Swift。

2012

Anders Hjelsberg 想要在 Web 浏览器中编写 C#,于是他设计了 TypeScript。

2013

Jeremy Ashkenas 想要拥有 Ruby 开发者那样愉快的开发体验,因此他创建了CoffeeScript,它编译后是 JavaScript,但是看起来更像 Ruby。

2014

Chris Lattner 发明了 Swift。起初的设计目标是替代 Objective-C,但是最终它看起来有点像Java。

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

作者:Casper Beyer

译者:安翔

————— 推荐阅读 —————

点击图片即可阅读

从编程语言进化史,看 Java、C、C++ 等语言的演变相关推荐

  1. 从最新的编程语言排行看,Java真的要凉了吗?

    作为一个历经无数风雨的编程语言,Java近些年好像拿到了悲惨的"人设剧本",网络上对它的质疑越来越高,例如: "Java真的要凉了吗?" "Pytho ...

  2. 编程语言进化史《禅与计算机程序设计艺术》 / 陈光剑

    编程语言概述 计算机编程语言是程序设计的最重要的工具,它是指计算机能够接受和处理的.具有一定语法规则的语言. 编程语言处在不断的发展和变化中,从最初的机器语言发展到如今的2500种以上的高级语言,每种 ...

  3. 谁才是2019最火爆的编程语言,看这篇就够了

    一门编程语言就像一个小宇宙,语言中的各种语法概念就像一颗颗星辰,无穷无尽. "学哪种语言有钱途?Python真的像说的那么好吗?我要转行IT行业了,求告知哪种语言能让我年入百万......& ...

  4. 最令人讨厌的编程语言:C++ Java 上榜

    中国有句古语:干一行,爱一行.话虽如此,但爱一行并不代表完全包容吧,至少本文就选出了 4 种令开发者讨厌的编程语言-- 参考链接:https://www.techrepublic.com/articl ...

  5. java编程语言基础外文,Java编程语言基础.ppt

    Java编程语言基础.ppt 第2章Java编程语言基础 学习目标 1 熟练掌握Java数据类型 常量及变量 运算符 2 熟练掌握数组 3 熟练掌握Java的面向对象概念及应用 4 能够应用面向对象程 ...

  6. 计算机语言在游戏编程的排名,从编程语言排行榜看技术发展趋势

    一个语言要想进入排行榜,必须符合两个条件: 必须在Wikipedia上有单独的词条,并且明确的指明这是一门编程语言. 必须是图灵完备的.目前TIOBE榜单上的语言有225个(计算机语言真是博大精深,好 ...

  7. 2019 编程语言排行榜:Java、Python 龙争虎斗!PHP 屹立不倒!

    点击上方的终端研发部,右上角选择"设为星标" 每日早9点半,技术文章准时送上 公众号后台回复"学习",获取作者独家秘制精品资料 往期文章 作者 | Alicia ...

  8. Arduino UNO销量破千万,从Arduino进化史看革命性硬件是如何炼成的?

    Arduino UNO 自2010 年推出以来,迄今已出货了 1000 万块.为此,Arduino 团队设计了 Arduino UNO Mini限量版来庆祝这一里程碑. Arduino UNO Min ...

  9. 一个简单的例子看java线程机制

    一个简单的例子看java线程机制 作者: zyf0808 发表日期: 2006-03-26 11:20 文章属性: 原创 复制链接 import java.util.*; public class T ...

最新文章

  1. 股市币市:数据分析与交易所公告(20190226)
  2. JSP内置对象-request
  3. ZOJ 2334 HDU 1512 Monkey King
  4. jeecg3.5.2中上传下载文件的示例中的的一个bug
  5. vim的保存文件和退出命令
  6. python编程 语言-python编程语言有什么用途
  7. 程序员应该知道的七个图形工具
  8. 进击的UI------------网络判断
  9. git 本地重新关联新的远程仓库命令/查看本地关联远程仓库
  10. Android开发(4) | 系统权限、MediaPlayer类 和 VideoView类 的应用——播放多媒体文件
  11. 关于X-UA-Compatible
  12. HDU 5942 2016CCPC杭州 J: Just a Math Problem(莫比乌斯函数)
  13. Mac入门——快捷键
  14. 电子元器件选型——功率电感
  15. Linux数据库迁移
  16. idea快速查找一个类或类中方法名和变量
  17. 当面试官说 “你还有什么问题想问的” ,你该如何回答?
  18. 用小程序做问卷调查,获取数据就是这么简单!
  19. Dell OptiPlex 7090插入耳机有声音没有麦克风的解决方案
  20. vue 表情包编码转换

热门文章

  1. LeetCode 题练习记录
  2. 中国邻苯二甲酸二环己酯(DCHP)行业市场供需与战略研究报告
  3. 前端vue项目开发流程
  4. Git教程之一个团队如何在github上协作开发
  5. 腾讯云联合信通院发布《超低延时直播白皮书》,推动直播延时降低90%以上
  6. 零信任风口来了,新一代企业安全架构革新势在必行
  7. 5G 准备向 Wi-Fi 的 6GHz 频段下手了?
  8. 清华硕士分享思维导图:机器学习所需的数学基础
  9. 重返商用计算市场,紫光计算机要做数字化转型生意
  10. 为什么有 HTTPS?因为 HTTP 不安全!