现代编程语言的祖先(1801)
Joseph Marie Jacquard 用打孔卡为一台织布机编写指令,在挂毯上织出了“hello, world”字样。当时的 reddit 网友对这项工作的反响并不热烈,因为它既缺少尾递归调用,又不支持并发,甚至都没有注意在拼写时恰当地区分大小写。这套机械编制技巧后来被改良成纸卷钢琴录音,也激发 IBM 创建者 Herman Hollerith 使用打洞卡来记录数据和做计算机程序设计。IBM 为纪念纺织工业,后来在 1994 年也将其操作系统命名为 OS/2 Warp(warp 即是纺织布上的经线)。
Ada Lovelace(1824)
1842 年拜伦之女 Ada Lovelace 写了世界上第一个程序。她的努力只遇到了一点点小小的麻烦,那就是:实际上并没有任何计算机能够用来运行她的程序。后来的企业架构师们重新吸收了她的这个技能,用来学习如何更好地使用 UML 进行编程。
Ada Lovelace 为 Charles Babbage 的分析机写了一个计算伯努利数的算法实现,因此被后世公认为是世界上第一个程序员。实际上,由于分析机设计思想过于先进,在当时根本没有被制造出来。(Babbage 的分析机一般被认为是现代电子通用计算机的先驱。)讽刺现在的某些“软件架构师”顶多只会纸上谈兵地画画 UML。
Fortran(1957)
John Backus 和 IBM 发明了 Fortran(FORmula TRANslator)语言。它是世界上最早出现的计算机高级程序设计语言,广泛应用于科学和工程计算领域。FORTRAN 语言以其特有的功能在数值、科学和工程计算领域发挥着重要作用。Fortran 90 之前的版本是人们所知晓的 FORTRAN(全部字母大写),从 Fortran 90 以及以后的版本都写成 Fortran(仅有第一个字母大写)。关于 IBM 或 Fortran 并没有什么特别的地方,除了写 Fortran 程序的时候不系蓝领带将被编译器视作是一个 syntax error。
蓝领带、白衬衫、深色西装似乎是 IBM 公司 20 世纪经典的 dress code。
早期 Fortran(Fortran 77)对程序书写格式的要求那是相当严格。(例如,固定格式缩进)
Cobol(1959)
在输掉了和 L. Ron Hubbard 之间的一场打赌之后,Grace Hopper 和其他几个发明了所谓的“面向 Boilerplate 的全大写化语言”(Capitalization Of Boilerplate Oriented Language,Cobol)Cobol(CommonBusinessOrientedLanguage)是数据处理领域最为广泛的程序设计语言,是第一个广泛使用的高级编程语言。在企业管理中,数值计算并不复杂,但数据处理信息量却很大。为专门解决经企管理问题,美国的一些计算机用户于 1959 年组织设计了专用于商务处理的计算机语言 COBOL, 并于 1961 年美国数据系统语言协会公布。
COBOL 语言以代码极其冗长和通篇大写字母的书写风格而闻名。
Pascal(1970)
1970 年 Niklaus Wirth 创造了 Pascal,一个过程式的语言。尽管 Pascal 非常流行(然而在八十到九十年代时比 21 世纪更加流行),依据维尔特的对这种语言的定义来构建 Pascal,使它不适合在非教学的场合使用,这遭到了广泛的批评。推广了 C 语言的 Brian Kernighan 早在 1981 年就在他的论文《Why Pascal Is Not My Favourite Programming Language》对 Pascal 提出了严厉的抨击。
Smalltalk(1980)
Alan Kay 创造了 Smalltalk 并发明了“面向对象”这个词。当被问到它的含义时,他回答道:“Smalltalk 程序本身就是对象。”当被问到对象是由什么组成时,他回答到:“对象。”当再一次被问到这个问题时,他说“看,它从里到外都是对象。直到你抽出一只乌龟。”
90 年代的许多软件开发思想得利于 Smalltalk,例如 Design Patterns,Extreme Programming(XP) 和 Refactoring 等。
20 世纪 70 年代到 80 年代前期,美国施乐公司的帕洛阿尔托研究中心(PARC)开发了 Smalltalk 编程语言。从 Smalltalk-72、Smalltalk-78 到 Smalltalk-80,他们开发完成了整个 Smalltalk 系列,Smalltalk 编程语言对近代面向对象编程语言影响很大,所以称之为“面向对象编程之母”。
Smalltalk 的设计从很大程度上受到了 Logo 的影响。
这门语言在 70 年代初期就诞生了,但公开可用的第一版是 Smalltalk-80 Version 1。
Ada(1983)
为了纪念伟大的先辈程序员 Ada Lovelace 那能够写出永远也无法被执行的代码的彪悍技能,Jean Ichbiah 和美国国防部创造了 Ada 语言。Ada 不仅体现了许多现代软件的开发原理,而且将这些原理付诸实现。同时,Ada 语言的使用可大大改善软件系统的清晰性、可靠性、有效性、可维护性。
Ada 是现有的语言中无与伦比的一种大型通用程序设计语言,它是现代计算机语言的成功代表,集中反映了程序语言研究的成果。Ada 的出现,标志着软件工程成功地进入了国家和国际的规模。尽管缺乏证据显示有任何重要的 Ada 程序曾经被完成过,历史学家仍然确信 Ada 是个成功的公益项目,它让数以千计的国防承包商免于沦落为与黑帮为伍。
Ada 曾经是美国国防部指定的嵌入式计算机系统唯一开发语言,在其研发上耗资巨大。(国防承包商们于是不用靠贩卖军火给黑帮来维持生计了。)
以上语言虽然都在不同程度上渐渐不再为现代的多数开发者所用,但每一次的创新与创造,都将关乎未来。
近年来年度编程语言排行
(来源:TIOBE)
** 语言会迭代升级、有兴衰起落。历年来编程语言排行榜的名次也都是在不断变化,不论是否流行,都值得被尊重。仅以此,向正在努力着的开发者们致敬!**