简介

安德斯·海尔斯伯格(Anders Hejlsberg,1960.12~),丹麦人,Turbo Pascal编译器的主要作者,Delphi和.NET之父!

安德斯·海尔斯伯格曾在丹麦技术大学学习工程,但没有毕业,大学时期他曾替 Nascom microcomputer撰写程式,他曾为Nascom-2电脑撰写蓝标签(Blue Label) Pascal compiler,到了DOS时代他又重新改写这套compiler,当时他在丹麦拥有个叫Poly Data的公司,他编写了Compass Pascal编译器核心,后来叫Poly Pascal!

    1996年Hejlsberg加入微软公司。据说,比尔·盖茨亲自参与了这次挖角行动,年薪三百万美金,并许诺安德斯·海尔斯伯格在微软将得到技术上的足够自由和资源支持[1]。据说该事件也是微软公司和Borland公司后续官司的导火索。

进入微软公司后,首先主持了Visual J++的开发工作,后来由于在Java开发工具授权问题上和Sun公司的纠纷,微软停止了Visual J++的后续开发。

    这之后,作为.Net概念的发起人之一,安德斯·海尔斯伯格被任命为微软.Net的首席架构师,主持.Net的开发工作。

生平

Anders Hejlsberg, 一个丹麦天才。他和idsoft的John Carmack都是自学成才的典范。他对语言和汇编的理解全世界没几个人能超越。

当年Philippe Kahn(Borland的创始人)和Anders Hejlsberg到美国创业时,便由Anders以汇编语言撰写了Turbo Pascal的编译器,而Philippe则包办了Turbo Pascal其他的部分。在这两位仁兄开发Turbo Pascal之后,穷得快连登广告的钱都没有了。Philippe为了在Byte杂志(还记得这个著名的杂志吗?)刊登Turbo Pascal的广告,和Anders商量了一个方法,那就是直接约Byte杂志的人到当时Borland的办公室讨论刊登广告的事情。

当Byte的人到了Borland之后,Philippe、Anders和公司的助理小姐故意忙着接电话,接受Turbo Pascal的订单,并且告诉Byte杂志的人等一下。过了一阵之后Philippe才进入房间向Byte的人道歉,说他们的Turbo Pascal受到市场的热烈欢迎,订单源源不断地到来,因此可能不需要在Byte杂志刊登广告了,接着Philippe向Byte的人展示Turbo Pascal这个产品。由于在当时的机器中Turbo Pascal能够在极少的RAM中常驻执行,又提供闪电般的编译速度,这立刻让Byte杂志的人当场震惊。凭着专业知识和丰富的经验,Byte的人立刻知道这将是一个革命性的软件,因此马上希望Philippe能够在Byte杂志刊登Turbo Pascal的广告,并且愿意以半价刊登。当然,Philippe也立刻爽快地答应了,于是一个革命性的软件Turbo Pascal终于在Byte杂志刊登出来了。

当时售价49.99美元的Turbo Pascal立刻为Borland带来了大量的财富,Turbo Pascal也马上成为PC上除了基本的Basic之外最畅销的开发工具,由此正式揭开了Borland影响PC开发工具近20年的历史的幕。 Turbo Pascal是由Anders Hejlsberg亲自开发的,并且和Philippe Kahn谈好的条件是Borland每卖出一套Turbo Pascal,Anders便从中抽取一份版权费。由于当时软件的价格不算便宜,能够写编译器的人更是少之又少,所以编译器工程师通常都能够获得优厚的报酬。因此当时Anders Hejlsberg在完成了Turbo Pascal、并且和PhilippeKahn谈好了合作条件之后,Anders理所当然地认为一套Turbo Pascal会定价数百元美金,因为这不但是当时一般编译器的价格,而且Turbo Pascal还内含了一个开发环 境和编辑器(Editor),这是当时许多工具没有提供的。

没有想到极具商业头脑的Philippe Kahn了解到:如果把Turbo Pascal定价在数百美金,那么Turbo Pascal可能只会卖出数百到数千套,无法冲出大量的销售额。因此,Philippe Kahn以极大的勇气,瞒着Anders Hejlsberg只把Turbo Pascal定价为49.95美金。这种价格在当时对于编译器和开发工具来说简直是不可思议的低价。当Anders Hejlsberg知道了Philippe Kahn的定价后,简直快气昏了。因为在这么低的价格下Anders的版税金一定少得可怜,因此当时Anders说他把最好的Pascal开发工具拿去让一个白痴销售。没有想到的是,Philippe Kahn的定价策略获得了极大的成功。Turbo Pascal以极佳的品质和令人不可思议的低价格成为当时最具吸引力的Pascal开发工具。当然,在Turbo Pascal卖出了让人难以置信的成绩之后,Anders便再也不提他把专业Pascal编译器让白痴去卖这件事了。

虽然Turbo Pascal快速地让Borland在当时全世界的程序员中成为最响亮的软件新星,但是真正让Borland打入一般计算机使用人群、快速成长为软件巨人的大功臣的,却是Borland早期最重要的产品--SideKick。

在Turbo Pascal之后,Borland接着推出了SideKick这套软件。SideKick可以说是随后著名的内存常驻软件(Terminate and Stay Resident-TSR)的始祖,也是Borland跨出开发工具领域、让几乎所有PC使用者认识Borland的关键软件。SideKick在当时以许多丰富的小工具和记事功能让它成为每一个程序员爱不释手的工具。当然SideKick也很快成为了畅销软件,在全球狂卖数10万套,继续把Borland往顶尖的软件公司推进。 所谓的TSE代表Terminate and Stay Resident。这个意思是说,这类软件在执行后会隐藏在内存的某个位置中,但是并没有出现在屏幕上。不过使用者通过一个快捷键就可以立刻调出这类软件让使用者使用,在使用完毕之后又可以按一个快捷键再度隐藏它。这样的软件运行方式在当时是一项全新的创举。

以我的眼光来看,SideKick这个软件对于Borland来说是非常关键的作品,因为我将SideKick归类成"消费型软件"产品。所谓消费型软件,是指可以被所有计算机使用者使用的软件,而不是只给程序员或是开发者使用的软件。凡是现今比较会赚钱或是规模比较大的软件公司大都属于开发"消费型软件"的公司。例如Microsoft除了有和Borland竞争得你死我活的开发工具之外,最重要的是Microsoft拥有两大"消费型软件":Windows操作系统和Office。这两类软件才是Microsoft最赚钱的产品。Oracle是另外一个很好的例子,数据库几乎是现在任何应用都需要使用的软件。同样,SideKick就属于这一类型的软件,因为SideKick可以被所有的开发者使用来增加生产力,而不管开发者使用的是什么语言。因此当Borland推出SideKick之后,立刻在全世界狂卖,也成为继Turbo Pascal之后Borland最赚钱的产品。我认为在后来的数年之中Borland走得比较辛苦,便是因为Borland再也没有推出像SideKick一样属于"消费型软件"的重量级产品,而只有属于程序员和开发者小众市场的产品,这是非常可惜的事情。而"消费型软件"也是到现在我仍然认为Borland应该推出的产品。

由于SideKick的TSR技术是当时独一无二的,而且是如此的好用,这引起了当时许多人的好奇,并且成了所有软件厂商模仿的对象,我还记得稍后许多的计算机信息书籍都以如何学习TSR技术作为卖点。也是因为SideKick和TSR太成功了,因此Borland立刻进行了两个工作。第一当然是马上开发下一版的SideKick,让SideKick继续执类似软件的牛耳,以防止其他软件公司推出类似的软件来分食SideKick打下的天下。 在Borland通过Turbo Pascal和SideKick大获成功之后,也因TSR技术成为大多数开发者津津乐道的软件公司,许多软件公司都开始模仿Borland的TSR技术开发大量的TSR软件。不过当TSR技术大量被运作之后。最后却造成众多的TSR软件彼此冲突,无法正确地相互共存,这主要是因为许多TSR软件都使用了相同的快捷键来调出/关闭软件,或是隐藏在相同的内存位置。我还记得,当时同时使用几个TSR软件时,必须遵照一定的运行次序才可以正常使用。

为了解决这个扰人的问题,Borland开始广邀软件公司,想要以Borland为首制定TSR的标准。如此一来,只要所有的软件厂商遵照Borland制定的标准,那么所有的TSR软件就可以彼此正确地运行在PC之中。当Borland公布了这个想法并且发表了初步的TSR标准规格之后,却立刻引起了Microsoft的紧张。因为当时TSR是如此的流行,Microsoft害怕TSR技术由Borland主导之后会让Borland成为PC软件的霸主,进而严重影响Microsoft想主宰PC的计划。

因此在Borland开始正式制定TSR标准之际,Microsoft便站出来反对Borland定义的TSR标准,并且声明Microsoft将在未来的DOS操作系统中加入对于TSR的支持,因此没有必要再额外制定TSR标准。当时的软件公司,包括Borland在内,都无法和Microsoft对抗。在操作系统厂商表明了反对立场之后,Borland的这个构想很快便迫于形势而放弃了。关于TSR的争议应该算是Borland和Microsoft之间的第一场战争。虽然在没有引起太大的烽火之前便很快收场,不过也算是Borland和Microsoft第一次真正的交手。也正是由于这次的相争,让Microsoft惊讶于Borland快速的兴起,并开始正视Borland这家在当时还算小的软件公司。 虽然在有关TSR的技术之争中Microsoft赢得了胜利,不过很奇怪的是,此后TSR软件反而开始慢慢地退烧。除了一些少数的公用程序软件仍然使用TSR之外,之后便没有什么重量级的软件是使用TSR技术开发的,这算不算是另一桩Microsoft介入之后搞砸的技术呢?

最后再叙述一个从Borland老员工处听来的有趣故事。许多人一直想要知道:Borland的总部在哪里?或是想要知道:为什么Borland会选择Scott Valley作为总部?事情的经过是这样的: 当年Philippe Kahn和Anders Hejlsberg到美国准备开始创业时,由于没有资金,Philippe Kahn就在西餐厅打工,负责端盘子的工作,而Anders Hejlsberg则努力的在开发Turbo Pascal。

当Philippe Kahn存了一笔小钱之后,两个人便开始了创业大计。首先他们必须找到一个公司的总部,可是要在哪里实现Philippe Kahn和Anders Hejlsberg心中的理想呢?虽然当时他们住在L.A.附近,但是光凭Philippe Kahn存的一点小钱是绝不够在L.A.大展宏图的,因此Philippe Kahn和Anders Hejlsberg决定到比较偏远的地方试试。于是这两位仁兄便开着Philippe Kahn的破车往南出发了。听说当Philippe Kahn把车开到Scott Valley附近时刚好没有汽油了,眼看四周的环境觉得还不错,就决定在这个地方展开Philippe Kahn和Anders Hejlsberg的创业之梦。就是这个决定让原本默默无闻的Scott Valley在数年之后竟成为一个家喻户晓的高科技盛地。 Anders在不介入Delphi的开发、并且无法主导Borland Java开发工具开发的情况下充满了挫折感。没有了Philippe Kahn的强力支援,Anders虽然是Borland最顶尖的技术人才,却也无法对抗Borland管理阶层的控制。当然这也与从Philippe Kahn离开之后、Borland开始转型有关。

Anders在Borland遇到了挫折,这对于Microsoft来说却是千载难逢的好机会,就在此时Microsoft展开了大规模的挖角行动,而且是明目张胆地进行,正是由于Microsoft如此大胆的行动,造成了不久之后Borland对于Microsoft的法律控诉。这次的挖角行动中,Microsoft同时锁定了数个Borland最杰出或是重要的人物,当然Anders是名列第一的对象。1996年,Microsoft终于展开了行动,使用的方式是最直 接的进攻。Microsoft直接派遣加长型的大轿车到Borland大门口接Anders吃饭,第一次Microsoft开出了年薪百万美元以上的条件。不过在Borland知道了这些情况之后,也很快采取了加薪的动作,因此Anders并没有立即对Microsoft作出回应。Microsoft并未因此灰心放弃,很快就再次用大轿车接Anders。这次Microsoft提出了年薪两百万美元以上的条件,希望Anders能够首肯。对于这次的喊价,Borland可有点为难了,因为两百万美元不是笔小数目,这已经比当时Borland许多副总裁的年薪还高。此外,如果 Borland答应也加到两百万以上,那么是不是Chuck也要如此加码?其他的Delphi R&D小组要如何调整?这些都是非常棘手的问题。

不过Borland很快找到了解决的方案,那就是允许Anders从每一套卖出的Delphi版本中抽取一定数量的版权费。如此一来Delphi卖得愈好,Anders便能取得愈多的回馈。不过据我了解,Anders注重的并不是金钱待遇,因为在Borland创立的初期,由于TurboPascal的编译器都是Anders撰写的,当时也是卖一套Turbo Pascal就可以抽取一份版税。依照Turbo/Borland Pascal全世界销售数百万套来算,Anders早就是富翁了。薪水多一点,少一点并不是他考虑的最主要因素,他心中想的是自由发展的空间。在Borland提出了Delphi的随版抽税,再加上Microsoft并不知道Anders真正想要的东西,因此Anders仍然没有响应Microsoft的第二次。不过,Anders实在是太重要的人物,而且Microsoft在面对Java与日俱增的威胁之 下,非常渴望能够有像Anders这样的人才带领开发下一代的开发工具,这当然也是由于Microsoft以前向Borland挖来的人都做出了不小的贡献所致。Microsoft食髓知味,当然希望能够得到Borland的镇山之宝。在Anders两次不为所动之后,Microsoft决定祭出最后的王牌,由Bill Gates亲自邀约Anders聚餐,进行最后的挖角冲刺。

不管读者喜不喜欢Bill Gates,不可否认的是Bill也是一个天才。自古英雄惜英雄,在Anders和Bill相谈甚欢的情形下,Microsoft又开出了年薪三百万以上、数万股的Microsoft股票这个超高的条件,以当时Microsoft高昂的股价来计算,真是一笔巨额财富,对于搞软件技术的人来说,这已经是不可企及的天文数字了。不过这些条件并不是打动Anders的主要原因,Bill最后还答应 给Anders一个小组的人力和充分的资源,供他尽情地发挥 。这个条件可说是正中Anders的下怀,因为他最渴望的正是有人能够支持他完成新的计划和想法。我想,在软件产业中大概也只有Microsoft能够拥有这种雄厚的资源可以用来挖角吧。

在Bill Gates提了这样的条件之后,Borland再也没有本钱能够和Microsoft相抗衡了,只好眼睁睁地看着Anders离开Borland前往Microsoft再开创下一个人生的高峰。在Anders到了Microsoft之后,Bill Gates果然重用Anders,立刻让Anders负责激活Microsoft的下一轮开发工具计划,当然这个计划也是Microsoft对抗SUN/Java的整体计划之一。Anders也立刻展现了实力,让Microsoft的编译器技术很快有了提高,最明显的例子就是Microsoft后期的Java Virtual Machine是PC上执行效率最高的,而且在两 三年后,VJ++编译出来的虚拟机械码的执行效率不但比任何的Java开发工具还快,在某些方面甚至比原生的Windows开发工具,例如Delphi、VB、甚至是VC++还有效率。这真是令人震撼,当然Anders为VJ ++打下的基础现在也展现在.NET的C#编译器以及.NET的JIT(Just In Time)编译器之上,.NET的JIT在许多程序代码最佳化方面比Delphi还先进。因此在两三年前当VJ++即将推出之际,在Borland内部也引起了非常大的骚动,并且严阵以待,当然这又是另外一个故事了。

对于Anders来说,到了Microsoft之后不久又再次登上了生涯的另一个巅峰。因为当初在Borland时,他还如孙子兵法中叙述的 藏于九地之下 ,虽然是不世的天才,但是仅为少数的人所知,即使是使用Borland产品的人在当时可能也不知道Anders这号人物。因为Anders和Borland的作风很像,都是行事低调,不显山露水。但是他被挖到Microsoft之后,由于Microsoft的企业文化向来是激越、张扬个性的,因此Anders也就转变为 动于九天之上,作为负责Microsoft开发工具大军的核心人物,不但广为人知 ,成为许多软件人员效法的对象,而且屡获大奖。他不但获得了信息软件业界的推崇,最后也终于获得了信息学术界的认可,可说是实至名归。

轶事

安德斯·海尔斯伯格(Anders Hejlsberg)曾在丹麦科技大学学习工程学。他第一次登上软件界历史舞台是在80年代早期,因为他为MS-DOS和CP/M设计了一个Pascal编译器。当时,还是一个小公司的Borland很快雇用了他,并买下了他的编译器,改称Turbo Pascal。在Borland,Hejlsberg继续开发Turbo Pascal,并最终带领他的小组设计了Turbo Pascal的替代品、开发工具史上的奇迹:Delphi。

1996年,Anders Hejlsberg在Delphi 3发布前离开Borland去了微软(Microsoft)。

在此之前,微软曾多次企图挖走Anders,但都没有成功。据信Anders去微软(主要)不是钱的问题,虽然微软的开价也相当有吸引力: 130万美元年薪外加股票期权和分红,总计超过300万美元。更主要的原因是Anders和Delphi开发组的其他成员在修改编译器的问题上发生了争执;还有,据Borland内部人讲,Anders认为自己不再是“不可缺少的人”。

Anders在Delphi 3中几乎没有做什么工作,Chuck Jazdzewski扮演了一个更重要的角色。(Anders Ohlsson) Anders在Borland时把所有精力都放在了Pascal产品上,也需要新的挑战,这时Bill Gates的亲自邀请,许诺给与挑战的机会,Anders加入了微软就势在必行。

微软用丰厚的薪水、股票认购权和巨额的加盟奖金雇请了 Hejlsberg 之后,Borland 曾提出通过不正当手段吸收新成员的控告。Borland 还曾声称 — 提供了很少的细节来支持指控 — Hejlsberg 正在开发“Delphi for Java”。这场诉讼虽然最终以 Borland 的胜利而收场;但Anders 已经在为微软工作了。

1996年Anders来到微软后,直接主抓Visual J++的研发工作,并在1999年被授予“distinguished engineer”(卓越工程师),在微软仅有16人获得这样的荣誉。

后来微软希望通过开发最新的软件开发语言来赢得软件开发者的拥戴,在微软公司把windows操作系统和软件向网络迁移的新市场战略中,C#语言是最重要的环节。微软动用了最好的资源。Anders担任了C#语言的首席设计师,同时也是微软.NET战略构架的重要参与决策者。考虑一下Anders的经历,就不会奇怪微软将此重任交给他了。毕竟C#也不是他对软件开发方式重大变革的首次。现在经过几年时间的埋头苦干,C#已成为微软反击Java的最有力武器。

borland

有关borland的更多信息,详见:borland传奇

.NET之父 - Anders Hejlsberg的更多相关文章

  1. 【历史】- .NET之父 - Anders Hejlsberg

    简介 安德斯·海尔斯伯格(Anders Hejlsberg,1960.12~),丹麦人,Turbo Pascal编译器的主要作者,Delphi和.NET之父! 安德斯·海尔斯伯格曾在丹麦技术大学学习工 ...

  2. C#之父 Anders Hejlsberg

             Anders Hejlsberg (born December 1960)[2] is a prominent Danish software engineer who co-des ...

  3. Anders Hejlsberg 和 Erich Gamma

    Anders Hejlsberg 和 Erich Gamma 大概半年前,我写了一篇名叫<有点软文>的文章,深情并茂地告诉大家,我司其实隐藏着很多牛人巨擘.有些人是身怀屠龙技,但是大家不认 ...

  4. Anders Hejlsberg 技术理想架构开发传奇

    Anders Hejlsberg(安德斯-海森博格) 坐在自己的办公室,双眼直直的盯着前方.他要做一个决定,决定自己未来的命运和理想.这是1996年一个普通的下午,几个小时前,他刚与比尔-盖茨结束了 ...

  5. 编程语言的发展趋势by Anders Hejlsberg

    这是Anders Hejlsberg在比利时TechDays 2010所做的开场演讲. 编程语言的发展非常缓慢,期间也当然出现了一些东西,例如面向对象等等,你可能会想,那么我么这么多年的努力都到哪里去 ...

  6. 引领开发工具近40年的程序员Anders Hejlsberg

    有位神级程序员在近40年中一直创造引领潮流的开发工具(Turbo Pascal/Delphi/C#/TypeScript),他就是Anders Hejlsberg. 一. Anders并没有大学文凭, ...

  7. 《IT老外在中国》第11期:首次访华的编程巨匠、C#之父Anders

    见到Anders的时候,他正专注的倾听国内开发者的提问,一副远视眼镜斜歪着架在头顶,宽松的深蓝色休闲毛衫随意套在白色圆领T恤外. 如果不是他那专注的神情,以及现场见证开发者对他的狂热崇拜,很难想象这位 ...

  8. Delphi/C#之父首次访华:55岁了 每天都写代码

    Delphi.C#之父Anders Hejlsberg 近日首次访华,并在10月24日和27日参加了两场见面会,分享了他目前领导开发的TypeScript项目,并与国内前端开发者近距离交流.本文就为读 ...

  9. 如何用TypeScript开发微信小程序

    微信小程序来了!这个号称干掉传统app的玩意儿虽然目前处于内测阶段,不过目前在应用号的官方文档里已经放出了没有内测号也能使用的模拟器了. 工具和文档可以参考官方文档:https://mp.weixin ...

随机推荐

  1. 201521123017 《Java程序设计》第9周学习总结

    1. 本周学习总结 2. 书面作业 Q1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什么异常.需要捕获吗(为什么)?应如何避免? 1.3 什么样的 ...

  2. 201521123034《Java程序设计》第十四周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...

  3. 201521123068 《java程序设计》 第13周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1.网络基础 1.1 比较ping www.baidu.com与ping cec.jmu. ...

  4. lintcode.177 把排序数组转换为高度最小的二叉搜索树

    把排序数组转换为高度最小的二叉搜索树    描述 笔记 数据 评测 给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树. 注意事项 There may exist multiple val ...

  5. 纳税服务系统【自动受理,Quartz任务调度】

    需求 回到我们的需求: 自动投诉受理:在每个月月底最后一天对本月之前的投诉进行自动处理:将投诉信息的状态改为 已失效.在后台管理中不能对该类型投诉进行回复. 这个需求需求我们要怎么弄呢????要在每个 ...

  6. Python shelve模块的使用方法

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = '人生入戏' import shelve,time #写 x = shelve. ...

  7. Apache Spark 2.2.0 中文文档 - Spark 编程指南 | ApacheCN

    Spark 编程指南 概述 Spark 依赖 初始化 Spark 使用 Shell 弹性分布式数据集 (RDDs) 并行集合 外部 Datasets(数据集) RDD 操作 基础 传递 Functio ...

  8. SpringMVC HelloWorld实例开发及部署

    SpringMVC HelloWorld实例开发及部署 2017-01-24 目录 1 Tomcat及Eclipse Tomcat插件安装配置  1.1 Tomcat的安装  1.2 Eclipse ...

  9. hadoop源码import到eclipse工程

    1.解压hadoop-1.1.2.tar.gz,重点在src文件夹 2.在eclipse中通过菜单栏创建一个java工程,工程名随便 3.在创建的工程上,点击右键,在弹出菜单中选择最后一项,在弹出窗口 ...

  10. Excel开发之旅(二)----数据的读写

    1.要实现数据的读写,首先,我们需要添加引用: using Excel=Microsoft.Office.Interop.Excel; 直接在项目中添加即可. 2.给3个按钮添加响应事件,工程代码截图 ...