Scala系列了不起的Martin-Odersky

7次阅读

共计 1977 个字符,预计需要花费 5 分钟才能阅读完成。

本文同步自微信公众号: 浮世 Talk(ID:fausai_talk)

了不起的人总能做出了不起的事,例如 Scala 之父 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 开发环境?

正文完
 0