我的回忆和有趣的故事 - 跨平台软件自由谈 - 胡元志

(这条文章已经被阅读了 70 次) 时间:2002-01-16 02:50:30 来源:胡元志 (逢一笑) 转载

       
        李维(台湾)

声明以下的这篇文章内容是我个人的回忆以及看法,没有任何特别的偏见,许多的事情是根据我的记忆以
及从许多人的诉说中得知的,也许内容不是百分之百的正确,不过我想这些内容有一定的可信度到是可以保证
的。当然有一些事情确定的发生时间和顺序不一定都和我的记忆一致,不过我想大部份应该是相去不远的。当
然各位如果知道确定的事件而我的记忆有误,那么我将非常欢迎您纠正我,我希望这些故事的经历能够一直陪
我走下去,谢谢。

一直想写一篇我个人在过去10多年来工作中经历的一些事情,以及看着一些我认为是伟大的工程师在这些
日子中对于资讯界的贡献。如果你和我的年龄差不多,那么你可能会对于这些内容很有兴趣,因为它们说明了
当时许多软体的兴起和没落的过程以及原因。虽然这些事情已经距离我们很遥远了,但是我相信许多人仍然对
于背后的故事有兴趣。如果你没有经历过那段美好的回忆,那么就把这些内容当成是一个有趣的故事来看吧。
但是我想更重要的是让我们一起认识一些伟大的人物,我对于其中的许多人都非常的佩服,也非常的羡慕。

我常常在想,如果我也有他们的环境,我是不是也能够和他们一样这么有成就呢?这些人对于以往都有重
要的贡献,在未来也将仍然有重要的影响,因为他们都有一身不凡的技术。对于许多重要的人我都尽量的收集
了他们的照片,让各位也能够看看这些优秀的工程师和杰出的人物。当然,如果各位也能够从这些内容中学习
到失败的原因以及成功的经验,那么这篇文章就更有价值了。

和Borland 的缘由

记得我在大学时第一个在PC上使用的软体便是SideKick,至今我仍然无法忘记这个让我津津乐道的软体,
而Borland在当时也就是以SideKick成为全球知名的软体公司。不过Borland 第一个奠立创业基业的软体却是
我大二使用来交作业的Turbo Pascal. 而Turbo Pascal也是第一个我听到关于Borland 的有趣的故事。

当年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的人也
立刻知道这将是一个革命性的软体,因此马上希望Philip能够在Byte杂志刊登Turbo Pascal的广告,并且愿意
以半价刊登。当然,Philip也立刻的答应了,于是一个革命性的软体Turbo Pascal终于在Byte杂志刊登出来了,
售价49.99 美元的Turbo Pascal立刻为Borland带来了大量的财富,Turbo Pascal也立刻的成为PC上除了基本的
Basic 之外最畅销的开发工具,也正式揭开了Borland 影响PC开发工具10几年的序幕。

在Turbo Pascal之后, Borland 接着推出了SideKick这套软体,SideKick可以说是随后着名的记忆体常驻
软体(TSR )的始祖,也是让Borland 跨出开发工具界,让几乎所有PC使用者认识Borlan d的关键软体。当然
SideKick也很快的成为了全球的畅销软体,继续的把Borland 往顶尖的软体公司上推。

而Turbo Pascal也成了我大二,大三撰写作业的最爱,几乎所有的作业都是使用Turbo Pascal 完成的,
当然其时Horowise的Data Structure这门课也是使用Turbo Pascal过关的,因此从那个时候开始我便非常喜欢
Borland 这家公司,慢慢的也开始对Borland 有了特别的感情。

大二时Microsoft 也推出了Microsoft Pascal,但是它和Turbo Pascal的确是有一段差距,我使用了一次
之后便把它丢到垃圾桶。稍后 Borland 也推出了 TurboBasic ,我记得这个编译器非常的棒,编译速度就和
Turbo Pascal一样,是一个非常有前途的产品。但是我不知道为什么它只有1.0 ,之后便和Microsoft Pascal
一样消失了。我听说Microsoft 和 Borland 互相交换条件,Microsoft 不进入Pascal的市场,而Borland则退
出Basic 的市场。至于是不是真的我就不得而知了。

在大二初次的接触到C 语言,第一本阅读的书便是王兴隆先生写的C 语言,也从此开始和C 语言结下了渊
源。平生第一个使用的C 编译器便是Lattice C ,不知道还有没有人记得。我还记得那个时候使用2 个5又1/4
磁片抽换以便编译 C 程式的情景。稍后 Borland 终于推出了风行天下的 Turbo C 编译器,当然,从此之后
Turbo C 便成了不离身的工具,而Borland 也藉由Turbo C 这第三项畅销产品迈向了世界前10名的项尖软体公
司。

当完2 年的兵之后,我在中研院首次使用了C++ 语言,第一个使用的C++ 编译器则是 Zortech C/C++,这
家公司稍后被Symantec收购成为Symantec C/C++的核心,这个故事稍后再说。后来 Borland 也推出了 Turbo
C/C++ 1.0 这第一个C/C++编译器,但是在我和Zortech C/C++ 比较之后,还是觉得 Zortech C/C++ 比较好,
因此就继续使用Zortech C/C++。一直到Borland 的Turbo C/C++ 2.0 编译器推出之后,才逐渐成为 C/C++ 语
言的王者,而我也像以往一样把Zortech C/C++ 换成了Turbo C/C++。

在1991年到Georgia Institute Of Technology 念硕士时,终于使用自己的零用钱美金49.99 购买了生平
第一套的正版软体Turbo C/C++ 4.5 ,随后又购买了Borland Pascal. 在毕业前的一个Quarter ,Microsoft
推出了Microsoft C/C++ 6.0 以及MFC 1.0 ,由于是第一个C/C++ 的Framework ,因此也花了一些钱购买了一
套以便了解MFC。但是在收到之后却很失望,因为 Microsoft C/C++ 6.0 仍然没有图形整合发展环境,还是在
DOS 下的整合发展环境,而且MFC 1.0 以我的眼光来看又不好用,而且Microsoft C/C++ 6.0 的C/C++ 最佳化
编译器在其时是一个笑话,不但产生的程式码效率不好,甚至会产生错误的程式码,许多杂志也称Microsoft
C/C++ 6.0 是一个平庸的(Mediocre)产品。因此就把它丢在一边。在Microsoft C/C++ 6.0 不久之后,Bor-
land 终于推了Borland C/C++ 3.0.而这套软体也开启了Borland 雄霸C/C++ 编译器常达5 ,6 年之久的序幕。

Borland C/C++ 3.0 推出之后由于拥有第一个在Window下的稳定的图形整合发展环境,而且它产生的最佳
化程式码也是 Microsoft C/C++ 6.0 望尘莫及的,因此很快的几乎所有的 C/C++ 程式师转而使用 Borland
C/C++ 3.0.因此在那个时候有一个现象,那就是几乎所有的公用程式或是Shareware都是使用Borland C/C++开
发的,许多硬体厂商的驱动程式也是使用Borland C/C++ 3.0 来撰写的。

1992年我取得Georgia Institute Of Technology 的硕士学位之后最想进入的公司便是Borland 和Micro-
soft,不过最后我还是决定回台湾工作。在此时Borland也进入了最巅峰的时期,因为Borland 推出了Borland
C/C++ 3.1。

Borland 在 Borland C/C++ 3.0 获得空前的胜利之后,并没有松懈下来,因为 Borland 知道Borland
C/C++ 3.0还缺了一个最重要的胜利因子,那就是如同Microsoft 的 MFC 一样的 C/C++ 的 Framework ,因为
Borland 也看出了Framework 将会是未来 C/C++ 产品中最重要的一环科技。不过 Borland 此时面临了一个重
要的十字路口,那就是到底要自己开发一个和 MFC 抗衡的 Framework,还是要如何做。 因为如果要自己开发
Framework,那么势必要花上一些时间,但是 Borland想趁 Borland C/C++ 3.0 如虹的气势再下一城,以便彻
底击溃Microsoft C/C++。 因此最后 Borland 决定向一家叫 White Water 的公司购买一套由这家公司开发的
一个 Framework,这套 Framework 便是后来鼎鼎大名的 OWL 的源流。而 Borland 也因为向 White Water 购
买了这套Framework,因而也引进了一个日后非常重要的人物,那就是后来负责开发Delphi的一员大将 – Zack
Urlocker。

在Borland 购买下White Water 的C++ Framework 之后,便更命为OWL(Object Window Library),并
且很快的推出了以OWL 1.0 为核心的Borland C/C++ 3.1。由于OWL比当时的MFC 1.0 封装的更为完整和好用,
再加入Resource Workshop 视觉化能力,以及Borland C/C++ 3.1 自己最强劲的编译器和整合发展环境,因
此立刻的风靡了全世界,其受欢迎的程度更是远远的超过了它的前一版本Borland C/C++ 3.0。

由于Borland C/C++ 3.1 的畅销,立刻让Borland 在C/C++ 市场一举击溃了 Microsoft C/C++ ,市场占
有率超过了50% ,是全球第一的C/C++ 产品,也把Borland推上了最高峰,成为全世界第三大的软体公司。

很快的,我所工作的开发小组也立刻的以 Borland C/C++ 3.1 来开发系统,Borland C/C++ 3.1 也是我
使用过Borland 最稳定的C/C++ 版本之一。也由于那个时候一天到晚都使用C/C++工作,因此就有了一些小心
得。稍后我整理了一些东西便投稿到刚出刊不久的RUN !PC,也许是运气不错,RUN !PC 很快的也登出了我
的文章。就是这篇文章登出之后,台湾的Borland 注意到了我,开始和我连络,并且从此展开了和Borland 的
互动。而Borland C/C++ 3.1 也是第一套Borland 免费送我的软体,当然代价就是希望我多写一些Borland产
品的文章。

接着Borland 又计划推出 Windows 版的 Borland Pascal,不过在 Borland 开发Borland Pascal For Win-
dows时,当时(现在也还是)最具盛名的Charles Petzold (我的第一本Windows 程式设计的书就是这位仁兄
写的,相信许多人也是看他的书一路学来的)就说除了 C/C++ 之外,Borland不可能做出能够在 Windows下执
行的Borland Pascal,不过很明显的,即使是 Windows API 的大师 Charles 也错了。Borland 不但做出来了,
而且Borland Pascal For Windows 还非常的畅销,当然Borland Pascal For Windows也是后来Delphi的根基。

当时的Borland 可说是不可一世,不但产品大卖,而且日进斗金。Borland在 Scotts Valley 豪华的总部
也是在那个时候由 Philippe Kahn 大手笔的花了一亿多美金搭建的 (想想10年前的60多亿台币可以盖什么样
的房子?)。不过也许是 Borland 太成功了,因此也开始让 Philippe Kahn 渐渐的养成了好大喜功,目中无
人的态度,也种下了Borland 开始走向衰退的因子。

来自:yankk ,时间:01-6-18 2 :47:00, ID :570808不过在 Borland 最强盛的时期,当然也就是
Microsoft 最想痛宰Borland 的时候,在这个时候发生了一个着名的事件和一个着名的虚拟人物。话说由于当
时Microsoft 的开发工具一直打不过Borland 的产品,因此在Microsoft 的开发工具刊物上便出现了一个作者
不断的以文章嘲笑Borland ,这个作者的笔名是 Buck Forland。 后来由于这位作者的文章内容以及他的笔名
引起了当时Borland的不满以及大量Borland使用者的强烈抗议,因此稍后这位作者就突然的消失不见了。因此
有许多人就推测这个作者应该是 Microsoft 的工程师,由于一直无法打败Borland 的产品,脑羞成怒,因此才
会以这个笔名来发泄。 如果各位看倌到现在还摸不着头为什么这个笔名会引起轩然大波,那么请你试着把Buck
Foland 这两个英文字的第一个字母一对调就知道为什么了。现在各位是否会心一笑了?

在Borland C/C++ 3.1 大获成功之后,Borland 却开始松懈了下去,并且开始走下坡。当然这有许多的原
因,我所知其中最重要的原因有数项:

■Philippe Kahn 和当时Borland C/C++ 的产品经理闹翻了。这位 BorlandC/C++ 的产品经理的名字是Eu-
gene Wang ,他是一位非常聪明的中国人。他一手把Borland C/C++ 带到了世界第一的地位,并且在Borland
C/C++ 3.1 成功之后有了更伟大的想法,那就是 Eugene Wang想在下一个Borland C/C++ 版本中完整的以OWL封
装所有的 Windows API ,因为OWL 1。0 虽然比MFC 1。0 来得优秀,但是OWL 的隐忧就是OWL 尚未完整的封装
所有Windows 的API。此外Eugene还计划以OWL 为核心,开发一个类似今日Borland C/C++ Builder 的以视觉化
元件为开发方式的开发工具。请各位想一想,如果在当时Borland 能够开发出这种 C/C++ 开发工具,那么将会
是一个多么可怕的产品,稍后Microsoft 的 Visual C/C++ 1.0 只是能够在整合发展环境中自动产生 MFC 的程
式码就立刻的轰动了 C/C++ 市场,造成了大量程式师转入 Microsoft 的阵营。即使是目前的 Borland C/C++
Builder使用的Framework 仍然是以Object Pascal 以核心的元件Framework ,而不是纯粹的C/C++ 程式码。如
果当时 Eugene Wang能够做出他心中的下一版Borland C/C++,那么我想到现在Borland C/C++ 可能还是市场中
第一的 C/C++ 开发工具。不过很不幸的是,Eugene Wang 稍后和 Philippe Kahn 发生了争执,Eugene Wang一
气之下离开了Borland。而 Philippe Kahn 则认为 Borland C/C++ 的地位已不可动摇,因此也没有想立刻的做
下一版的Borland C/C++。这样一拖竟然浪费将近2 年的时间。

Microsoft Visual C/C++ 1。0在Borland C/C++ 3.1 2 年之后推出,并且立刻获得市场好评。不但在编译
器方面能够和Borland C/C++ 3.1 相抗衡,在整合发展环境方面更大幅领先了Borland C/C++ 3.1,还能够自动
产生MFC 的程式码,再也不是昔日的吴下阿蒙。直到此时 Philippe Kahn 才从梦中惊醒而急于开发下一代的
Borland C/C++ 4.0 ,但是为时已晚,C/C++ 的开发工具市场从此就开始逐渐的被Microsoft 蚕食了。

Eugene Wang 在离开 Borland 之后,立刻的被 Symantec 所网罗,稍后Eugene Wang也在非常短的时间
之内为Symantec开发出了着名的Symantec C/C++。 Symantec C/C++ 在当时被所有的技术刊物评比为拥有最
棒的整合发展环境和最有创意的C/C++ 开发工具,从此可见Eugene Wang 的功力。不过 Symantec C/C++ 稍
后也不敌 Microsoft Visual C/C++,这个故事的原因在稍后四大C/C++ 编译器之争的段落中再详细的说明。

我最后听说 Eugene Wang 跑去做生意了,并且在前几年写了一本教导科技人员如何面试的书籍。我,一
直很痛心Borland 失去了这么一位优秀的人材,我常想如果当初 Eugene Wang 没有离开Borland ,那么历史就
可能不是现在的这样了,Sign!!!

■Philippe Kahn 大手笔的花了一亿多美金买下了 Ashton-Tate 公司和dBase。在当时许多人都批评Phi-
lippe Kahn 做了不值得的事情,因为 Ashton-Tate 不值这么多钱。但是由于当时 Borland 多的是钱,因此
Philippe Kahn也不多意。不过这并不是Borland 走向逐渐走向衰败的主因,而是在 Borland 买下了dBase 之
后,并没有立刻积极的发展dBase For Windows ,反而把dBase 丢在一旁。这个原因便是当时Borland 的另外
一个和资料库有关的产品Paradox 卖得也很好,因此Philippe Kahn 并不急着打算开发 dBase For Windows。
不过Philippe Kahn 忘记了一件事情,那就是当时在市场大量人口的dBase 程式师需要一个好的 Window 版
dBase ,但是Philippe Kahn 购买了dBase 却不提供Windows 版的解决方案。

因此当稍后Microsoft 以极小的代价买下Fox 这家公司,并且在数年之后推出 FoxPro For Window,吸引
了大量原先的dBase 程式师以及Paradox 的程式师之后,Philippe Kahn 才警觉事情不对而充充忙忙的开发
dBase For Windows。但是当dBase For Windows 推出之后,Microsoft 早已推出了两个FoxPro For Windows的
版本,而占据了大部份的市场,dBase For Windows 其势已不可为了。

■Microsoft 开始向Borland 挖角。由于Microsoft 在许多的开发工具战役中一直被 Borland 打得灰头土
脸。更何况Borland C/C++ 3.1 几乎抢占了大部份的市场,因此Microsoft 开始准备好好的对付Borland。但是
由于其时Borland 在编译器的技术领域领先了Microsoft 数年之久,Microsoft无法在短时间之内赶上Borland,
因此 Microsoft 决定使用最有效的方法立刻追上 Borland 技术,那就是直接挖角。因此稍后Microsoft 的
Visual C/C++小组有60 %的成员是从Borland挖来的,这个举动不但立刻的让Borland 流失了大量的优秀技术人
才,也在数年之后造成了Borland 控告 Microsoft 的导火线。不知道各位看到这里有什么感觉,或是没有感觉。
不过我总是觉得 Microsoft使用了不好的手段来竞争,并不是光明正大的击败Borland,而是使用了不公平的竞
争手段。

Philippe Kahn 在这段时间不但让 Borland C/C++ 被 Microsoft Visual C/C++ 反败为胜,也痛失了几
乎所有dBase 的市场,更浪费了大量的金钱,和流失了大量的优秀人员。在这些重要的原因之下, Borland
已经不可避免的开始走下坡了。

我最后一次看到Philippe Kahn 时是在1994年未于亚特兰大(Atlanta )参加国际Conference时,还和他
打了一声招呼。后来Philippe Kahn 离开了Borland,另外创立了StarFish这家公司,稍后StarFish也被Moto-
rola并购。虽然Borland由于Philippe Kahn 一些错误的决策而逐渐的从巅峰开始下降,但是Philippe Kahn也
不愧为一个人物。因为Philippe Kahn 能够和Bill Gates一直周旋数年之久,而同一时期的许多公司,例如
Lotus 都一一的被 Microsoft所击败,因此 Philippe Kahn 还有一套的。此外 Philippe Kahn 也是唯一一个
拥有工程师特性的 Borland CEO ,Philippe Kahn 仍然重视技术产品和技术人员。但是Borland 随后的CEO几
乎都是Marketing ,Finance 或是Sales出身的人,这真让我怀念以往以产品和技术为优先的CEO 了。

看完了上面这段今人伤心的历史之后,再让我们看看当Borland 在受到Microsoft Visual C/C++的强大冲
击之后,如果思索反击之道。在这段期间也出现了令我敬佩的第一个Borland 技术工程师,Carl Quinn。

Carl Quinn在Microsoft Visual C/C++ 1。0推出之后,立刻奉命开发一个能够和MFC 相抗衡的全新OWL,
而CarlQuinn也是数年后JBuilder的JBCL Framework的灵魂开发人物。Carl Quinn 不但负责开发OWL ,也为
Borland 在元件Framework 的技术领域立下了重要的贡献。由于 Carl Quinn 的投入,因此开启了 OWL 大战
MFC,Borland C/C++缠斗Visual C/C++数年精彩好戏的序幕。

Carl Quinn 到现在我还记得和敬佩的人物,让我再一次的向他致敬,并且介绍他让大家认识。

Carl Quinn —- 我第一个佩服的Borland 工程师