编程语言发展史

1942年,阿塔纳索夫-贝瑞计算机(ABC)被设计出来,尽管它不可编程,只能用来求解线性方程,但这并不妨碍ABC成为人类历史上第一台电子计算机。

 

【程序员上下50年】编程语言发展史

 

1946年,大家所熟知的第一台通用计算机埃尼阿克(ENIAC)问世。这个31吨重的大胖子永远也不会想到自己的后代将和698克划上等号。

 

【程序员上下50年】编程语言发展史
富士通最新款的“LIFEBOOK UH系列”笔记本仅有698克

 

随着计算机的诞生,程序员也随之诞生。只不过,在最开始的时候,电脑需要手动操作,程序员还是个体力工作者。

虽然人类有“能坐着就不站着,能躺着就不坐着”的优良传统。但怎么跟计算机讲话这件事儿还真是个技术活儿。

 

【程序员上下50年】编程语言发展史

 

最先出生的编程语言是机器语言

 

它非常简单。有多简单呢?简单到只用“1”和“0”两个数字就可以进行编程。

 

【程序员上下50年】编程语言发展史

 

它也非常让人恼火。有多恼火呢?就像把盐粒和味精混合到一起,让你挑出来混进去的一粒白砂糖。

 

【程序员上下50年】编程语言发展史

 

尽管机器语言难学难懂、不可移植、编程繁杂,但速度极快。人类通过机器语言跟计算机对话,跟外国人用极其标准的中文和中国人讲话差不多。

 

【程序员上下50年】编程语言发展史

 

对人类而言。0.00001秒和0.00000000001秒并没有什么差别。所以,哪怕你机器语言跑得再快,也不能获得人类芳心。

 

【程序员上下50年】编程语言发展史

 

于是,汇编语言诞生了。

 

【程序员上下50年】编程语言发展史

 

汇编语言用助记符代替了机器语言中的操作码,用地址符号或标号代替了指令或操作数地址。

大概就相当于,这帮学中文的外国人开始学拼音了。

 

【程序员上下50年】编程语言发展史

 

不过,汇编语言所做的事情只是将机器语言做了简单的编译。所以,移植和推广依然很困难,读懂代码的设计意图也存在不小的障碍。

 

但对人类而言,助记符显然比一大串的数字要简单得多。对计算机而言,有专门的程序帮它们把这些莫名其妙的字符翻译成它们每天打交道的“01”,速度上并不会受到什么限制。

 

【程序员上下50年】编程语言发展史

 

所以直到现在,汇编语言仍能占有一席之地。

 

只是,这一席被挤得越来越没有空间,也越来越没有尊严。

【程序员上下50年】编程语言发展史

 

终于在1956年,集万千宠爱于一身、引无数程序员竞头秃的高级编程语言诞生了。

 

【程序员上下50年】编程语言发展史

 

FORTRAN,这个出生就注定了将围绕着无数锃光瓦亮头顶的荣光的语言,居然是被一个并不怎么喜欢编程的约翰·巴克斯(John Warner Backus)发明出来的。

 

FORTRAN这个高级编程语言家族中长子,经过了几代更迭,依然在数值计算、科学和工程技术领域占据着强大的优势地位。老归老,但是要记住,你大爷永远都是你大爷。

 

【程序员上下50年】编程语言发展史

 

当然,编程语言这东西倒也不是说越有资历就越受青睐。根据TOIBE 2019年10月发布的程序语言排行榜来看。

 

【程序员上下50年】编程语言发展史

 

95年的Java70年的C语言依然稳稳占据着前二的宝座,91年的Python如今势头正猛,坐上了第三的位置。

 

【程序员上下50年】编程语言发展史

 

排名前十的语言中:70后C语言一枝独秀;80后有3种语言上榜,表现最好的是83年被正式命名的C++,位列第四;90后则有4种语言上榜; 00后只有两种语言上榜。

 

我们有理由相信,未来将会有更丰富、更方便、更人性化的编程语言出现。也许某天,可以把人类语言直接翻译成机器语言也说不定……

 

【程序员上下50年】编程语言发展史

 

本期内容到这里就结束啦。