开发工具大比拚之Visual C++ vs. Delphi(三)

原创 2000年11月23日 15:33:00
 

数据库开发:Delphi一枝独秀
  数据库支持是Delphi的强项。这主要体现在DelphiBDE的无缝集成,以及Delphi提供的那一大堆现成的数据库操作控件。这是VC望尘莫及的。目前Delphi支持BDEADOInterBase三种数据库访问方式。所有的方式都能拖拉到应用程序中实现可视化操作。正是因为Delphi对数据库类的包装,使得用户操作数据库不像在Visual C++中必须从开始到最后都要干预。明显地提高了开发速度。

Delphi中使用WebBroker控件还能很方便地构造出基于数据库的Web页面,通过HTML管理Web数据库。

Visual C++访问数据主要通过ADOOLEDB,很多ActiveX控件也能添加数据库功能。但是没有像Paradox这样的桌面数据库,Access相对太轻量级了。也许SQL Server是不错的选择。

 

COM:新技术的力量

COM是组件对象模型的缩写。它是OLEActiveX技术的基础,COM定义了一组API和一个二进制标准,让不同的编程语言、不同平台的彼此独立的对象相互进行通讯。

COMMicrosoft制订的行业标准。但是,Delphi也为COM提供了强大的语言支持。支持接口、variant、宽字符串功能。这些对COM的封装确实比C++更方便。比如在C++(没有类框架)进行COM编程时,变体定义为oaidl.h文件中德VARIANT结构。要处理变体,必须手工调整oleaut32.dllVariantXXXX() API函数对其进行初始化和管理,如VariantInit()VariantCopy()VariantClear()等等。

Visual C++实现COM编程有一种特殊的方法就是使用ATLATL使用Visual C++特有的多重继承来实现COM接口。虽然不见得实现COM服务和控制更容易,但是ATL和最新COM技术的接口,基于模板的构造都比Delphi强。ATL更有利于建立小巧、快捷的COM组件程序。

按照目前通用的观点,Visual C++应用到COM服务程序更有优势,Delphi应用到COM组件程序更合适。

 

昨天,今天,明天
  技术的进步在很多时候是此消彼长的。当初BorlandTurbo CBorland C++几乎是C/C++程序员唯一的选择。微软的Quick C(现在还有人知道这个产品吗?)Microsoft C/C++从来也没有成为过主流。但Borland C++又流行了多少年呢?不久就被新崛起的Microsoft Visual C/C++压下去了。于是Inprise(Borland)拣起了当年Turbo PascalBorland Pascal的辉煌(事实上Borland的成名作就是第一个Pascal编译器),全力推出了DelphiDelphi当初推出时被称为VB杀手,但VB现在仍然活得挺好。毕竟微软是靠Basic起家的嘛,VB不是那么容易被打败的。Inprise想了想不和VB争了,使用DelphiIDEVCL配上C++语言,推出了C++Builder,又向Visual C++的市场发起了夹攻。C++Builder似乎是个不错的折衷选择了?再仔细想想!C++Builder的优点Delphi都有,但Delphi的优点C++Builder未必有。比如C++Builder的编译速度比VC还慢,哪能和Delphi比?而且因为VCLObject Pascal写的,C++语言和VCL磨合得并不好。C++BuilderbugDelphi还多,甚至Sample代码中还有错。VCL的部分功能不能使用,要靠嵌入pascal代码访问。C++Builder可用的第三方控件远没有Delphi多。
  唉,真是金无足赤。MicrosoftInprise,谁会笑在最后呢?

 

鱼和熊掌:艰难的选择

选择一个开发工具依赖于很多不同的因素,每个人都能因为某种语言的某个缺陷而放弃学习或使用这种语言。任何程序员都希望自己喜欢的工具能达到理想的境界,通过上面不完善的比较,我想大家都有自己的看法。我们认为影响大家选择开发语言的因素主要包括:

1)哪门语言更容易入门?

学习一种语言需要投入大量的时间和精力。开发程序的开发成本是值得考虑的现实。一个熟练的Delphi程序员和一个熟练的VC程序员工作效率是一样的。但是,成为熟练的程序员必须很快掌握一门语言的技巧。不幸的是,目前熟练的Visual C++程序员是十里挑一。相对而言,Delphi更适合初学者。

2)哪门语言有更多可继承的代码?

语言代码的可重用性是加快开发效率明显方面,从早期的过程、函数到现在的组件技术都是朝这个目标在奋斗。这两种语言对代码重用的理解是不一样的,Delphi主要通过VCL控件来实现代码重用,Visual C++实现起来就比较复杂。

3)语言自身的本性。

  就技术(主要指应用框架)来说,Delphi目前领先于Visual C++。但稳定性和健壮性的不足又让我对Inprise“想说爱你不容易”。而VC尽管发展到今日已十分完善,但MFC框架已是明日黄花了。如果不使用MFC,目前又没有合适的替代品。

根据你的需要和实际情况做选择吧。实际上Visual C++Delphi也不是单单竞争关系。它们在许多领域并不重叠,甚至是互补的。到底怎样取舍,要根据你的项目特性决定。如果你开发系统底层的东西,需要极好的兼容性和稳定性,选Visual C++吧。你可以只调用Windows的各种API,不用MFC。如果你写传统的Windows桌面应用程序,Visual C++MFC框架是“正统”的选择;如果界面部分占这个应用程序代码比例较大的话,或者Delphi中有相关功能的控件的话,Delphi是事半功倍的选择。如果你为企业开发数据库、信息管理系统等高层应用(“高层”是相对于“低层/底层”而言的,不是说技术高级或低级。)而且有比较紧的期限限制,选Delphi比较好。如果你熟悉的语言是Object Pascal,又不打算学复杂的C++,那么Delphi几乎是唯一的选择。传统的观点是:Delphi适合编写Internet/Intranet、表格制图、数据库操作、高级用户界面等等。Visual C++适合编写设备驱动、COM服务程序、科学计算、控制台(console)程序、WinCE的应用和一些小的工具等等。应用范围的不同要求好的程序员精通这两门语言。

4)语言的前景和可扩充性。

DelphiInprise的旗舰产品之一,前景应当还是比较乐观的,而且Inprise已经在向Linux进军了,而微软还迟迟没有动作。遗憾的是,Inprise公司Delphi的创始人已经跳槽到微软去主持Visual J++项目了。但愿对Inprise冲击不会太大。

微软的Visual C++的前景又怎样呢?Visual Studio 7.0就要推出了。这一版本将加强网络开发的特性。看来微软虽然被判解体,开发实力可是一点没打折扣。

  另外,虽说MFC已稍显落后,但不是说它不值得学。事实上,不学MFC就等于没学VC。利用MFC框架开发程序仍然是目前开发桌面应用的主流模式,而且还会保持相当长的时间。微软公司CEO史蒂夫·巴尔默(Steve Ballmer)曾说,.NET流行还得等2~3年。那么,MFC至少还有2~3年的生命空间。在技术日新月异的IT界,2~3年实在是很长一段时间了。好好把握吧。即使你不使用MFC框架,花点时间看一下MFC的封装机制对你熟悉C++OOP机制和Windows底层功能也是很有好处的。而VCL的源代码是Object Pascal的,对C/C++程序员就没有这个“额外”的作用了。

 
参考文献:
Programming Microsoft Visual C++, 5th Edition, by Scot Wingo & George Shepherd
MSDN, by Microsoft Corp.
Visual C++ versus Delphi, by John M. Jacobson
Borland C++ Builder 3 Unleashed, by Charlie Calvert, et al.
Borland Delphi 5 - Developer's Guide, by Inprise Corp.

delphi 应用程序开发工具

delphi   应用程序开发工具 Delphi,是Windows平台下著名的快速应用程序开发工具(Rapid Application Development,简称RAD)。它的...
  • bestlove12345
  • bestlove12345
  • 2016年07月07日 15:02
  • 3941

Delphi:开发工具史上的奇迹

  提起Delphi就不能不提到Borland公司,它曾经轰动全世界,成就了vb杀手的美名。Philippe Kahn以2000 美元在硅谷创建的这家公司在开发人员眼中简直就是一个奇迹,数次跌到再数次...
  • tanaya
  • tanaya
  • 2005年02月01日 10:13
  • 1932

Visual C++与Delphi/C++Builder之比较

Visual C++与Delphi/C++Builder之比较作者:紫云英 JasonCrazy@sina.com “Visual C++与Delphi/C++Builder之比较”这个话题也许有些无...
  • greensoft
  • greensoft
  • 2001年02月13日 15:33
  • 860

vc++和delphi的详细比较

vc++和delphi的详细比较 这是一篇非常精彩的文章,无意中在网上发现,比起原来《程序员》发表的开发工具大比拼更专业。 可惜不知道作者是谁,如果作者看到或者有谁知道作者,请一定和我联系。(mail...
  • zzwu
  • zzwu
  • 2017年08月15日 09:30
  • 580

开发工具大比拚之Visual C++ vs. Delphi(一)

紫云英、曾登高引言  “Visual C++与Delphi之比较”最近在CSDN的论坛上的讨论非常火热,本文将以一个程序员的角度,从技术水平、功能、性能、易用性、稳定性、发展历程和前景等方面,以Vis...
  • zdg
  • zdg
  • 2000年11月23日 15:31
  • 2632

开发工具大比拚之Visual C++ vs. Delphi(二)

 应用框架:MFC?有KFC流行吗?  应用程序框架(Application Frame),有时也称为对象框架。Visual C++采用的框架是MFC。MFC不仅仅是人们通常理解的一个类库。(同样,D...
  • zdg
  • zdg
  • 2000年11月23日 15:32
  • 2282

Visual C++与Delphi/C++Builder之比较

回复于: 2001-06-17 19:41:00 我觉得没有必要老讨论哪个工具好, 反正尺有所长,寸有所短,主要看你用来干什么 以下摘自 http://www.vchelp.net/c...
  • autumn20080101
  • autumn20080101
  • 2012年12月16日 21:19
  • 843

Delphi多层开发方案比较

方案-> Midas ...
  • lee576
  • lee576
  • 2008年01月02日 18:17
  • 1388

设计工具大比拼之Visual C++ VS Delphi

 引言   "Visual C++与Delphi之比较"最近在CSDN的论坛上的讨论非常火热,本文将以一个程序员的角度,从技术水平、功能、性能、易用性、稳定性、发展历程和前景等方面,以Visual C...
  • micel108
  • micel108
  • 2007年02月14日 14:43
  • 870

hello ip大比拚。

项目里面有一个小需求,返回http用户的实际ip. 正好用来测试不同appsvr的性能。 测试在虚拟机本机测试。1GRAM.使用webbench -c 10 -t 5.os是centos64 x86_...
  • laputa73
  • laputa73
  • 2013年08月30日 15:03
  • 515
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:开发工具大比拚之Visual C++ vs. Delphi(三)
举报原因:
原因补充:

(最多只允许输入30个字)