Scala系列|了不起的Martin Odersky

分享 未结
2 2 1 10
gavin 2019-06-26发布
收藏 点赞
文章来源于微信公众号:浮世Talk(ID:fausai_talk)

了不起的人总能做出了不起的事,例如Scala之父Martin Odersky。

Martin Odersky

1980年,正在慕尼黑大学读本科的Martin第一次接触到编译器便为之痴迷,随即买了一台在当时称得上性能强悍的“便携式“电脑Osborne-1,在随后的日子里,Martin与一位大学好友Peter Sollich终日在一起研究如何为编程语言编写编译器。

他们了解到一门新的编程语言Modula-2,发现该编程语言设计精良,于是便萌生出编写一个适用于8位Z80计算机的Modula-2编译器的想法。带着这个想法,Martin与好友Peter经过不懈努力,在Peter用汇编语言编写的第一个编译器上进行了几个版本的改良后,终于设计出性能相当不错的Modula-2编译器。

当时,成立于1983年的软件开发公司Borland看上了Modula-2市场,并且购买了Martin与好友研发的Modula-2编译器,Peter也随即加入了Borland公司。由于Martin还有一年的学业没完成,并且还计划着继续读研深造,所以推迟了加入Borland公司的时间。

在苏黎世联邦理工学院读研期间,Martin似乎找到了他人生为之奋斗的方向,他发现自己更喜欢研究类型的工作,于是放弃了加入了Borland的念头,继续留在苏黎世攻读博士学位,而他的导师就是那位凭借着“算法+数据结构=程序”公式而获得图灵奖的Pascal之父,颇负盛名的计算机科学家Niklaus Wirth。

在苏黎世读博期间,Martin一直致力于函数式程序设计领域的研究。后来成为德国卡尔斯鲁厄大学的一名教授,与好友Phil Wadler一起进行编程理论方面的研究。1995年的某一天,Martin从Phil的朋友口中得知在大西洋彼岸的加州,有一门叫Java的新语言正在Alpha版本阶段。在了解了Java的字节码技术、跨平台运行特点、垃圾回收机制等优势之后,Martin与Phil马上意识到这个Java很可能会颠覆自己的研究,于是,他们开始了新的计划。

Martin与Phil提取了函数式编程的一些特点,如:泛型、高阶函数以及模式匹配,将它们与Java结合。经过努力,他们设计出了一门新的编程语言,命名为Pizza,并于1996年公开发布。事实表明,Pizza是非常成功的,它使得JVM平台与函数式编程语言结合变成现实。

Martin的研究引起了Sun公司核心开发团队人员的关注,很快他们就与Martin取得了联系,并一道合作编写了泛型Java(Generic Java ,简称GJ )。而期间Martin还独立为GJ编写了编译器,Sun公司在对比Java原有的编译器与GJ编译器性能后,决定将GJ编译器作为标准的Javac编译器。2004年,SUN公司发布Java 5,代号为Tiger。这个版本在Java的发展历程中具有里程碑意义 ,而其中最为瞩目的功能就是泛型,这是后话。

在经历了Pizza和GJ设计的Martin对如何让编程语言变得更好,自然是有更多自己的想法,不过现实却时常令他十分沮丧,因为Java具有很强的约束性,使得有某些东西不能往他认为的正确的方向发展,他不得不开始考虑是否有必要从零开始,设计出一个比Java更好的编程语言。

大概2000年前后,正在瑞士洛桑联邦理工大学担任教授的Martin有了一个契机,他拥有一个独立研究的环境,可以组建一个小型研究团队。于是,他带领这个团队基于JVM和Java的类库,设计出一门学术范十足的编程语言Funnel 。不过这门语言看上去十分优雅,却没什么实际可用性。但是经过团队的努力将Funnel与GJ的优势融合之后,他们惊讶的看到距离创造出比Java更加高级的语言已经不远了。

是的,一门崭新的多范式编程语言已呼之欲出,它就是后来人们熟知的Scala。

在2002年的第一场雪前后,Scala拥有了自己的名字。Martin带领团队开始着手Scala的设计,并于2003年正式发布,在2006年经过一次大规模重新设计,此后Scala便开始了稳定高速的发展,到2019年6月已经发布了V2.13。

虽然Scala在各种榜单的排名上不如Java,但是凭借着其纯粹的面向对象特点以及函数式编程的优势,使得它不仅具备了和Java一样的面向对象组织大型工程项目的能力,而且又能在大数据计算领域大放异彩。

Scala依靠着它强大的功能与简洁优雅的语法正在征服着广大的开发者,在开源项目方面有彪炳史册、震铄中外的Spark、Kafka、akka等,更有Twitter 、Linkedin等公司在极力推广,相信Scala的未来将更加激动人心。

了不起的Martin Odersky创造了了不起的Scala!

- THE END -

扩展练习:

如何搭建Scala开发环境?


回帖