1、世界上第一个可编程的机器是由法国人Joseph Marie Jacquard于1801年发明的雅卡尔织布机,使用打孔卡片进行编程,控制织布机织出不同图案的布
2、英国诗人拜伦的女儿、数学家Ada Lovelace描述了一个计算伯努利数的算法和程序,被认为是最早的计算机程序,并被尊为第一位程序员。但是,1815年才出生的她,不可能比上一则说的Jacquard更早地进行编程工作。后来美国国防部组织开展研发的Ada语言以这位女数学家的名字命名。
3、我们一般认为1957年发明的Fortran是世界上第一门高级编程语言,而实际上早在1942至1945年,发明了世界上第一台图灵完全的通用数字计算机Z3的德国工程师Konrad Zuse还研发了一种叫作Plankalkül的语言。可惜的是,Z3在1944年柏林轰炸中被炸毁,Plankalkül在战争结束前既没有正式发表,也没有被实现。这门语言的设计一直到了1972年才被正式发表出来,而1998年第一个该语言的编译器才首次被实现。这门语言对后世的编程语言设计几乎没有任何影响,但是它却考虑了包括赋值语句、子程序、条件判断、循环、浮点小数计算、数组、拥有层次结构的结构体、断言、异常处理、结果导向执行(注:书上写作目标搜寻,英文似乎是goal-directed execution)等后来许多语言都不具有的功能,这些设计在当时以及之后的很长一段时间内都是非常具有先进性的。
4、著名计算机科学家、图灵奖得主John McCarthy于1958年发明了LISP语言,但是LISP这种迥异于其他语言的表达方法S-expression并不是他原本的设计,John McCarthy原本设计了一种叫作M-expression的表达方法,而S-expression则是一种中间语言。令他万万没有想到的是,最后流行开的是那个中间语言S-expression。另外LISP具备垃圾回收、异常处理等后来高级语言的许多特性,也是一门很先进的语言,不过这些已有许多文章进行描述,这里就不多说了。
M: (A B C)
S: (QUOTE (A B C))
M: car[x]
S: (CAR X)
M: car[append[(A B C); (D E F)]]
S: (CAR (APPEND (QUOTE (A B C)) (QUOTE (D E F))))
5、Guido van Rossum喜欢看喜剧团体Monty Python,所以发明了一个编程语言叫作Python。同样的,Python自带的那个IDE,IDLE名字来源于该团体的成员Eric Idle。此外,用来表示垃圾邮件的单词spam也是出自Monty Python这部作品,而这个单词在剧中指的是Spam品牌的午餐肉。
6、编程语言Perl的名字来源于珍珠Pearl,发明者Larry希望给语言起一个简短而有积极含义的名称。受到这个影响,松本行弘在发明Ruby的时候也从珠宝中选择名字,并且选择了Ruby。松本还提到,Ruby还跟诞生石(birthstone)有关,可是生于4月的松本行弘为什么选择了七月份出生的同事的诞生石红宝石呢,一定是好基友啊。
7、JavaScript的命名还真跟Java有关,所以他们不是雷锋和雷峰塔的关系,更像是印度和印度尼西亚的关系。Netscape希望这是一个Java的客户端版本,一种轻型的脚本语言,并且不像Java和C++那样针对专业的开发人员。
8、Lua的意思是月亮女神,是由三个巴西人Roberto Ierusalimschy、Waldemar Celes、Luiz Henrique de Figueiredo发明。发明的原因是巴西石油公司(当然,是一个国企)PETROBRAS没办法使用指定的硬件,使用公众的资金需要通过一系列的严格手续,并且现有设备中什么平台什么系统都有,所以Lua被设计成一个基于ANSI C开发可以任意跨平台的语言。
9、Smalltalk现在已经很难见到,但是他影响了我们今天还在使用的许许多多语言,以及后来的所有面向对象编程语言的开发者。
10、现在iOS开发者所使用的、在现在大红大紫的Objective-C,是一个和C++同岁的语言,都是早期对C语言进行拓展的面向对象编程的开拓者。不过iOS上使用的Objective-C 2.0,跟Objective-C的作者Brad Cox没有一点关系,“除了我喜欢Apple的产品以外,我同他们没有什么关系”。