 |
开发工具大比拼visual c++ vs delphi---(三) |
|
| 开发工具大比拼visual c++ vs delphi---(三) |
|
| 作者:未知 文章来源:网络收集 点击数: 更新时间:2006-3-29 15:22:22
|
数据库开发:delphi一枝独秀
数据库支持是delphi的强项。这主要体现在delphi与bde的无缝集成,以及delphi提供的那一大堆现成的数据库操作控件。这是vc望尘莫及的。目前delphi支持bde、ado、interbase三种数据库访问方式。所有的方式都能拖拉到应用程序中实现可视化操作。正是因为delphi对数据库类的包装,使得用户操作数据库不像在visual c++中必须从开始到最后都要干预。明显地提高了开发速度。
在delphi中使用webbroker控件还能很方便地构造出基于数据库的web页面,通过html管理web数据库。
visual c++访问数据主要通过ado和oledb,很多activex控件也能添加数据库功能。但是没有像paradox这样的桌面数据库,access相对太轻量级了。也许sql server是不错的选择。
com:新技术的力量
com是组件对象模型的缩写。它是ole和activex技术的基础,com定义了一组api和一个二进制标准,让不同的编程语言、不同平台的彼此独立的对象相互进行通讯。
com是microsoft制订的行业标准。但是,delphi也为com提供了强大的语言支持。支持接口、variant、宽字符串功能。这些对com的封装确实比c++更方便。比如在c++(没有类框架)进行com编程时,变体定义为oaidl.h文件中德variant结构。要处理变体,必须手工调整oleaut32.dll中variantxxxx() api函数对其进行初始化和管理,如variantinit()、variantcopy()、variantclear()等等。
visual c++实现com编程有一种特殊的方法就是使用atl。atl使用visual c++特有的多重继承来实现com接口。虽然不见得实现com服务和控制更容易,但是atl和最新com技术的接口,基于模板的构造都比delphi强。atl更有利于建立小巧、快捷的com组件程序。
按照目前通用的观点,visual c++应用到com服务程序更有优势,delphi应用到com组件程序更合适。
昨天,今天,明天
技术的进步在很多时候是此消彼长的。当初borland的turbo c和borland c++几乎是c/c++程序员唯一的选择。微软的quick c(现在还有人知道这个产品吗?)和microsoft c/c++从来也没有成为过主流。但borland c++又流行了多少年呢?不久就被新崛起的microsoft visual c/c++压下去了。于是inprise(原borland)拣起了当年turbo pascal和borland pascal的辉煌(事实上borland的成名作就是第一个pascal编译器),全力推出了delphi。delphi当初推出时被称为vb杀手,但vb现在仍然活得挺好。毕竟微软是靠basic起家的嘛,vb不是那么容易被打败的。inprise想了想不和vb争了,使用delphi的ide和vcl配上c++语言,推出了c++builder,又向visual c++的市场发起了夹攻。c++builder似乎是个不错的折衷选择了?再仔细想想!c++builder的优点delphi都有,但delphi的优点c++builder未必有。比如c++builder的编译速度比vc还慢,哪能和delphi比?而且因为vcl是object pascal写的,c++语言和vcl磨合得并不好。c++builder的bug比delphi还多,甚至sample代码中还有错。vcl的部分功能不能使用,要靠嵌入pascal代码访问。c++builder可用的第三方控件远没有delphi多。
唉,真是金无足赤。microsoft和inprise,谁会笑在最后呢?
鱼和熊掌:艰难的选择
选择一个开发工具依赖于很多不同的因素,每个人都能因为某种语言的某个缺陷而放弃学习或使用这种语言。任何程序员都希望自己喜欢的工具能达到理想的境界,通过上面不完善的比较,我想大家都有自己的看法。我们认为影响大家选择开发语言的因素主要包括:
1)哪门语言更容易入门?
学习一种语言需要投入大量的时间和精力。开发程序的开发成本是值得考虑的现实。一个熟练的delphi程序员和一个熟练的vc程序员工作效率是一样的。但是,成为熟练的程序员必须很快掌握一门语言的技巧。不幸的是,目前熟练的vi[1] [2] 下一页
|
|
[ 收藏此页到: 天天|和讯|博采|ViVi|狐摘|我摘|天极 ] 文章录入:kinda 责任编辑:kinda |
|
上一篇文章: RSA加密实例分析 下一篇文章: 端口到进程实现的源代码 |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |