清明忆语 | 缅怀那些正渐行渐远的编程语言
借这个特别的日子,让我们缅怀一下那些在渐渐离我们远去的编程语言!
现代编程语言的祖先
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)
语言会迭代升级、有兴衰起落。
历年来编程语言排行榜的名次也都是在不断变化,不论是否流行 ,都值得被尊重。
仅以此,向正在努力着的开发者们致敬!
·END·
*部分文章图片及信息来源于网络
清明忆语 | 缅怀那些正渐行渐远的编程语言相关推荐
- 缅怀那些正渐行渐远的编程语言
现代编程语言的祖先 (1801) Joseph Marie Jacquard 用打孔卡为一台织布机编写指令,在挂毯上织出了"hello, world"字样.当时的reddit网友对 ...
- 2016年4月编程语言排行榜 Visual Basic正渐行渐远
2016年4月编程语言排行榜 Visual Basic正渐行渐远 转自:http://digi.163.com/16/0408/17/BK57UT2P00162OUT.html COBOL, BASI ...
- 清明祭:缅怀手机领域的那些先烈厂商们,你可还记得?
清明节到了,扫墓的形式,从墓前现场哀悼,再到网上扫墓,甚至手机扫墓.这个时候,当我们拿起手机的时候,有必要也缅怀一下手机领域的那些"先烈"厂商们. 最早的手机,可以说是起源于194 ...
- c语言和Java你好世界,C编程语言之“你好世界”的例子
在我们研究C编程语言的基本构建块之前,让我们看一下最基本的C程序结构,以便我们在后面得内容将其作为参考. C编程语言之"你好世界"的例子-1.jpg (37.41 KB, 下载次数 ...
- 《惢客创业日记》2019.04.05(周五)清明扫墓写诗一首
今天是清明节,去了两个地方,一个是父亲的墓地,另一个是烈士陵园.对过去的人最好的报答是完成他们未完成的心愿和牵挂. 这一刻,我想对故去的父亲说:"对您最好的报答,就是照顾好在世的老母亲.&q ...
- (六一儿童节篇)渐行渐远的儿时游戏
渐行渐远的儿时游戏 又是六一儿童节,偶想起了曾经美好的童年,儿时的游戏. 这是曾经乡村孩子们的儿童游戏. 1.滚铁环 一个大大铁丝绕成的圈子,还有带手柄钩子,用他滚着铁环去上学,放学归来. 2.弹弓 ...
- c语言x斜杠与反斜杠,正斜杠和反斜杠-windows、web、c语言大讨论
首先,在c语言中, 正斜杠/ slash 表示除法 反斜杠\ backslash ,\用于转义字符,\n.\0. 其次,UNIX 操作系统设计了这种路径分隔法,它使用正斜杠:/. 由于网络是首先应用在 ...
- 正负号运算:让你轻松掌握正负号运算符的使用方式
正负号运算:正号可以省略 在C语言中,正负号运算是一种基本的算数运算,常用于为数字加上正负号.本文将介绍正负号运算符的使用方法以及注意点,并给出一些实例进行说明. 正数和负数 在C语言中,可以表示正数 ...
- c语言的反斜杠用法,正斜杠和反斜杠-windows、web、c语言大讨论
首先,在c语言中, 正斜杠/ slash 表示除法 反斜杠\ backslash ,\用于转义字符,\n.\0. 其次,UNIX 操作系统设计了这种路径分隔法,它使用正斜杠:/. 由于网络是首先应用在 ...
最新文章
- python 使用scapy创建arping脚本
- OSS上传图片无法在线预览的解决方案
- java8 supplyasync_java – 为什么CompletableFuture.supplyAsync成功随...
- 在 Mac OS X Lion 下修改 Hosts 的四种方法
- Activiti工作流(三)——流程变量
- java aop xml配置_spring AOP使用 xml配置
- Android 系统自带的图标
- 思科无线服务器,【CISCO wlan】思科无线网络_3-基本配置v2.pdf
- Device mapper存储方式
- mysql inner 连接多表_MySQL数据库之多表查询inner join内连接
- JS实现文字转语音播放
- 2021图像检索综述
- python 中文分析句子成分_英语长难句看不懂,句子成分不会分析?一文轻松搞定...
- 使用尾注添加参考文献并删除尾注中的横线和空格
- 优麒麟 22.04 LTS 版本正式发布 | UKUI 3.1开启全新体验
- 崩坏3服务器维护2月8号,《崩坏3》2月8日更新内容 符华月轮正式上线
- 计算机常用的颜色英文缩写,计算机用语中常见英文缩写和词组J
- 鸡兔同笼python程序怎么写_【鸡】鸡的功效_鸡图片_食材百科_美食杰
- 实验........
- Matlab 去趋势处理