比较VC和Delphi

比较VC和Delphi
Visual C++与Delphi之比较"最近在CSDN的论坛上的讨论非常火热,本文将以一个程序员的角度,从技术水平、功能、性能、易用性、稳定性、发展历程和前景等方面,以Visual C++6和Delphi5为代表,尽可能客观地比较介绍Visual C++和Delphi这两大主流开发工具的优缺点,其中将涉及到语言、应用框架、控件、编译和连接、集成界面、调试、COM、数据库开发等。本文还将对如何选择使用这两个开发工具提出一些建议。  
  值得一提的是,由于C++Builder与Delphi同为Inprise公司产品,它们除了使用的语言不同,其余特性几乎都相同。因此本文对C++Builder程序员和学习者也有参考价值。
语言:存在即是合理
  首先声明常被混淆的一点:VC和Delphi本身不是语言,而是开发平台。它们所用的语言分别是略作扩展的C/C++和Object Pascal。我在网上常看到有人问应该学C/C++还是VC,这个问题很好回答:如果你学VC你就必须得学C/C++,或者说你学会了VC也就学会了C/C++了。  
  言归正传,我们来比较一下C++和Object Pascal的优缺点。有人认为Object Pascal是"玩具语言",C++才是"专业语言",这是不对的。单从语言本身看,Object Pascal与C++属同一重量级。它们都是完全支持面向对象的语言,都扎根于"历史悠久"的面向过程的语言。C++是由C发展而来的,Object Pascal由Pascal进化而来。它们都有很强的灵活性,都有自己的特长和不足。比如说,Object Pascal不支持多重继承、模板、操作符重载、内联函数定义、预处理、宏、全局静态类变量、嵌套类定义,等等,而这些都是C++支持的。但同样地C++也不支持Object Pascal的虚构造函数、过程嵌套、内置集合类型、内置字符串类型、"finally"构造等等,在RTTI方面Object Pascal也比C++做得好。但这些并不重要,因为可以通过其它方式达到同样的目的,比如C++可以通过类扩展支持集合、字符串,Object Pascal可以通过"inte***ce"多重继承,等等。关键是二者都可以很好地完成你手头的任务,这就够了。  
  但是,仅仅比较语言本身是不够的,还得看它们的被接受和流行程度,学习曲线,发展前途,可移植性等,以及,很重要但常常被忽略的一点:与开发环境(指VC与Delphi)及其应用框架的"磨合"程度。  
  VC和Delphi作为开发平台,很重要的一点就是提供了一个"无所不包"的应用框架:VC的MFC和Delphi的VCL。MFC是用C++写的,VCL是用Object Pascal写的。当然,我们都知道,C++的使用范围比Object Pascal广得多,移植性也好得多。这本来是优点,但很有意思的是,正因为如此,微软写MFC时必须考虑最大限度减少对语言本身的改动,而把功夫下在源代码级,以便能尽可能支持ANSI等标准,结果导致MFC的封装复杂而不直观。(尤其是它对消息的封装,下文还会提到)。太多的宏定义和含义模糊且自动生成、不得改动的注释使MFC乃至VC让很多新手望而生畏,不敢"下水"深入学习。而Object Pascal几乎是Inprise"专用"的,不必考虑"标准"问题,因此Inprise写VCL时就把全部精力放在了结构与性能上,结果语言与框架的磨合程度非常好。VCL框架的结构清晰,VCL代码的可读性非常好。许多人说Delphi比较容易上手,也是这个缘故。天下没有白吃的午餐。你要工业标准吗?你要可移植性吗(关于可移植性和兼容性,下文会详细比较)?那么请面对MFC的"天书"级代码吧。
  不同的语言带来的另一个不同是,编译和连接的速度的不同,以及执行速度的不同。Delp

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值