借这个特别的日子,让我们缅怀一下那些在渐渐离我们远去的编程语言!

现代编程语言的祖先

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·

*部分文章图片及信息来源于网络

清明忆语 | 缅怀那些正渐行渐远的编程语言相关推荐

  1. 缅怀那些正渐行渐远的编程语言

    现代编程语言的祖先 (1801) Joseph Marie Jacquard 用打孔卡为一台织布机编写指令,在挂毯上织出了"hello, world"字样.当时的reddit网友对 ...

  2. 2016年4月编程语言排行榜 Visual Basic正渐行渐远

    2016年4月编程语言排行榜 Visual Basic正渐行渐远 转自:http://digi.163.com/16/0408/17/BK57UT2P00162OUT.html COBOL, BASI ...

  3. 清明祭:缅怀手机领域的那些先烈厂商们,你可还记得?

    清明节到了,扫墓的形式,从墓前现场哀悼,再到网上扫墓,甚至手机扫墓.这个时候,当我们拿起手机的时候,有必要也缅怀一下手机领域的那些"先烈"厂商们. 最早的手机,可以说是起源于194 ...

  4. c语言和Java你好世界,C编程语言之“你好世界”的例子

    在我们研究C编程语言的基本构建块之前,让我们看一下最基本的C程序结构,以便我们在后面得内容将其作为参考. C编程语言之"你好世界"的例子-1.jpg (37.41 KB, 下载次数 ...

  5. 《惢客创业日记》2019.04.05(周五)清明扫墓写诗一首

    今天是清明节,去了两个地方,一个是父亲的墓地,另一个是烈士陵园.对过去的人最好的报答是完成他们未完成的心愿和牵挂. 这一刻,我想对故去的父亲说:"对您最好的报答,就是照顾好在世的老母亲.&q ...

  6. (六一儿童节篇)渐行渐远的儿时游戏

     渐行渐远的儿时游戏 又是六一儿童节,偶想起了曾经美好的童年,儿时的游戏. 这是曾经乡村孩子们的儿童游戏. 1.滚铁环 一个大大铁丝绕成的圈子,还有带手柄钩子,用他滚着铁环去上学,放学归来. 2.弹弓 ...

  7. c语言x斜杠与反斜杠,正斜杠和反斜杠-windows、web、c语言大讨论

    首先,在c语言中, 正斜杠/ slash 表示除法 反斜杠\ backslash ,\用于转义字符,\n.\0. 其次,UNIX 操作系统设计了这种路径分隔法,它使用正斜杠:/. 由于网络是首先应用在 ...

  8. 正负号运算:让你轻松掌握正负号运算符的使用方式

    正负号运算:正号可以省略 在C语言中,正负号运算是一种基本的算数运算,常用于为数字加上正负号.本文将介绍正负号运算符的使用方法以及注意点,并给出一些实例进行说明. 正数和负数 在C语言中,可以表示正数 ...

  9. c语言的反斜杠用法,正斜杠和反斜杠-windows、web、c语言大讨论

    首先,在c语言中, 正斜杠/ slash 表示除法 反斜杠\ backslash ,\用于转义字符,\n.\0. 其次,UNIX 操作系统设计了这种路径分隔法,它使用正斜杠:/. 由于网络是首先应用在 ...

最新文章

  1. python 使用scapy创建arping脚本
  2. OSS上传图片无法在线预览的解决方案
  3. java8 supplyasync_java – 为什么CompletableFuture.supplyAsync成功随...
  4. 在 Mac OS X Lion 下修改 Hosts 的四种方法
  5. Activiti工作流(三)——流程变量
  6. java aop xml配置_spring AOP使用 xml配置
  7. Android 系统自带的图标
  8. 思科无线服务器,【CISCO wlan】思科无线网络_3-基本配置v2.pdf
  9. Device mapper存储方式
  10. mysql inner 连接多表_MySQL数据库之多表查询inner join内连接
  11. JS实现文字转语音播放
  12. 2021图像检索综述
  13. python 中文分析句子成分_英语长难句看不懂,句子成分不会分析?一文轻松搞定...
  14. 使用尾注添加参考文献并删除尾注中的横线和空格
  15. 优麒麟 22.04 LTS 版本正式发布 | UKUI 3.1开启全新体验
  16. 崩坏3服务器维护2月8号,《崩坏3》2月8日更新内容 符华月轮正式上线
  17. 计算机常用的颜色英文缩写,计算机用语中常见英文缩写和词组J
  18. 鸡兔同笼python程序怎么写_【鸡】鸡的功效_鸡图片_食材百科_美食杰
  19. 实验........
  20. Matlab 去趋势处理

热门文章

  1. Dremel made simple with Parquet (Parquet 原理分析)
  2. 好消息:部分银行磁条卡更换芯片卡
  3. Android之高德地图SDK配置及简单使用详解
  4. 数据结构----二叉树已知先序和中序遍历序列求后序遍历
  5. 如何在以太坊网络上发布自己的代币
  6. 135编辑器怎么复制html,微信公众号怎么复制别人的图文排版(图文模板复制方法)...
  7. CST仿真指导 | 如何构建个性化的用户界面
  8. java项目日志打印总结
  9. 系统架构中常见问题及解决方案
  10. sox和lame音频处理器