再谈VC++ vs Delphi (续)

类别:VC语言 点击:0 评论:0 推荐:

(本来已一次贴上来了,却发现后半部分不显示,也许太长了)

(10) 产品质量/稳定性 有文章称“VC++的质量好,稳定性高”。真的是这样吗?Visual Studio的Service Pack 不是都出到4了吗?什么是Service Pack?主要不就是Bug Fix + Patch吗?!Borland 的工具也并不完美,Delphi 3的VCL中确实存在“内存漏洞”,会导致用D3开发的程序 有时(并不总是)退出后不能释放分配的内存。VC++的问题也不少:IE是用VC++写的吧, 上网时多启动几个,开开关关,最后全关闭,看看你的系统资源剩下多少了?还经常导 致“General Protection Error”。Ultra Edit是用VC++写的吧,也有同样的问题。其 实说到底,程序质量好不好,运行稳定不稳定,主要取决于开发者的水平/责任心。比 如说Tomb Raider系列和Quake系列游戏同是用VC++开发的,但画面质量和运行速度显然 Quake系列更胜一筹。象美国航空航天局(NASA),俄罗斯宇航局(RSA),美洲银行(Bank of America,资产超过5000亿美元的大银行),其他诸如American Airlines,AT&T, BMW,Compaq,BBC Television,British Telecom等大型机构/公司都在用Delphi开发 复杂的,企业级(可笑的是,有人居然称“用VC开发企业级的桌面应用”,殊不知企业 级应用和桌面应用是相对而言的)的应用系统(在http://community.borland.com (Borland社团站点)上有关于用Delphi和C++ Builder开发的产品介绍),如果有人还要 说“...稳定和可靠是硬道理,只好忍痛割爱了”,那他恐怕只好自制开发工具(外带操 作系统)了。:-) (PS:关于Delphi与某些显卡驱动冲突的问题,是由于某些显卡(如S3 Virge GX)的老版 本驱动程序不能正确处理Windows公用控制中的ImageList的绘制方法造成的,在这种情 况下所有在ImageList中使用多个图象的程序都会有问题) (PS:至于“一看到很多优秀的共享软件冒出具有Delphi特色的错误异常就感到悲哀”, 建议此人先搞清楚你看到的“错误异常”消息是这些软件本身出错呢,还是运行时的异 常处理消息(比如“没有找到指定文件”或“索引超出范围”之类)再说。Delphi中有完 善的异常处理,所以很多程序员不再写错误处理,而放手让编译器去处理。我认为这不 是一个好习惯,至少弹出的消息对话框可能与你的程序所用的语言/风格不一致。让人 家误会了不是?:-) (11) 帮助/文档 VC++的帮助和文档确实要比Delphi/C++ Builder的丰富一些。不过这不应当包括MSDN, 因为MSDN是一套独立的产品,并不是专门给VC++准备的,况且其中包括了相当多的 Windows技术资料。作为一名程序员,不管用什么开发工具,可以(也应当)有一套MSDN。 Windows数据结构/APIs是用C风格描述的这一点可能对Delphi程序员来说略有不便,不 过Delphi中已经包括了大多数转换;另外,如果一个程序员连转换.H文件这么简单的工 作都做不了的话,他(她)可能也做不了什么象样的开发。Internet上的一个志愿者组织 (www.delphi-jedi.org/)在这方面也做了大量工作,在他们的站点上有几乎全部有用的 C/C++库.H的Object Pascal翻译。 (PS:Delphi/C++ Builder程序员为什么不可以买一套MSDN呢?毕竟我们还在用M$的操 作系统,总不至于连Windows技术资料都不要了吧) (PS:从MSDN看M$ MSDN中的技术资料主要是以Compiled HTML(.chm)格式存放的,但M$把全部.chm放在 Disc #1,而把索引文件(.chi)单独放在Disc #2。这样一来就无法从光盘上直接看这些 文件。要么安装,要么手工把相应的.chm和.chi拷贝到一起。我看不有什么技术上的理 由(谁知道请告诉我)不把一半.chm和.chi放在一张盘,而另一半放在第二张盘。这至少 反映出M$内部某些人的阴暗心理) (12) 国际化支持 VC++中已经包括了十多种语言的RTL资源,Delphi中需要自己做资源本地化。虽然 Franch,German之类的版本中也包括English资源。:-< (13) 应用领域 VC++在Windows设备驱动开发(毕竟是M$ Windows)和某些桌面应用(比如游戏)开发中用 得较多。Delphi更多应用在数据库/多层结构,多媒体和Internet开发等方面。 (PS:VC++在游戏开发中用得较多我看主要是价格因素,游戏使用专用界面,通常不涉 及数据库和Internet(即使Internet Play也不过是简单的TCP连接,并且DirectPlay中 已包括此项功能),昂贵的Delphi和C++ Builder显示不出优势。只需要$79的VC++标准 版,DirectX SDK(可免费下栽),OpenGL文档(也是免费的),至多再加一套MSDN即可。 比如Quake,全是手写的C代码,连C++特性都很少用到。Borland也认识到了这一问题, 所以发布了免费的C++编译器) (14) 价格 M$的开发工具确实便宜(相对而言),不过是否物有所值,只能看你干什么用了。 (PS:别指望你买的TOYOTA能有Ferrari的性能。:-) (15) 前景 有人认为M$财大气粗,Borland难以对抗。我看不能这么简单下结论。M$有它自己的问 题:法律诉讼,人才流失,资源分散,四面出击(M$现在连鼠标,键盘,游戏杆,玩具 都生产)。而Borland/Inprise集中精力在开发工具,中件产品(如MIDAS,VisiBroker和 Application Server)和企业应用/管理环境(如AppCenter和Security Service)上,应 该还是大有可为的。 况且Borland和M$之间并非纯粹的竞争关系,Borland开发工具给M$ Windows带来的收益 要远大于和M$开发工具竞争带来的损失。毕竟对M$来说,开发工具只占其收入的很少一 部分,即使不搞开发工具也只不过是个面子问题,于M$无损。M$在它面临垄断/不正当 竞争指控的时候,因为长期侵犯知识产权而赔偿给Borland一亿美元(称为“授权费”), 这多少也可以看作是一种和解的举动吧。 另一种经常听到的论调是“M$的产品市场份额大,Borland能撑得住吗?”,这其实也 有很多问题。鉴于M$出于竞争的目的,经常虚报数字,影响市场(M$的律师在法庭上承 认M$曾夸大过其IE和Office的市场占有率);M$自己宣传的其开发工具的市场占有率也 很值得怀疑。M$还有重复计算的问题,比如卖掉一套Visual Studio,在计算VB,VC, VJ等的销售量时都计算在内。其实很多人/公司买Visual Studio只用其中的一两种。其 实Borland产品的销售量还是很大的,尤其是在欧洲,北美和澳大利亚,在亚洲...(是 因为D版太多了)。另外,每个公司都有自己的产品/市场定位,你能因为TOYOTA,Ford, VolksWagen卖的多就说Ferrari,MacLaren,Benz不行了吗? 4. 结论 Delphi(其实应该说Borland产品)在技术上有优势,VC++(其实应该说M$产品)也占有相 当的市场份额。 (PS:说了半天等于没说。:-) (PS:M$的C#(读C sharp)能取得突破吗?我看不会。因为M$产品通常达不到所宣传的性 能;而且一种不符合标准(C#不兼容任何一种语言标准,虽然据称更接近C)的产品也很 难取得成功。J++就是一例) 5. 附:我所知道的Borland和M$的故事 (1) Bill Gates是如何拿到IBM订单的 1979年,Tim Paterson写了最初的DOS并以$1000的价格卖给了Digital Reserch。当时 Apple的Apple I和Apple II销势很好,所以IBM在1980年也决定搞PC。Bill Gates知道 后,认为是个机会,就以$5000从Digital Reserch买下了DOS,并逼着手下人在一间没 有空调的小黑屋里日夜不停加以修改。M$当时是个小公司,只有十几个人,名叫 micro-soft。所以尽管DOS的开价($20000加每拷贝$30授权费)比CP/M-86(指用于Intel 8086/8088的版本,不是指年代)的开价($100000加每拷贝$70授权费)便宜不少,IBM的 人还是倾向于使用CP/M-86。据“比尔.盖茨的秘密”(Bill Gates' Secrets)一书的作 者说,Bill急得团团转,只好求助于他妈妈。Bill的母亲时任华盛顿大学校长,与当 时的IBM董事长John Opal是大学同学(据说...)。Bill这一招果然有效,没多久就拿到 了IBM的订单,从此DOS成了IBM PC上的首选操作系统。 (2) Borland的名字和历史 Borland听起来不象一个公司的名字,倒象一个国家的名字。 1982年,Philippe Kahn带着3000美元从巴黎到了美国,除去机票钱已所剩无几,只好 租人家的车库小阁间住。Kahn在硅谷干了一段时间,并以MIT(Market In Time,恰好与 麻省理工学院的缩写相同)为名开了一家公司。1983年,Kahn和Anders Hejlsberg(丹麦 人,Turbo Pascal编译器的主要作者)合作开发了Turbo Pascal,并赊帐在《新闻周刊》 上登了一份彩页广告。Turbo Pascal在PC开发工具中是一个里程碑式的产品,它第一次 把编译时间由分缩短到秒,并且其$49的价格在当时也是创纪录的(当时的一份编译器动 辄数千美元,便宜的也要几百美元,还不好用)。Turbo Pascal在不到两年的时间里销 售了超过130万套(考虑到当时的PC数量,这是一个非常惊人的数字),Borland从此创立。 Kahn在解释为什么以Borland命名时说“我们要起一个与众不同的名字,其他公司都是 叫这个micro,那个soft什么的”。不过据认为这个名称与德国或北欧的某些地名有关 (Kahn的父亲是德国人,而且Borland的很多开发人员是北欧人)。 (3) Anders Hejlsberg为什么去了M$ 1996年,Anders Hejlsberg离开Borland去了M$。在此之前,M$曾多次企图挖走Anders, 但都没有成功。据信Anders去M$(主要)不是钱的问题,虽然M$的开价也相当有吸引力: 130万美元年薪外加股票期权和分红,总计超过300万美元。主要原因是Anders和Delphi 开发组的其他成员在修改编译器的问题上发生了争执;还有,据Borland内部人讲, Anders认为自己不再是“不可缺少的人”。 虽然Anders Hejlsberg去了M$,我仍然尊敬他是一个天才,Turbo Pascal的主要作者, Delphi的奠基者。 (PS:Anders从1999年初就不在J++组了,而去做COM+的开发。M$的人讲的) (4) M$产品的秘密 <1> MSC最初是从AT&T买的授权; <2> VB的1,2,3版实际上不是M$开发的,而是Cooper Software开发的。John Cooper 在M$时未受重用,离开后M$倒要花钱请他开发产品,真有点黑色幽默的味道; <3> MS SQL Server最初是买Sybase的产品,6.5以前的MS SQL Server和Sybase根本就 是一回事; <4> Windows 95的主要技术负责人(名字我不记得了,不过在DejaNews(www.deja.com) 上可能还能找到有关文章)是1990年从Borland跳到M$的,不过他在1998年已经离开M$, 开了自己的公司; <5> Windows NT的开发组整个是从DEC挖来的,是以前做DEC VMS的那些人。所以在 Win32平台上有很多VMS的痕迹,比如说COFF目标文件格式。 (5) .NET到底是什么,Bill Gates也不知道 请看对Bill Gates的采访: 记者:现在,市场仍然对.NET感到困惑。... .NET的实质到底是什么? 盖茨:.NET是我们对下一代Internet的设想。... 举个简单的例子,.NET不仅允许你查 看自己喜爱的棒球队的时间安排,并且还能够对这个时间安排进一步加以利用。 (???究竟怎样“进一步加以利用”?为什么不说?难道现在的软件不能“进一步加 以利用”?) 6. 注: 本文系完全由作者本人所写,文中提到的所有技术数据均由本人验证或标明出处,转载 时请保持完整。 Best regards Herman Wolfenswicz

本文地址:http://com.8s8s.com/it/it4065.htm