Delphi VS VC++

sundyl 2000-09-04 07:57:00
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都不能算是通用语言,没办法比较
还有这些都只是工具,就象刀和剑一样,同样的刀和同样的剑再不同的人手中有不同的威力



以上只是我个人的一点体会、并没有攻击别人的意思,如果你不同意我的观点可以讨论
...全文
160 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
skt642 2001-05-31
  • 打赏
  • 举报
回复
24180关注!
smokingcat 2000-09-09
  • 打赏
  • 举报
回复
你用VC不也可以抛开MFC使用SDK方式吗?我觉得他们可比性不是很大。用Delphi开发数据库软件当然比VC方便,同样你要是钻研DDK,OpenGl,DirectX自然会选择VC。
Phoenix2000 2000-09-09
  • 打赏
  • 举报
回复
不一定,VC 编译的程序实际上也要附带很多动态连接库,如 MFC42.DLL 之类的(如果你使用 MFC 的话)。倘若选择 MFC 静态库连接方式,则产生的 EXE 文件将会大得惊人!怎么个惊人法?你可以试一试看,我是领教过的!由于微软已经把 MFC42.DLL 等相关的文件随 Windows 操作系统一同发售,所以通常会使人产生一种误解,那就是用 VC 编的程序又小又快。这是占了操作系统的便利!!!不要以为 Delphi 离开了 VCL 就完了,见过用 Delphi 结合 Win32 API 直接开发的程序吗?体积小而且执行速度与 C++ 代码处于同一个等级水平。Delphi 可以不使用 VCL,只用 Win32 API。所以,认为 Delphi 低能的人只能是对 Delphi 并不了解的人。
Benni 2000-09-04
  • 打赏
  • 举报
回复
就编译成的可执行程序效率而言,VC是最好的!(一点补充)

1,649

社区成员

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

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