返回介绍

聊一聊那些神一样的程序员们(下)

发布于 2025-01-22 00:38:49 字数 5257 浏览 0 评论 0 收藏 0

这一篇主要聊一聊安德斯·海尔斯伯格(Anders Hejlsberg ),他没有获得过图灵奖, 在名气上比不上前面几位,但也是另外一个传奇。

其实安德斯还真的和图灵奖有那么一点点联系,故事需要从 Pascal 这门曾经大红大紫的语言说起。

凡是学过一点计算机知识的人大概都知道 程序=数据机构+算法 这一著名公式,提出这一公式的就是 1984 年的图灵奖获得者尼克罗斯. 沃思(Niklaus Wirth)。沃思还提出了结构化程序设计概念,我们现在可能觉得是司空见惯了, 但是在 1971 年“自顶向下,逐步求精“的方法的确改变了人们对程序设计的思维方式, 在程序设计中引起了一场革命,成为程序开发的标准方法,尤其是在后来的软件工程中获得了广泛的应用。

当然我们这里提到沃思还是因为他是 Pascal 之父, 上个世纪 60 年代沃思在苏黎世工学院任教(注意:这是一个牛校,他的毕业生和教授中诞生了 21 个诺贝尔奖获得者,包括大名鼎鼎的爱因斯坦)期间发明了 Pascal , Pascal 语言奠定了结构化程序设计中常用的数据结构和控制结构,为程序员提供了极大的方便和灵活性,在 C 诞生以前,是最受欢迎的语言。

有趣的是沃思发明 Pascal 最初只是想用来教学,并没有想到商业应用,他的一个学生 Phillipe Kahn 从苏黎世工学院毕业以后,在美国加州创建了一个后来大红大紫的公司: Borland ,Borland 创立之初,便注意到了 Anders Hejlsberg 编写的一个 Pascal 编译器,很快雇佣了他,把编译器买了过来,更名为 Turbo Pascal 。

从此安德斯登上了软件开发的历史舞台。

Anders 出生于丹麦, 作为北欧的一个小国,像丹麦,荷兰,芬兰,瑞典一样,虽然国土面积很小,人口很少,却在近现代的历史上展示了非凡的创造力, 有时间专门写一篇文章:聊聊北欧的小国

Anders 大学也没有毕业,基本上是自学成才, 可以这么说,他对编译器和开发语言的理解全世界没几个人能超越(李维语),他开发的 Turbo Pascal 在 1983 年一经推出,就以闪电般的编译速度震惊了世界,在全世界狂卖出了 100 多万个 Copy,不要小看 100 多万这个数字,80 年代初微机刚刚开始起 步,1982 年 IBM 才公布 IBM 兼容机的标准,当时的 程序员非常少,100 多万个 Copy 几乎占据了绝大部分市场。

由于每个 Copy 定价 49.95 美金,Philipe Kahn 和 Anders 都变成了百万富翁。

也许是我大学编译原理学的不好, 觉得实现编译器是一件非常难的事情,所以对能写编译器的人总是心怀敬意。

安德斯竟然用汇编语言实现了编译器,并且能在一个极小的内存中以极快的速度执行, 考虑到上个世纪 80 年代初的硬件,真是非常了不起。

上一张图吧,怀旧一下 :-) 我没有学过 Pascal, 只是在大学里学过 C 语言,Turbo Pascal 和后来 Borland 开发的 Turbo C 在 UI 上极其相似,连菜单项的次序 File, Edit,Search ,Run... 都一样, 看

着这张 DOS 下的 IDE,真是感慨啊。

历史的车轮滚滚向前,在 IT 界无论你曾经多么成功,如果不改变的话很快就会被抛在后面,Turbo Pascal 也不例外。

随着面向对象和 Window 编程的兴起,Turbo Pascal 也到了改变的时刻。

做为 Lead Architect , 安德斯带领团队开始从 DOS 转向 Window 平台,并且在编译器中开始支持 Object Pascal :一种 Pascal 的扩展,实现了面向对象的特性。

但是仅仅在 Window 平台上实现面向对象的 Pascal 是远远不够的,想让开发人员迅速的开发应用程序,还必须有一个可视化的应用程序框架和类库,这就是 Borland 的 VCL .

终于在 1995 年,Borland 推出了 Window 平台上的大名鼎鼎的开发工具: Delphi .

“真正的程序员用 VC,聪明的程序员用 Delphi”,这句话是对 Delphi 最经典、最实在的描述 。在我看来 Delphi 之所以如此成功,成为 VB Killer , 主要有下面几个原因:

1. 编译速度超快, 生成的可执行文件效率很高 : 这当然是安德斯深厚功力的体现

2. VCL (Visual Componet Library) 非常成功, 设计紧凑,优雅,可扩展行很强,相对于复杂,难用的 MFC 不知道要高几个档次

3. 在数据库方面的特长非常突出,他的 BDE(Borland Database Engine) 可以和市面上的所有的数据库连接,对于 C/S 架构的应用程序开发来说是不二之选。

据说 Delphi 这个名称有个很有趣的来历, 当时市面上 Oracle 数据库最流行,Oracle 的意思是神谕,先知(还记得黑客帝国中的那个先知吗)?

Delphi 意思是神庙,圣殿, Borland 的工程师把产品叫做 Delphi,其实是想体现能和 Oracle 连接的想法: If you want to talk to Oracle, please go to Delphi.

很多中国程序员都有 Delphi 情结, 也出现了很多 Delphi 高手,比如写了《Delphi 源码分析》和《大道至简》的周爱民 ,还有现任微信的产品经理张小龙,他 1997 年用 Delphi 编写了著名的邮件客户端软件 Foxmail 。

1996 年,Anders Hejlsberg 在 Delphi3 发布前离开了 Borland, 这里有很多原因,包括管理层的变化, 修改 Pascal 编译器的争执, 更重要的是据 Borland 内部人讲,Anders 认为自己不再是“不可缺少的人”。 当然也和微软展开的大规模挖角行动有关,得知 Anders 在 Borland “不开心”以后 (这不仅让我想到 C 罗在 2013 赛季初走进皇马主 席办公室说 : 主 席先生, 我在这里很不开心" :-) ), Microsoft 直接派遣加长型的大轿车到 Borland 大门口接 Anders 吃饭,第一次 Microsoft 开出了年薪百万美元以上的条件,但是 Borland 也采用了加薪的手段。

Microsoft 并未因此灰心放弃,很快就再次用大轿车接 Anders。这次 Microsoft 提出了年薪两百万美元以上的条件, Borland 挽留 Anders 的条件是 Delphi 销售的提成, 但实际上 Anders 早已是百万富翁,更注重的是自由的发展空间,所以当 Microsoft 决定祭出最后的王牌,由 Bill Gates 亲自邀约 Anders 聚餐, 许诺 300 万年薪和股票,以及一个小组和充分的资源让他尽情发挥, Anders 没有办法拒绝了。 (本段选自李维的书籍《Borland 传奇》)

1996 年的微软正是如日中天,刚刚发布革命性的 Window 95 ,其轰动程度不亚于现在 Apple 发行 iPhone,微软当年对程序员的吸引力,就像如今的 Google,facebook 那样。

话题扯的远一点,微软财大气粗,在挖人上向来“不择手段” ,非常有气魄, 比如当年微软想大力发展 SQL Server , 准备把事务处理领域的大牛 Jim Gray(1998 年图灵奖获得者) 挖过来的时候,充分的体现了这一点。 Jim Gray 不喜欢西雅图阴雨连绵的天气, 只想呆在阳光充足的旧金山, Bill Gates 就说,那我们就在旧金山给他自己建立一个研究所吧,就这样 Jim 加入了微软。

Delphi 在 Anders 离开以后继续前行,但是整个 IT 业界开始发生翻天覆地的变化,互联网和 Java 开始兴起, 软件系统架构开始从 C/S 向 B/S 演进, 软件业的竞争开始从开发工具转向平台和中间件(J2EE, .Net, Weblogic, Websphere.....), 而 Borland 主业仍然是开发工具,虽然后来推出了 JBuilder, C#Builder 等风靡一时的产品,甚至收购 Together 完成了对建模,架构的支持,但总归是抵不过 IT 的潮流,慢慢的变成了一个二流公司, 再也无法和 Microsoft 等公司竞争。

上一张 Dephi 的截图 :

而 Anders 在微软如鱼得水,似乎踩准了 IT 发展的步点,再次登上了人生的又一个巅峰。

Anders 首先开发了 Visual J++ , 在微软的 Visual Studio 中, 相比 VC, VB, 这是一个不引人瞩目又非常短命的产品, 原因很简单: 微软想在 Java 上分一杯羹,但是做的太过分了, 被 Sun (可怜的 Sun 现在已经被 Oracle 收购了)告上了法庭。当然结局是微软打败了官司。

J++ 是一种语言,和 Java 的语法兼容, 但是以微软的野心,VJ++肯定不仅仅是新一个 IDE 的开发工具,就像 JBuilder,Eclipse 那样, 微软肯定要把它绑定在 Windows 平台上来获取最大的利益。于是微软就对 Java 进行了扩展,增加了 Delegate, Event, 还提供了一些直接调用 Windows API 的功能,这样 Java 在 Windows 上运行的效率肯定很高,但是就破坏了 Write once, run everywhere 的特性。

Sun 肯定不干了,一场官司下来,微软被迫停止了 VJ++的开发。

不过 VJ++ 展示了 Anders 的精湛的技术实力,于 1999 年获得微软 distinguished engineer 称号, 微软也认识到自己必须要抓住网络计算的浪潮,需要要有一个能够抗衡 Java 的计算平台,这就是后来的.Net.

.Net 虽然更多的是一个面向 Marketing 的一个概念(相信大部分人都说不清楚.Net 到底是什么),但是其技术支撑也让微软在和 Java 的斗争中扳回一局 ,微软也有了自己的虚拟机 :CLR (Common Language Runtime), 像 Java 那样,代码不再编译成可执行代码,而是翻译成中间语言,交由虚拟机执行。与 JVM 不同的是, CLR 支持 C#, VB, VC, J# 等多种语言。

作为核心人物和首席架构师, Anders 对.Net 作出了巨大的贡献, 尤其是 C#语言的设计和实现,让 C#成为在微软平台开发的第一选择。

最后,以 Anders 的近照和他的名言作为结尾:

“程序员是最好的职业”,Anders 说:“每两年,CPU 的速度要加倍,内存容量是原来的四倍,但是我们的大脑还是原来的大小,很显然,将需要更多的程序员来补充这些。”

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文