屹立于技术之巅的 4 门语言创造者 — Anders Hejlsberg

视频版本推荐同步观看,喜欢请一键三连~

https://www.bilibili.com/vide...

有史以来,编程语言几千种,流行至今也不过数十;纵览软件业,语言开发者更是凤毛麟角;贵为一门语言之父,已被神一般地膜拜; 而在众神之中,他,跨越40年,在编程语言领域创造了 Turbo Pascal、Delphi、C#、和 TypeScript 四项成就;在微软象征着技术之巅的22位 Technical Fellow 中,他占有一席之地。他,就是 Anders Hejlsberg。

江湖侠客般的 Borland —— Turbo Pascal 与 Delphi

早期的 Anders 已被视为 IT 界的超级英雄。1960年出生于哥本哈根,从进入丹麦科技大学(DTU)电气工程专业学习开始到36岁,他就创造了 Turbo Pascal 和 Delphi 两个热门作品。而作为 Turbo Pascal 继承者的 Delphi,至今仍是排名前二十的编程语言。

从大一开始,Anders 就为基于 Z80 CPU 的单板计算机套件 Nascom-2 写蓝标 Pascal 编译器,用来取代 CPU 上的微软 Basic 语言。据说,这个 Pascal 编译器的开发,很大程度上受到了图灵奖获得者、瑞士计算机科学家 Niklaus Wirth 的《算法与数据结构》一书中 “ Tiny Pascal” 编译器的启发。

不久之后,Anders 又为微型计算机操作系统 CP/M 和 DOS 重写了 Pascal,并以 PolyPascal 这个品牌投放市场。 1983年,他又将 PolyPascal 特许给 Borland 公司,并被 Borland 集成进一个 IDE,重新命名为 Turbo Pascal。Turbo Pascal 使 Borland 声名鹊起,并奠定了 Borland 成为全球知名软件公司的基础。

从把 PolyPascal 特许给 Borland 、到1996年离开,在 Borland 的13年间,作为首席工程师、 和 Turbo Pascal 及 Delphi 的创始人,Anders 一共交付了7个 Turbo Pascal 版本,和3个 Delphi 版本。Anders 对于 Borland 的影响力,至今仍存在于上世纪90年代老程序员们的记忆中,他们时常会怀念那个时期意气风发江湖侠客般的 Borland,和充满灵气的开发工具。

Borland 的辉煌达至顶峰时,它也成为了微软在编程语言编译器和编程开发工具方面的竞争者。针对微软在 PC 机上的强势地位,90年代被称为三大计算机公司之一的 Borland, 也曾与 Sun 和莲花公司一起公开批评微软。

不过,和微软抗衡的 Borland,在1994年出现了经营亏损、要靠出售资产纾困,并有了大幅裁员的传闻。

新的征程 —— 加入微软

Borland 的日渐式微,给了微软招贤纳士的时机。从1995底开始,陆续有员工离开 Borland 加入微软,这当中就有 1996年10月加入微软的 Anders。

内外交困的 Borland,在1997年5月起诉了微软,声称在30个月的时间里、微软许以数百万美元的签约奖金和其它奖励,挖走了 Borland 34名关键员工。诉讼掀起强大的社会舆论,媒体纷纷以 “不公平竞争”、“人才流失”、和 “抢夺人才”等标题进行报道。社会上也绘声绘色地流传着微软挖角的各种剧情。

那么,微软为何甘冒外界的负评,务必要签下 Anders 这样的专家?Anders 的加入,为微软摆脱计算机巨头 Sun 的钳制又发挥了什么作用呢?

上世纪90年代中,Sun 开发了划时代的编程语言 Java。因具有 “write once run anywhere” 的能力,Java 变得十分流行。当时已经占据了 90% 市场的网景浏览器,决定与 Sun 合作,直接在浏览器中运行 Java 小程序,甚至考虑直接将 Java 作为脚本语言嵌入网页。

作为浏览器的竞争者,微软也不能落后。于是,微软获得了 Sun 对 Java 的授权,宣布在 IE3 中也运行 Java 小程序。为了支持在 Windows 上运行 Java,微软需要经验丰富的开发者和专家,而 Borland 正是人才的大本营。

程序员们的宠儿 —— C

加入微软的 Anders,首先主持开发了 Visual J++,对微软的第一个跨平台应用开发框架 .NET 的开发也发挥了重要的影响力。不过,当1997年10月,Sun 以 IE4 违反了 Java 授权条款为由起诉微软后,正是 Anders ,帮助微软摆脱了 Sun 的限制。当年参与挖角,时任微软服务器部门副总裁、后来担任 Snowflake CEO 的 Bob Moglia 后来回忆说,“在世界上,只有极小部分人有开发语言和开发环境的能力。在这方面,Anders 就是金字塔尖的人。他用创造了 Turbo Pascal 和 Delphi 的才华,又创造了 C#。

至于 Anders 为何离开 Borland 加入微软?流传的故事都与物质无关。在 Borland 期间,Anders 已经从 Turbo Pascal 和 Delphi 的销售中取得了可观的许可权收入。在几次采访中,Anders 也都表示,加入微软,是因为,我需要在13年后去尝试不同的东西。

1998年底开始开发的 C# ,正是微软力图摆脱 Sun 控制的新举措。在 C# 1.0 发布后不几天,Java 创始人、时任 Sun 公司副总裁的 James Gosling 就表示,“这些天,虽然微软这个软件大鳄竭尽全力用与 Java 相似的语言去遏制 Java 的影响力,但是,我不会为微软失眠的。” 不过,Gosling 承认,他和公司的其他人,在刚听说 C# 这个新语言时,还是感到了恐慌。

作为 C# 的总架构师,Anders 领导了 C# 的开发。C# 是基于 .NET框架、面向对象的高级编程语言。在继承 C 和 C++ 强大功能的同时,C# 去掉了一些它们的复杂特性,使其成为 C 语言家族中的一种高效强大的编程语言。C# 以 .NET 框架类库作为基础,拥有类似 Visual Basic 的快速开发能力。

因为具有多功能性和易于阅读的语法,C# 受到了数百万人的青睐,成为 Web 和移动应用程序、游戏开发、业务应用程序等领域的首选。发布二十年后,作为广泛使用的编程语言之一,C# 始终位居十大最流行语言之列。 2021年底,语言排行榜权威发布机构 Tiobe 公司 CEO 表示,由于 C# 这个曾经的宠儿在2021年再获新的追捧,C# 最有可能当选本年“年度语言”。

C# 的流行,很大程度上也在于它倾向于快速接受新特性。在编程语言演进的各个版本中,Anders 以自己的经验和技术,为 C# 添加了许多开发体验友好的 killer features,例如,在3.0 中发布的语言集成查询 LINQ;在 4.0 中发布的可选参数; 在6.0 中发布的只读自动属性、表达式体函数、 Null 条件运算符;和在 8.0 中发布的 Switch 表达式、 Null 合并赋值等。正如现任 C# Lead Designer、 Mads Torgersen 所说,正是这种具有前瞻性的设计,让 C# 在 20 年的时间里积累了如此庞大的用户群。

C# 建立的基础和前瞻性,也使微软打造了 Blazor 这个前沿项目。经过了3年时间的开发,2020年5月19日在年度技术大会 Build 上,微软正式发布了 “Build client web apps with C#” 的 Blazor。通过 WebAssembly 技术,借助 Blazor,现在可以不用 JavaScript ,而使用 C# 构建交互式 Web UI。使 C# 成为了既可在服务器上执行,也可在浏览器中执行的语言。

2001年,由于在 Turbo Pascal, Delphi, C# 和微软 .NET 框架开发上的贡献,Anders 获得了著名的 Dr. Dobb 杰出编程奖。

2007年,Anders 和他的团队获得了微软技术表彰奖。同年,他成为了微软22位超级大脑、最顶端技术头衔 Technical Fellow 之一。

52 岁披挂再上阵 —— Typescript

在 C# 1.0 发布10年后的2012年,Anders 已经52岁。此时的技术界,对他仍充满关注和期待。ZDNet 连发了两篇文章,《微软 C# 之父的下一个大招会是什么?》、 《C# 之父能将我们从 Javascript 的束缚中解救出来吗?》,文章中揣测的大招,就是即将于2012年10月首次发布的 TypeScript 0.8 版本。

再次披挂上阵的 Anders,这次又将给开发者和微软带来什么影响呢?

2010年底,Anders 开始开发 TypeScript 。当时,Web 世界正在发生一系列完美风暴:从 Windows 主导的清一色的桌面端,到多种多样硬件和操作系统的出现,使跨平台成为一种必要;与此同时,Google 的 V8 引擎,使 Javascript 获得了10倍以上的改进。而随着 HTML5 即将就位,在浏览器里写应用程序,不仅必要,更成为可能。

不过,就在开发者们准备大显身手时,却受到 JavaScript 一些缺陷的限制。由于 JavaScript 没有类,没有模块,特别是没有类型系统,这限制了大型应用的开发。因为浏览器只支持 JavaScript, 而 JavaScript 又没有替代品,因此,如何解决这个问题,成了当时的难题。

在 TypeScript 出现之前,微软打算用一款名为 Script# 的工具来解决这一问题。当问到 Anders 时,他提出了不同的意见。他认为,不能通过使用另一种语言来体验 JavaScript 的最佳实践。而是应该基于 JavaScript 来解决它自身的缺陷。解决的关键,既要向 JavaScript 添加类型系统,又不能影响它所特有的灵活、简单、和动态的特性。

TypeScript 是为开发大型应用而设计的,并且 TypeScript 可转译成 JavaScript。由于 TypeScript 是 JavaScript 的超集,任何现有的 JavaScript 程序都是合法的TypeScript 程序。经过两年的内部开发,微软于2012年10月首次发布了 TypeScript 0.8 版本。

如今,TypeScript 已成为构建浏览器中大型应用十分常用的编程语言。发布至今,也越来越受到开发者的喜爱。在2021年 Stack Overflow 的调查中,TypeScript 位居第三。且仍处于上升期。
TypeScript 的成功,也可从另一角度得以印证。在 TypeScript 开发的同期,Facebook 也提出了 Flow 这个解决方案。不过,时至今日,二者的走势已是大相径庭。TypeScript 在 GitHub 上的 star 已逐年上升至6万多,而 Flow 仍徘徊在2万;此外,过去一年的日下载量也是天差地别。Flow 基本每天在几十万的水平,而 TypeScript 都在2000-3000万之间。

解决 JavaScript 大型应用开发的难题还不是 TypeScript 的终极使命,是它,帮助微软克服了对开源的恐惧。

笃信开源 —— 撬动 Javascript 社区

众所周知,如今的微软已是开源最大玩家。然而,微软对开源的恐惧也有着众所周知的历史。当 TypeScript 开始开发时,时任微软 CEO 的 Steve Ballmer ,曾在 2001 年称开源的操作系统 Linux 为“恶性肿瘤”,因为 Linux 附着在与知识产权有关的一切事物上。虽然十五年后,Ballmer 宣布热爱开源、且微软加入 Linux 基金会,但在TypeScript 开始开发时,微软高层对开源仍心存恐惧。

Anders 笃信开源,并有独到的开源信仰和哲学,这也是 TypeScript 从开发的第 0 天就以开源示人的道理。Anders 认为,把代码放在一个公开的地方供人复制、间中处理一些 Issues ,只是技术性开源,并没有体现“开放式开发”这个开源的精髓。开放式开发,意味着你要把开发的全过程公开化。

同时,开放式开发对 TypeScript 也是十分必要的。Anders 说,最初构建的 TypeScript 只是一个想法、一些原型,非常需要获得 JavaScript 社区的反馈,从而提升 JavaScript 的实践。而吸引 JavaScript 社区的唯一方法就是开源。

2014 年,TypeScript 又将代码迁移到了 GitHub 上,实现了彻底的“开放式开发”。对于 TypeScript 团队来说,GitHub 就是他们的工作场所。在那里,他们和用户之间近在咫尺,用户能即时看到团队写的代码,他们之间没有信息失真,与用户的交流也更加快速。

不过,当初 Anders 提出 TypeScript 的开源动议时,微软高层并不是十分情愿的,Andrers 和团队做了大量的说服工作。同时,随着 Azure 进入微软的产业链,2012年后微软也软化了对待开源的态度。因此,TypeScript 帮助微软内部克服了对开源的恐惧,推动了微软的开源文化,已成为业内的共识。

不久前采访了 Anders 的技术媒体 TheNewStack,以老牌唱片公司 Motown 来比喻今日的微软。如果说,鼎盛时期的摩城唱片有 Stevie, Smokey, Marvin 和 Michael Jackson这些傳奇歌手,那么,在 CEO Nadella 治下走向复兴的微软背后,也有一位大热作品创作大师 ,他的名字就是 Anders Hejlsberg。

Anders 令人敬仰,不仅在于在四十年的时间跨度里,在同一主题上持续突破;也因为,虽已年届六十,仍沉醉于研发第一线,这给无数人带来温度、激励和启发。在今天知识和产品快速迭代的业态之下,从业者是否应该驻足思考,时间沉淀出的经验和见解,如同历史长河中的许多经验和智慧一样,必将跨越年龄的界限,带来价值。

2019年,四位年龄介于55至60岁的语言大师聚首于 CS4All 的筹款活动上。他们创造的语言至今仍高居榜首,他们本人仍然是活跃的意见代表和实践者。作为他们的同龄人,检视自己如今的高脑力学习活动,不禁高山仰止、内心油然而生敬佩之情。

你可能感兴趣的:(屹立于技术之巅的 4 门语言创造者 — Anders Hejlsberg)