⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c++圣战篇.txt

📁 c++圣战 作者 台湾李维 介绍了c++语言的发展和编译工具的竞争历史
💻 TXT
📖 第 1 页 / 共 4 页
字号:
我的回忆和有趣的故事 --- C/C++圣战篇
        
        李维 


(声明以下的这篇文章内容是我个人的回忆以及看法,没有任何特别的偏见,许多的事情是
根据我的记忆以及从许多人的诉说中得知的,也许内容不是百分之百的正确,不过我想这些
内容有一定的可信度到是可以保证的。)。 

一直想写一篇我个人在过去10多年来工作中经历的一些事情,以及看着一些我认为是伟大
的工程师在这些日子中对于资讯界的贡献。

和Borland 的缘由 

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

当年Philippe Kahn (Borland 的创使人)和Anders Hejlsberg到美国创业时,便由
Anders以组合语言撰写了Turbo Pascal的编译器,而Philippe则包办了Turbo Pascal
其他的部份。在这两位人兄开发完TurboPascal之后,穷得快连登广告的钱都没有了。但
是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 编译器便是Lattice C ,不知道还有没有人记得。
我还记得那个时候使用2 个5又1/4磁片抽换以便编译 C 程式的情景。稍后 Borland 终
于推出了风行天下的 Turbo C 编译器,当然,从此之后Turbo C 便成了不离身的工具,而
Borland 也藉由Turbo C 这第三项畅销产品迈向了世界前10名的项尖软体公司。 

当完2 年的兵之后,我在中研院首次使用了C++ 语言,第一个使用的C++ 编译器则是 ortech 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 不久之后,Borland 终于推了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 Windows时,当时(现在也还是)最具盛名的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
开始走向衰退的因子。

不过在 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++ 的产
品经理的名字是Eugene 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。在当时许
多人都批评Philippe 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 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -