【IT168资讯】近日,Scala语言的创始人Martin Odersky接受了Artima的一系列访谈。Martin Odersky在2001年开始创立Scala语言,最初的动机是因为对Java的一些特性感到不满,想要创建一个比Java更高级的语言。他基本达到了这个目的:Scala成为了Java的首选替代之一。如果你对Scala语言还不太了解,可以参考Scala编程语言简介。
访谈共分三个系列,本文是第一个系列。在这部分节选的内容中,Martin Odersky详细的描述了他创建Scala的前因后果:他是如何创建这个基于JVM和Java类库的、不同于Java的语言的。

Scala创始人Martin Odersky
因编译器而着迷
Artima:让我们从头开始。您是如何开始介入编程语言的?
Martin Odersky:我最喜爱的科目一直都是编译器和编程语言。1980年,当我在读大学的时候,第一次接触编译器,我就马上想自己建立一个编译器。那时候我唯一可以买得起的电脑是Sinclair ZX 80,它只有1KB的RAM 。幸运的是,不久后我有了一个性能更强大的机器Osborne-1,它是世界上第一款“便携式”(笔记本)电脑,看上去就像一个倾斜90度的缝纫机。它有一个5英寸的显示屏,每行显示52个字符。但它有一个56KB可用的RAM以及两个90K的软盘驱动器。
在那些日子里,我花了一些时间与我大学里的另一名学生Peter Sollich一起研究。我们一起了解了一种新语言Modula-2,我们发现它非常棒,而且设计良好。因此,我们计划编写一个适用于8位Z80计算机的Modula-2编译器。但是出现了一个小问题,Osborne附带的唯一语言是Microsoft Basic,这完全不适合我们的想法,因为它甚至不支持带参数的程序,只能使用全局变量。而当时的其他编译器对于我们来说又都太昂贵了。因此,我们决定采用经典的bootstrapping(引导)技术。Peter使用Z80汇编语言为一个小小的Pascal子集编写了第一个编译器。然后,我们不断改进这个编译器,使它能够逐渐编译稍微大量的语言。经过几代版本后的改进,直到我们可以编译所有的Modula-2语言。它可以产生解释后的字节码以及Z80二进制码。该字节码是当时所有系统中最简洁的,其二进制版本是当时8位机上最快的。我们的这个编译器在当时看来是能力相当不错的系统。
我在我们即将要完成我们的编译器之前,Borland带着其Turbo Pascal横空出世,同时正在考虑入主Modula-2市场。事实上,Borland决定购买我们的Modula-2编译器,并将以Turbo Modula-2的名字出售,适用于CP/M芯片,并想要开发其IBM PC版本,我们提议为他们编写IBM PC版本,但他们告诉我们,他们对于这个版本的开发已经做好了安排。但不幸的是,这个版本的开发周期远远超出了他们的计划。3、4年后,其编码实现小组从公司中独立出来,并推出了TopSpeed Modula-2。在没有IBM PC版本时,Borland继Turbo-Modula-2之后就再也没有任何市场竞争力了。
当我们完成Modula-2编译器时,Borland提议要雇用Peter和我。于是Peter去加入了他们的行列。我曾经也想这样做,但有个问题是,我仍然还有一年的课程没有读完,而且还要计划读硕士。当时我很受诱惑,甚至想过退学。但最后,我决定坚持读完大学。之后,在做硕士项目期间(有关增量分析的课题),我发现我更喜欢做研究。于是最终我放弃了加入Borland编写编译器的想法,而是继续在苏黎世ETH攻读Niklaus Wirth的博士,Niklaus Wirth是Pascal和Modula-2的发明者。