[旧闻]我的回忆和有趣的故事-C/C++圣战篇

zhangxxdd 2002-11-19 11:26:30
我的回忆和有趣的故事-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其它的部份。在这两位人兄开发完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 Pasca
l立刻为Borland带来了大量的财富,Turbo Pascal也立刻的成为PC上除了基本的Basic之外最畅销的开发工具,也正式揭开了Borland影响PC开发工具10几年的序幕。

在Turbo Pascal之后,Borland接着推出了SideKick这套软件,SideKick可以说是随后著名的内存常驻软件(TSR)的始祖,也是让Borland跨出开发工具界,让几乎所有PC使用者认识Borland的关键软件。当然SideKick也很快的成为了全球的畅销软件,继续的把Borland往顶尖的软件公司上推。而Turbo Pascal也成了我大二,大三撰写作业的最爱,几乎所有的作业都是使用TurboPascal完成的,当然其时Horowise的Data Structure这门课也是使用Turbo Pascal过关的,因此从那个时候开始我便非常喜欢Borland这家公司,慢慢的也开始对Borland有了
特别的感情。大二时Microsoft也推出了Microsoft Pascal,但是它和Turbo
Pascal的确是有一段差距,我使用了一次之后便把它丢到垃圾桶。稍后Borland 也推出了Turbo Basic,我记得这个编译器非常的棒,编译速度就和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++编译器,但是在我和ZortechC/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和Microsoft,不过最后我还是决定回台湾工作。在此时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。

...全文
540 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangxxdd 2002-11-19
  • 打赏
  • 举报
回复
Symantec C/C++的发展史

说起这两个对手也都是个个来头不小,先说Symantec C/C++吧。它的Think C/C++在Macintosh上便是非常有名的编译器,因此早在C/C++领域便有深厚的基础。在Symantec并购了PC上第一个C/C++编译器Zortech C/C++之后,Symantec 进入PC的开发工具市场也是箭在弦上了,只可惜的是其时Symantec还未找到一个在PC上有丰富经验的开发工具领导者。也许是上天注定要引起稍后的C/C++编译器大战吧,此时Borland C/C++ 3.1的幕后支柱Eugene Wang刚好和Philippe Kahn闹翻,离开了Borland。Symantec见此时不可失,立刻重金延揽Eugene
Wang到Symantec,为Symantec推出第一个C/C++开发工具。在1993年左右吧,Symantec C/C++在Eugene Wang的掌舵之下推出了第一个Symantec C/C++版本,立刻便获得了市场的好评。自此之后Symantec C/C++军心大振,不断的继续改善,也逐渐的获得了不小的C/C++市场,隐然成为可以对抗Borland C/C++,Visual C/C++的另一山头。当时Symantec C/C++是以最华丽,先进的整合发展环境获得市场的高度认同,在C/C++编译器最佳化方面的表现也不会输给其它的编译器。当时我在RUN!PC上写C/C++的文章,因此Symantec C/C++也有和我连络,并且送给我一套最高档的Symantec C/C++,希望我除了为Borland写C/C++的文章之外,也能够为Symantec C/C++写一些东西,我想这就是做为写技术文章的一个好处之一,那就是可以拿到许多最Hot的开发工具。我还记得在当时安装Symantec C/C++之后,的确被它的整合发展环境吸引的说不出话来,因为实在是太棒了,Borland C/C++和Visual C/C++的整合发展环境和Symantec C/C++的整合发展环境比较起来,立刻的就变成索然无味,平凡无奇了,到现在我仍然必须竖起大拇指对Symantec C/C++的整合发展环境说声赞。我想Eugene Wang在这么短的时间内把SymantecC/C++打造的好此之好,除了证明他的不凡功力之外,也有向Philippe Kahn示警的意思。证明Philippe Kahn让他离开Borland是错误的决定。我之所以如此说是因为其时Symantec C/C++最喜欢点名挑战的对象便是Borland C/C++了。对我的感觉而言,Symantec C/C++就像是一个技艺精良,又装备华丽的C/C++军团。

Watcom C/C++的发展史 真是非常有趣的是,Watcom C/C++走的路子和Symantec C/C++ 几乎是完全相反的。当时出品Watcom C/C++编译器的是一家加拿大的小公司,不过这家公司却对最佳化编译器有深入的研究。当时Watcom C/C++是以在DOS下能够产生最好的最佳化程序代码闻名于世的,在其时有许多写游戏和DOS Extender的厂商都是指名要使用Watcom C/C++,因为不论是Borland C/C++或是Visual C/C++产生的最佳化程序代码都比Watcom C/C++的最佳化程序代码差上一截。再加入当时最有名的DOSExtender厂商PharLap公司也是使用Watcom C/C++,因此Watcom C/C++在专业的C/C++程序员以及系统程序员心中是第一品牌的C/C++开发工具。不知道还有多人记得PharLap这家公司,或是有没有人记得Andrew Schulman这位伟大的软件技术人员。当时Andrew Schulman的Undocumented Windows一书红遍了半边天,也惹得Microsoft要告Andrew Schulman。而Andrew Schulman便是PharLap公司的首席工程师,也是当时最著名的 The ANDREW SCHULMAN Programming Series 的总监,例如当时由Matt Pietrek撰写的Windows Internals也是轰动一时的巨著。而PharLap公司是当时出版DOS Extender软件最成功的软件公司。谈到Matt Pietrek,熟悉Window
Programming的人应该很少有不知这位大师级人物的。Matt长期在Microsoft System Journal撰写Under The Hood专栏,专门写一些深入系统的程序设计技术,在数年前便和Andrew Schulman,David Maxey成为Widow System Programming的三大巨头之一。Matt也是著名的Window除错工具SoftIce,BoundsChecker的主要研发工程师。Matt本身也是从Borland出道的,当Matt初至Borland工作时便是在Turbo Debugger小组中研发除错工具。当时Borland的Turbo Debugger是DOS下最强的除错工具,即使是Microsoft也无法推出能够和Turbo Debugger抗衡的除错工具。Matt在这个小组中吸收了大量的知识,并且快速的成为这个领域的专家。后来Turbo Debugger小组的部份成员被Microsoft
挖走,让Microsoft掌握了Borland的核心除错技术,以致后来也能够推出不错的除错工具。而Matt也出走到NuMega公司成为开发SoftIce,Bounds Checker的关键人物。写到这里还是不禁要佩服Borland,因为当今许多名满天下的重量级软件工程师都是由Borland培养出来的。

在Watcom C/C++于DOS市场占稳了脚步之后,由于Window已经逐渐成为市场的主流,DOS势必将被逐渐淘汰出局,因此Watcom C/C++要继续的生存下去,也一定要推出Window平台的C/C++开发工具。大约也是在1993,1994年左右Watcom终于推出第一个Window的开发工具。不过当时Watcom C/C++在Window推出的C/C++开发工具实在是平凡不已,其整合发展环境和另外三个对手比较起来简直像是远古的产品,一点特色都没有,不过Watcom C/C++仍然是以它的最佳化编译器做为号召。因此在当时发生了一个非常有趣的现象,那就是许多软件公司会同时买Borland C/C++,或是Visual C/C++,Symantec C/C++之一,再搭配一套Watcom C/C++。在开发应用系统时使用其它三套开发工具之一,最后要出货时再使用Watcom C/C++来编译以产生最佳的程序代码。在Watcom C/C++推出了Window平台的开发工具之后,仍然吸引了一群使用者,虽然Watcom C/C++的市场比起其它的三家来说是最小的,但是也在一方撑起了一片天,成为四大/C++开发工具之一。稍后Watcom C/C++被Sybase并购,并且成为后来Sybase的Optima++的前身。对我的感觉而言,Watcom C/C++就像是一个穿著朴素,但是却拥有最佳训练的白色C/C++军团。

关键的时刻 - MFC Or Not

在Symantec C/C++和Watcom C/C++逐渐的站稳了脚步之后,四大编译器决战的时刻也逐渐逼近了。在1994年未的决战之前,Symantec和Watcom同时面对了一个非常严厉的考验,那就是C/C++ Framework的选择。虽然Symantec和Watcom都以各自的特色占得了市场,不过在当时对于一个C/C++开发工具来说,最重要的因素之一就是C/C++ Framework。因此Symantec和Watcom也都必须提供使用者一套C/C++ Framework。不过这对于Symantec和Watcom都是一个难以解决的问题,因为当时的C/C++ Framework已由Borland的OWL和Microsoft的MFC所占领,如果要自己发展新的C/C++ Framework,那么Symantec和Watcom并没有如此雄厚的资源,也无法在短时间之内完成。因此Symantec和Watcom必须下一个决定到底是要使用MFC或是OWL做为它们的开发工具C/C++ Framework。

在1993年初Symantec和Watcom分别和Microsoft签约License MFC做为它们的开发工具的C/C++ Framework。至此大势以定,在C/C++ Framework的市场已经形成三家夹击一家的形式。当时许多人便预估Borland将成为输家,因为市场已经成为一面倒,MFC看起来已经是胜券在握了。在当时于Borland的内部也展开了激烈的辩论,讨论是否也要License MFC做为C/C++的Framework,停止继续开发OWL。不过后来Borland还是决定继续开发OWL,而不使用MFC,因为Borland的C/C++技术小组认为MFC不论是在架构上或是设计上都比不上OWL。而且由于Visual C/C++在当时对于C/C++的标准支持不如Borland C/C++,因此在MFC内部使用了大量的Macro以及不标准的语法,因此如果Borland C/C++要使用MFC,那么还需要修改编译器来编译MFC。对于这一点我认为Borland还是做了一个正确的决定,因为如果当时Borland也License MFC,那么不但在气势上便输了一截,而且当MFC的发展是完全掌握在Microsoft的手里,那么就等于脖子是掐在别人的手里,动弹不得了。可惜的是Symantec和Watcom并没有看清这一点,以为有了和Microsoft一样的Framework,就可以在其它地方和Microsoft以及Borland一决雌雄,Symantec和Watcom却没有想就是这一点决定让后来的决战一败涂地,终究完全推出PC的C/C++开发工具市场。时序到了1994年未,C/C++开发工具的四大天王决战的日子终于愈来愈近了。

OLE的搅局

不知道是时运不济或是Microsoft的刻意如此,在1994年Borland C/C++和Visual C/C++决战的前夕,Microsoft推出了OLE(Object Linking And Embedding)技术。OLE是Microsoft为了对抗Apple的文件技术以及IBM OS2的Workplace和文件技术应运而生的。OLE可以让Window平台的文件能够内嵌在不同的应用程序中并且能够让文件在应用程序中被即地编辑(In-PlaceEditing)。说实在的,Microsoft的OLE和Apple以及IBM的技术比较起来实在是差多了,OLE在稍后也被证明是失败的技术,不过不管是Microsoft的OLE或是Apple/IBM的文件技术也都是失败的技术,都没有造成巨大的成功。虽然这些文件技术都没有成功,但是OLE却足以成为Borland,Symantec和Watcom失败的重要因素。我还记得当时OLE似乎成为了一个令人趋之若鹜的时髦功能,因为Word 的文件能够内嵌在Excel之中,并且可以点选此Word文件,应用程序又立刻成为Word来编辑它,实在是令人觉得非常的神奇。不过在其时所有的软件厂商中只有Microsoft的应用程序有如此的功能,其它的厂商例如Lotus,WordPerfect等都无法实作出这种功能。这造成了不公平的竞争,因为OLE技术是由操作系统厂商Microsoft推出的,但是却让它的应用程序部门同步拥有这种技术,而其它的软件厂商都无法获得第一手的OLE技术来实作,这是为什么当时其它的软件厂商如此火大的原因。虽然后来其它的软件公司在取得了OLE的技术信息之后也推出了具备OLE功能的应用程序,但是毕竟是慢了Microsoft许久,市场也流失了许多。不过我也很奇怪的是在当时内建OLE功能的应用程序之中,几乎所有的软件厂商推出的应用程序在激活 数个应用程序而且使用OLE之后,就非常容易的当掉,只有Microsoft的应用程序不太会发生这种情形,因此许多人便认为Microsoft有隐瞒一些技术没有让其它的厂商知道。

由于OLE是如此的复杂,因此Borland无法立刻在OWL之中实作出这种功能,于是就造成了市场上负面的
zhangxxdd 2002-11-19
  • 打赏
  • 举报
回复
数据库市场的失误
当Borland全盛的时期,事实上也是发展数据库产品最好的机会。因为在当时Borland手握DOS最畅销的Paradox,又并购了Ashton-Tate而拥有世界大部份dBase的市场,后来又从HP取得了真正的RDBMS-InterBase,可以说是全世界数据库实力最雄厚的厂商。当时的Oracle和Borland比起来,简直是小巫见大巫,而Sybase更不知道在那里。如果当时Borland能够好好的掌握这个机会,并且极力发展数据库产品的话,那么现在Borland就算不是世界第一的软件公司,也将是世界第二的软件厂商。可惜Philippe Kahn并没有看到这个在年代80未到90年代成长最快速的产品。说句笑话的是,如果当时Philippe Kahn的死对头Bill Gates早一点对Philippe Kahn说出Information At Your Finger-Tip』的话,那么Borland就可能是现在的Oracle了。

说到数据库市场就不得不对Microsoft的眼光佩服,也可以看到Microsoft行销能力的强悍。当Microsoft以FoxPro For Window强占了开发者的数据库市场之后,又看到了一般使用者也需要使用简易好用的数据库管理工具。因此发展出了Access。但是当时在这种市场中,Paradox占有开发者的数据库大部份的江山,而一般使用者的数据库管理工具市场则由Lotus的Approach拔得先机.Microsoft 为了扳回劣势,我还记得在当时Visual Basic 3的软件包中Microsoft 附了一张优待卷,只要800新台币就可以买一套Access。这简直就是流血大拍卖,目标很明显,就是当时在市场中卖1万多元的Lotus Approach。果然,Microsoft此招怀觯珹pproach便在市场被Access打得落花流水,很快的便失去了市场,也很快的退出了市场。从此一般使用者的数据库管理工具市场便逐渐由Access所取代

但是Borland并没有警觉到Access会继续的往开发者市场进功,因此仍然没有加紧在Paradox产品上开发,Borland总觉得以Paradox在市场的地位是无法轻易憾动的,而且Access的目标市场也不是Paradox的市场。但是Borland忘记了Microsoft非常散擅长模仿,因此在随后的Access版本中,Microsoft不断的为Access加入可程序设计的功能,因此也逐渐的吸引了一些Paradox入门使用者的市场,再加入FoxPro For Window又持续的强功开发者数据库市场,Paradox终于在背腹受敌之下也逐渐的败下阵来。虽然在未期Philippe Kahn已经对Paradox投下重兵,希望能够挽回Paradox的劣势,奈何时不我予,Paradox在奋斗了Paradox 6和Paradox 7的2个版本之后,终究难逃失败的命运。

当时我看到Microsoft如何打击竞争对手时,我就和朋友开玩笑的说Microsoft 有天下无敌的3绝招,那就是打不过你就模仿你(这让我想起电影秘密客(Mimic) ),再打不过就和你比流血,看谁流得久(这让我想起吸血鬼),最后如果再不行的话,那就挖光你的人(这让我想起电影 Other People's Money)。Lotus就在Microsoft的前2个绝招下到地不起,而Borland还算是功力深厚的了,连中了3绝招,虽然不像Lotus和许多其它公司一样从此Bye-Bye,但也是受伤极重的了

ODBC和IDAPI之争
当Microsoft在逐渐的击败他的竞争对手,并且拥有了大部份PC数据库市场之后,便慢慢的了解到掌握标准的重要性。此外Microsoft为了统一各应用程序之间不同资料的存取,因此开始制定存取资料的统一标准-ODBC。Microsoft更大的目的是为了准备和瞄准下一场的大战,那就是PC上的RDBMS产品。当然Microsoft 要一统资料存取的江山,Borland不同意,其时一心想从Microsoft扳回一城的IBM也不同意,而Novell更是害怕,因为Novell怕Microsoft成功之后Netware会消失得更快。于是IBM,Novell和Borland以及一些其它的小厂便聚集在一起,决定也制定一套存取资料的标准接口来和Microsoft对抗,这个制定的资料存取标准便是IDAPI。此时也正式揭开了ODBC和IDAPI竞争的序幕。 不过IBM,Novell和Borland的结合很快的就证明是失败的,因为就像稍后说明的一样,IBM在PC软件上的发展一直是三心二意,反反复覆,因此当IDAPI 1.0的规格出来之后,IBM这位老兄又失去了和Microsoft对抗的兴趣,于是就退出了IDAPI联盟。至于Novell就更不用说了,Novell对于和Microsoft一象是『说说可以,真打不行』,一定要找到一群厂商才敢和Microsoft对抗。Novell在眼看IBM推出之后,也马上不战而降,很快的就也退出IDAPI联盟,这个现象和稍后Novell对于和Borland秘密合作的Appware/AppBuilder计划如出一辙,都是虎头蛇尾,草草收场。 在两个大ㄎㄚ临阵脱逃之后,Philippe Kahn仍然不畏惧Microsoft的竞争,还是以IDAPI 1.0的规格实作资料存取引擎,这就是我们现在使用的BDE/IDAPI和SQL Links的前身。当时IDAPI 1.0的功能规格比ODBC 1.0好得多了,我记得Delphi 1.0使用的BDE/IDAPI和SQL Links驱动程序也比当时慢得像乌龟的ODBC快上太多了。只可惜在IBM和Novell推出之后,其它的小厂也是一轰而散。因此Borland只能靠自己独自和Microsoft对抗。Borland能够以少量的资源一直对抗到Delphi 3的BDE/IDAPI才逐渐的被ODBC追过,也算是非战之罪了。怪也只能怪Borland意志不坚的盟友。当然由于IBM和Novell的行事做风是如此,在稍后许多能够和Microsoft一较长短的C会也因为如此而消逝,最后自食恶果,逐渐失去了PC的软件市场,再也无力和Microsoft抗衡了。现在呢Borland似乎记取了当时的错误, 正努力的在Linux上定义标准资料存取接口dbExpress, 我希望也祝福Borland能够成功.

当Visual C++ 1.0在C/C++开发工具市场获得了空前成果的之后,Borland才从
Borland C/C++ 3.1的胜利梦中惊醒,思考如何面对Visual C++的猛烈功势。事实上当时的Borland如果脑袋清醒一点,好好看清当时C/C++开发工具的市场,那么 Borland应该会发现虽然Visual C++经过2年多的整军经武,实力已经大不前。不过Borland C/C++ 3.1仍然在许多方面可以和Visual C++一争长短的。例如其时Visual C++的最佳化编译器仍然落后Borland C/C++ 3.1一些,第2点是MFC仍然没有完整的封装Window API,而且MFC是以较低阶的方式封装Window API,并不是很对象导向,也不是很容易使用。事实上以我的观点来看,我认为就是因为MFC不好用,因此Visual C++才需要在整合发展环境中提供以可视化方式产生MFC程序代码的功能,第3是Visual C++当时并没有很好的封装数据结构的Container Class,而Borland C/C++却有非常好用的BIDS类别库。第4,也是最重要的,BorlandC/C++ 3.1仍然拥有绝大的市场,而且几乎所有的外围公用程序,Shareware等都是使用Borland C/C++ 3.1开发的。因此如果Borland不要急,好好的开发下一代的C/C++开发工具,即使Microsoft Visual C++能够掠夺一些市场占有率,但是如果下一代的Borland C/C++能够像Borland C/C++ 3.0一样立刻拉开和Visual C/C++的距离,那么Borland在C/C++市场仍将拥有王者的地位。可惜的是,也许Philippe Kahn在和Microsoft的FoxPro For Window一役中被吓到了,因此急于在Visual C/C++ 1.0之后立刻推出新的Borland C/C++以扳回颜面。但是Philippe Kahn忘了,在这段时间之内Borland失去了许多的人材,EugeneWang也离开了,更重要的是在过去近3年的时间之内,Borland几乎没有持续的开发下一代的Borland C/C++,在短时间之内如何能够仓促的推出产品呢?

但是Philippe Kahn可管不了这么多了,急忙找来了Carl Quinn等人便要求立刻开发出下一代的Borland C/C++,于是Borland C/C++ 4.0就在这么鸭子赶上架下匆忙的开发了。Borland在开发Borland C/C++ 4.0时犯了许多的大忌。首先在这么短的时间内Borland决定全新发展整合发展环境,第2是把OWL完全重写,第3是大幅修改最佳化编译器,第4是整合当时棘手的VBX,Borland居然让16位和32位的程序能够同时使用16位,丑陋的VBX。上面所说的每一项都是大工程,Borland早应该在Borland C/C++ 3.1之后便开始做这些工作,现在要在短短的一年多的时间内重新开发一个这么复杂的C/C++开发工具,几乎是不可能的工作。但是在Philippe Kahn的要求之下,这些Borland的工程师还是硬着头皮做了出来。不过我必须很沉痛的说,当时我在Beta测试Borland C/C++ 4.0时便和台湾Borland的人说,如果Borland仓促推出Borland C/C++ 4.0的话,那么不但不会对Visual C++产生任何的影响,反而是自杀的行为,因为臭虫实在太多了,整个整合发展环境的反应也很缓慢,它的最佳化编译器更是笑话,错误百出,真是像当时恶名昭彰的Microsoft C 4.0一样。我还开玩笑的说,是不是因为Microsoft从Borland挖了大量的Borland C/C++人才,因此好胜的Philippe Kahn也还以颜色,从Microsoft反挖Microsoft C的人,却不幸的挖到了Microsoft C 4.0的人。但是很显然的Borland并没有听到我的,或是其它Beta测试人的心声,在VisualC++ 1.0推出后的1年多,Borland C/C++ 3.1后的4年,Borland终于推出了新一代的Borland C/++ 4.0,这个肩负和Visual C++ 1.0对抗的C/C++开发工具。在Borland C/C++ 4.0 当时所有重要的计算机杂志?,例如Byte,PC Magazine,Dr. Bob等等,都有4.0页的广告。这个广告的内容是以一个巨大的猫头鹰为主,再搭配蓝色底色系的Borland C/C++ 4.0为主,选用巨大的猫头鹰当然是因为OWL的原因,只可惜我现在找不到那幅广告了.

痛失江山的Borland C/C++ 4.0

当时Borland使用了如下的广告用词: Visual Is Only A Facial Facade来讽刺Visual C/C++只提供了产生MFC程序代码的基本精灵,而Borland除了也提供
相对应的AppExpert精灵能够提供类似的功能以产生使用者选择的OWL程序代码之外,Borland C/C++ 4.0的整合发展环境还提供了可视化的3面版窗口,能够让程序员完整的掌握整个项目的情形。例如在下图中便是当初令人眼睛为之一亮的AppExpert:还记得Borland提供的AppExpert吗?下图则是当时Borland C/C++ 的注册商标,3面版窗口开发环境。看到下图又令我想起当初使用C/C++写程序的日子,下方程式码面版清楚的显示了我在1995年于鼎新工作时写的智能型Window排程系统,时间过得是真快啊。令人怀念的Borland C/C++ 4.0整合发展环境,三面版窗口当时Borland C/C++ 4.0的3面版整合发展环境真是开创了
zhangxxdd 2002-11-19
  • 打赏
  • 举报
回复
C/C++的光荣战役

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

Philippe Kahn - Borland的创始人

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

1. Philippe Kahn和当时Borland C/C++的产品经理闹翻了。这位Borland
C/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++,那么我想到现在BorlandC/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!!!

2. 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才警觉事情不对而充充忙忙的开发dBase For Windows。但是当dBase For Windows推出之后,Microsoft早已推出了两个FoxPro For Windows 的版本,而占据了大部份的市场,dBase For Windows其势已不可为了

3. Microsoft开始向Borland挖角。由于Microsoft在许多的开发工具战役中一直被Borland打得灰头土脸。更何况Borland C/C++ 3.1几乎抢占了大部份的市场,因此Microsoft开始准备好好的对付Borland。但是由于其时Borland在编译器的技术领域领先了Microsoft数年之久,Microsoft无法在短时间之内赶上Borland,因此Microsoft决定使用最有效的方法立刻追上Borland技术,蔷褪侵苯油诮恰R虼松葬酠icrosoft的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也被Motorola并购。虽然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,而Carl Quinn也是数年后JBuilder的JBCL Framework 的灵魂开发人物。Carl Quinn不但负责开发OWL,也为Borland在组件Framework 的技术领域立下了重要的贡献。由于Carl Quinn的投入,因此开启了OWL大战MFC,Borland C/C++缠斗Visual C/C++数年精彩好戏的序幕。Carl Quinn到现在我还记得和敬佩的人物,让我再一次的向他致敬,并且介绍他让大家认识.Carl Quinn-我第一个佩服的Borland工程师

Borland C/C++的反击 火线全开

Borland除了在开发工具市场和Microsoft热
如此多的律师厌倦了他们必须“创新或死亡”的说法,但他们的客户对创新的呼声依然高涨; 而且,虽然不清楚,但显然是响亮的。 对创新的需求是旧闻; 现在,客户更进一步——要求律师事务所在推介提案 (RFP) 中展示他们如何创新,或者他们将如何创新或创新。 即使是那些不使用“i-word”这个词的客户也会以其他形式要求它,包括要求更便宜、更好、更快的服务或要求在公司内部或与其他竞争律师事务所进行“合作”或法律服务公司的项目和小组。 更令人信服的证据证明了这次呼吁的重要性? 客户表示他们重视律师事务所的创新并奖励它,或者更糟糕的是,惩罚没有它的公司。 总法律顾问 (GC) 一直一致且明确:“如果您不想成为 [他们] 的创新合作伙伴,那么 [他们] 将倾向于不给您业务。” 换句话说,创新合作不再是一个更高的标准——它正在Swift成为标准要求。 诚然,正如我在我的著作《法律动荡:法律创意、合作和创新指南》中所述,许多客户并不清楚他们所说的创新是什么意思,也没有完全弄清楚如何衡量它。 的确,许多律师事务所不确定他们或他们的客户所说的创新是什么意思,或者投资创新的投资回报率是多少。 但是,这些——以及其他——模糊性并没有阻止律师事务所通过投资(以某种方式、形式或形式)创新来响应客户的呼声。 律师事务所回应这一呼吁的一种方式是任命、确定或雇用某人担任有时被称为首席创新官 (CINO) 或表示此人是创新负责人的其他头衔。 我第一次听说 CINO 在律师事务所的角色是在 2015 年 4 月。受到启发,我决定进行调查。 在过去的几年里,我采访了100多位GC、律所创新负责人、律所合伙人,以了解法律市场上陈词滥调的i-word是什么意思,了解律师对创新的看法,以及探索 CINO 在律师事务所中的作用。 我试图回答的众多问题之一是,指定某人担任律师事务所的创新主管是否是满足不断变化的市场需求和满足客户期望的有效方法。 本文与其他有关 CINO 角色的问题一起探讨了这个问题。 它分为两部分。 第 1 部分首先概述了我的受访者向我描述的 CINO 律师事务所的目标和角色。 第 2 部分强调了我认为存在于目标和角色内部和之间的漏洞。 最后,它向律师事务所提供了三项建议,以帮助弥补漏洞,从而更好地发挥作用并更好地实现目标。 注:本文发表于Globe Law and Business,www.globelawandbusiness.com/journals/modern-legal-practice(2018年10月和2019年1月)新版《现代法律实务》第七期和第八期

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧