1.2 在历史中学习
理解语言设计者的意图
设想你在阅读关于编程语言某种功能的介绍时,脑子里总有一种不够透彻的感觉。这时,你想知道为什么需要这种功能。
编程语言也是人创造出来的。知道了语言设计者为解决何种问题而创造了这种语言,以及这种语言经历过怎么样的历史变迁后,慢慢地就能理解为什么需要有这种功能了。
应该学哪种语言,我们无从所知
了解了语言的历史,我们往往更能加深所学。“想学编程,但该学哪种语言呢?”这个问题没有意义。可能有很多人会给出一些建议,比如,学好某某主流语言就可以高枕无忧了;今后这个领域会有大的发展,趁现在赶紧把某某语言学了吧。但是,未来的事情谁也说不准。
我们来看一下某种语言的介绍吧。为了便于说明,我们隐去部分语句,并添加一些补充注释来帮助读者理解。
(要理解某些语言)我们需要具备相当专业的知识,因此使用起来难免感到力不从心。与此不同的是,作为一种工具,X 这种语言能帮助业务负责人和管理者在短时间内获得所需信息,逐渐受到重视。最近两三年间,在终端用户所在部门普及 X 语言的企业,从美国迅速扩散到其他各国。在(X 语言普及较早的)美国某公司 Y 中,过去几年内,X 语言用户的年增长率超过 50%,约 25 000 名以上员工在日常业务中以不同方式使用 X 语言,占公司总员工数的 16%。(中略)在提高企业生产效率方面,X 语言被视为一种越来越有效的手段。
从这段文字描述可知,X 语言真是一门相当不错的编程语言。如果现在就有人劝你学习这门语言,你会动心吗?
这篇文章其实是 1978 年刊登在日本信息处理协会杂志上的一篇相当老的文章 3。X 语言其实就是 IBM(前述的 Y 公司)在 1964 年发布的 APL 语言。如今,它的使用需求骤减,退出了主流语言的舞台 4。被称为 C 语言圣经的 The C Programming Language 5 一书问世的时间就是 1978 年。现今,C 语言的使用已经变得十分广泛。
3“APL”,《信息处理》,竹下亨,Vol.19 No.1, 1978 年
4在招聘网站 Dice.com 上检索一下,APL 语言的没落程度便可见一斑。2013 年招聘要求中,提到 APL 的信息仅有 5 条。提到 Java 语言的有 16295 条,提到 Python 语言的有 3502 条。由此可见,使用 APL 语言的人已经很少了。
5中文版为《C 程序设计语言(第 2 版 · 新版)》,机械工业出版社于 2004 年 1 月出 版,徐宝文译。
学习适用于各种语言的知识
现在还有很多被不同人以不同理由推荐学习的编程语言。然而,在 5 年后、10 年后,单个语言的知识是否依然有用?没人能说清楚。通过比较不同的语言、了解语言的发展历史及其变化原因,培养对不同语言都适用的理解能力,是非常重要的。
