编程语言简史

一个朋友在跟我一块吃午饭的时候问了我一个问题:现代编程语言的发展历程是什么样的,它是如何发展到现在这样的?他觉得我应该能答得上来,但其实我只能说个大概。

我跟他提了下机器语言,以及人们为了简化它所做的努力,并逐渐发明了一些更抽象的语言,它们最终会被翻译成0和1。

但是——一个偶然的机会我看到了Crockford关于Javascript的一个分享,开篇的时候他讲的正是编程语言的发展史——尽管这主要是关于JavaScript以及影响到它的那些语言——这比我讲的可要生动多了。

穿孔卡

一些都得从穿孔卡开始说起——就是一张张打满了小洞的纸片(下面有图有真相)。

发明

美国宪法中要求,每10年就得进行一次人口普查。到了19世纪末期,人口增长的实在是太频繁了,以至于1880的人口普查历时8年才最终完成,当时还都是通过纸和笔来完成的。

1890年,Herman Hollerith被授命去解决这一问题,他最终使用了穿孔卡来存储数据,并用一台制表机(tabulating machine)来进行统计和排序。

数据是根据硬纸片上打孔的位置来进行编码的,排列的方式是我们现在所熟识的行列式,并可以通过机器来进行处理。

这次人口普查只花了一年时间便完成了。

IBM

1896年,Hollerith成立了制表机器公司,开始了自己的事业。他把自己的设备和卡片出售给大的保险公司,以及包括英国,意大利,德国,俄罗斯,澳大利亚,加拿大,法国,挪威,波多黎各,菲律宾等国在内的多国政府(参见)。

他的公司后来跟别的公司进行了合并,并在1924年最终成为了国际商业机器公司。没错,它就是IBM。

现代用途

穿孔卡被认为是将数据录入到机器的最便捷的一种方式。

IBM后来仍然在使用这套系统——它叫做单位记录管理(Unit Record Management)——并一直用到了70年代,当然了,这比Hollerith最初的设计要先进得多。

Hollerith的穿孔卡流传甚广。它很快便被改进成了更简单的行列组。

80个字符的限制

确切来说是12行,80列。你可能看到过有80个字符这个限制,是的,这是因为一张卡片最大的字符数就是80个。

没错,这已经被淘汰了好几十年了,不过80个字符的这个限制仍然延用到了现在。

这个卡片可以用来做许多事情。比如说,顾客不会直接收到帐单而是收到了一些卡片,他们将卡片仔细地打上孔后再和要付的款项一同返还给商家。公司收到这些后会再进行处理并确认这次交易。

记账机是可编程的,,它应该可以算作是世界上第一台现代的计算机。

大型机/分时时代

大型机是政府与企业用来运行关键任务的大型计算机。

在PC机发明以前(50年代到70年代),人们能使用的计算机就只有大型机。

大型机非常昂贵且体型巨大,只有大型的企业以及一些大学才有。几乎每台机器都是独一无二的,跟别的大型机完全不同。一套完整的系统由多个单元组成,占的地方有一整间屋子那么大。

大型机将程序和数据存储在内存中。你得使用最原始的指令来编写程序。

还是穿孔卡

我为什么一开始就讲到穿孔卡是有我的原因的:-)

你得将指令在一堆卡片上进行穿孔才能运行你的程序。作为程序员,你是没有自己的计算机的,你得将程序写在这些穿孔卡上(或者是纸上,当然得有人把它们转换成穿孔卡),然后把这些卡片交给一个操作员,他会负责把它们录入到大学或者公司的机器里。过几个小时你就可以回来了,操作员会把结果打印出来给你,当然了,也会把你的卡片还给你。

如果你漏掉了一个分号的话,你得先修复这个问题,然后等第二天再来。

幸运的是当这些都还是常态的时候我还没出生,不过我也明白了当一个程序员是得有多苦逼。

分时系统

由于计算机的时间非常宝贵,这段时期分时系统是最常见的操作计算机的方式。

这意味着不同的人可以通过一个终端来接入到同一台大型机上去使用它的资源。你可以使用打字机进行编程,完成之后再把你的程序提交上来。

打字机非常慢,一秒只能打印10个字符。这意味着你对程序的输出得计算得非常精确。

只有当你提交了自己的作业时计算机才会执行你的程序,其它时间你都处于离线状态(未连接到大型机上)。

分时技术在60年代就已经出现了,直到70年代末期这仍是当时主流的编程方式。

ASCII

说到字符集,当时只支持非常有限的一些字符——不支持重音字母(accented letter),因此只适合使用英语。

为什么错误又被称为BUG?

1889年,托马斯.爱迪生连续两天晚上都在折腾他的留声机,因为它突然就没法用了,还会发出蟋蟀或者臭虫(BUG)的声音。于是便有了关于这个疯狂的发明家的一个笑话,就是说如果他能把自己发明里的臭虫清理掉的话,就可以变得很有钱,这也是第一次有记载的使用BUG来命名缺陷的记录。

第二次世界大战中,Grace Hopper发现一台计算器无法工作了,后来发现是因为一个继电器里面有只飞蛾,她把这事给记录了下来,”这是第一个发现的真正的BUG”。

创新之源(mother of all demos)

1968年,Doug Engelbart展示了如下几样东西:

这些想法并没有让他变得富有也没有立马流行起来。不过它们为Xerox PARC所做的研究奠定了基础,于是诞生了第一个GUI系统,随后它便被Apple Lisa,Macintosh,微软所采用并逐渐流行了起来。

迷你/微型计算机

继大型机之后,微机开始登上了舞台。

最终微型计算机成为了主流。微机就是非常小型的终端也称为个人计算机(PC,尽管当时几乎还没人在用)。

我认为,。

微软上帝从不埋怨人们的愚昧,人们却埋怨上帝的不公

编程语言简史

相关文章:

你感兴趣的文章:

标签云: