Delphi和VC之比较
1、Delphi不支持多继承,MFC也不支持
2、Delphi没有宏、
3、Delphi没有模版(Java也没有,SmallTalk也没有)
4、Delphi的Begin,End ..没有{}++ += ....这些表示方法简洁(我真的喜欢C的这些特性)
5、Delphi中的所有类都必须从TObject派生,TList,TCollection实现起来很简单(当初为了这些特性C++引入多继承和模版的)
6、Delphi的RTTI(Run Time Type Information)直接由编译器支持(C++规范也是这样的,VC4.0以后的编译器也支持这个特性,但是MFC为了兼容的关系一直采用很古老的自己的方式实现,所以有了DECLARE_DYNAMIC\IMPLEMENT_DYNAMIC这两个设计非常精巧的宏,我觉得它的设计非常好,但是我不认为这样打补丁出来的东西有编译器直接支持的特性来的简洁和优美)
7、Dynamic Create,同样因为上面的原因MFC引入了另外两个宏DECLARE_DYNCREATE、IMPLEMENT_DYNCREATE
8、Delphi的序列化(Persistent)只要是从TPersistent派生来的类都可以支持(TComponent就是从他派生来的,Delphi的.DFM就是它的一个使用的例子)
9、MFC的文档\视图结构应该也能成为经典设计了,很可惜我在Delphi中找不到
10、C++中可以声明如下结构,我也不知道Delphi应该如何做
Struct ABC{
A:1;
B:3;
}
Delphi中最下的单位好像是Byte,只能自己程序处理(就像MFC那些宏一样,很讨厌)
11、Windows的接口文档是基于C的,所以对最新技术的应用上没有VC那么方便,你需要自己成立很多很多的头文件.h,这一点会把人烦死
(我觉得这个是最重要的一点,不知道宝蓝为什么不出一个转换工具)
12、使用C,C++的人应为开发Windows程序和使用MFC总的说来都是一件费力的事情,所以这些程序员对系统比较了解,不了解就没办法工作。
Delphi的程序员就不同了,他们应为VCL的巨大便利,变得主要是使用控件,相对的对系统的理解没有VC程序员深刻。
13、因为从总体上来说Delphi的语法比C++简洁(不用背负兼容性的包袱),编译速度比较快,另外如果我说MS的编译器技术没有宝蓝的好我想没有人会反对吧,无论什么特性都是宝蓝的编译器首先实现的
14、从工具使用的难度上看(在Windows平台上)
汇编 >> C >> C++ >> VC >> Delphi
但是从语言所能使想的功能来说,大家都一样,正如简单的顺序、选择、循环可以实现所有的程序逻辑一样,只要可以在程序中直接使用汇编,他的能力应该和汇编是一样的(最夸张的情形,所有的地方我都使用汇编)如果单纯因为VC比Delphi难以入门就认为VC比Delphi好是非常偏见的,要不然为什么不直接使用SDK,而要使用MFC,要是纯粹为了显示变成的能力,我们应该使用机器码,因为汇编比他简单
其实VC和Delphi的比较实际上是连个层次上的
C++ VS Object Pascal
MFC VS VCL
显然的C++语言和Object Pascal个有特色,可以说平手
MFC的结构中因为要保持兼容性有很多的垃圾,不过已经很难为开发MFC的人了,
VCL非常优美、精巧
但是不要以为VCL就胜过MFC了别忘了MFC是MS的东西,但是这一点其实就是一切了。
不过我个人认为单纯从语言的角度来看
汇编 第一代通用语言
C,Pascal 第二代通用语言
C++,OBject Pascal 二点五代 (过程式和Object混合)
SmallTask 第三代(纯Object)
Jave、C# 三点五代(与网络为核心的纯Object)
至一VB,PowerBuild(基于C++),VF都不能算是通用语言,没办法比较
还有这些都只是工具,就象刀和剑一样,同样的刀和同样的剑再不同的人手中有不同的威力
以上只是我个人的一点体会、并没有攻击别人的意思,如果你不同意我的观点可以讨论