希望大家讨论一下Delphi和PB开发数据库的各自有缺点

解决方案 »

  1.   

    《几种常用开发工具的比较》!! 
    主题:轻气上升进。《几种常用开发工具的比较》 黑暗独行侠
    近日和公司的系统分析员探讨了几种开发工具的特性,由其总结了下面的内容。 
    文章客观评价了各种开发工具的优缺点,本人把文章拿来和大家一起讨论一下, 
    欢迎专业人事补充和指正。 一、 跨平台特性 
    VB:无 ★ 
    PB:WINDOWS家族, Solaris,Macintosh ★★★ 
    C++ Builder/Dephi:WINDOWS家族,Linux ★★★ 
    VC:无 ★ 
    JAVA:所有能够运行JAVA虚拟机的操作系统 ★★★★ 二、组件技术支持 
    VB:COM,ActiveX ★★★ 
    PB:COM,JavaBean,Jaguar,UserObject使用:CORBA+Acti veX ★★★ 
    C++ Builder/Dephi:COM, ActiveX CORBA(本身自带CORBA中间件VisiBroker, 
    有丰富向导) ★★★★★ 
    VC:COM,ActiveX,CORBA(没有任何IDE支持,是所有C编译器的功能, 
    需要CORBA中间件支持) ★★★ 
    JAVA:JavaBean,CORBA;ActiveX ★★★★ 三、数据库支持级别 
    数据访问对象: 
    VB:DAO,ADO,RDO功能相仿; ★ 
    PB:Transaction,DwControl,可绑定任何SQL语句和存储过程,数据访问 
    具有无与比拟的灵活性 ★★★★ 
    C++ Builder/Dephi:具有包括DataSource,Table,Query,Midas,ADO在内 
    的二十多个组件和类完成数据访问 ★★★ 
    VC:同VB,但有不少类库可供使用,但极不方便,开发效率很低 ★★ 
    JAVA:JAVA JDBC API,不同的IDE具有不同的组件 ★★ 
    数据表现对象: 
    VB:DBGriD,与数据库相关的数据表现控件只有此一种,只能表现简单表格 
    数据,表现手段单一 ★ 
    PB:DataWindow对象(功能异常强大,其资源描述语句构成类似HTML的 
    另外一种语言,可在其中插入任何对象,具有包括DBGrid在内的数百种 
    数据表现方法),只此一项功能就注定了PB在数据库的功能从诞生的那 
    一天起就远远超过了某些开发工具今天的水平 ★★★★★ 
    C++ Builder/Dephi:具有包括DBGrid,DBNavigator,DBEdit, 
    DBLookupListBox在内的15个数据感知组件,DecisionCube, 
    DecisionQuery在内的6个数据仓库组件和包括QRChart, QRExpr 
    在内的20多个报表组建,可灵活表现数据 ★★★ 
    VC:同数据访问对象 ★ 
    JAVA:不同的IDE具有不同的组件,比较著名的有Jbuilder,PowerJ, 
    VisualAge for Java ★★ 
    语句执行方式: 
    VB:将一句SQL串绑定到一个命令对象中,结果返回到ResultSet对象 
    中自行拆取 ★ 
    PB:是一种真正的4GL语言,可随意直接嵌套SQL语句返回值被赋值到 
    语句的变量中,支持语句级游标,存储过程和数据库函数,是一种类 
    似SQLJ的规范 ★★★★★ 
    C++ Builder/Dephi:使用数据库组件或类完成SQL语句串的执行和提交 ★★ 
    VC:同数据访问对象 ★ 
    JAVA:SQLJ,JAVA JDBC API ★★★★ 四、系统底层开发支持 
    VB:调用API需申明,调用不方便,不能进行DDK编程,不可深入Ring0编程, 
    不可嵌套汇编 ★ 
    PB:调用API需申明,调用不方便,不能进行DDK编程,不可深入Ring0编程, 
    不可嵌套汇编 ★ 
    C++ Builder/Dephi:直接调用API,可进行DDK编程,可深入Ring0编程, 
    可嵌套汇编 ★★★★★/★★ 
    VC:直接调用API,可进行DDK编程,可深入Ring0编程,可嵌套汇编 ★★★★★ 
    JAVA:推出了JINI规范但不能对不支持JINI的设备编程,眼下并不实用 ★ 五、多媒体及图形图像开发支持
    VB:可进行Direct Api编程;调用OpenGL很不方便;自带少量图形图像处理 
    控件,使用方便但功能一般;支持图像文件类型较少 ★★ 
    PB:可进行Direct Api编程;调用OpenGL很不方便;图形图像处理不方便 
    但可调用API完成图形图像操作,也可借助控件开发;支持图像文件类型很多 ★ 
    C++ Builder/Dephi:可进行Direct Api编程;调用OpenGL比较方便; 
    自带丰富的图形图像处理组件及类,使用很方便且功能强大;支持图像 
    文件类型一般 ★★★★★ 
    VC:可进行Direct Api编程;调用OpenGL比较方便;自带丰富的图形图像 
    处理类,使用不方便但功能强大;支持图像文件类型较少 ★★★★ 
    JAVA:很难调用Direct Api和OpenGL;自带相当丰富的图形图像处理组 
    件及类,使用不方便但功能强大;支持图像文件类型一般 ★★★★ 六、网络或Web开发支持 
    VB:Asp,VBScript,具有编写DHTML的简单IDE,编写静态页面非常方便; 
    用于网络通讯的支持一般 ★★ 
    PB:DynaSript, Web.PB;提供了较多动态生成Web页面的用户对象和服务 
    以及系统对象,非常适合编写服务端动态Web应用,有利于商业逻辑的封装; 
    用于网络通讯的支持不足;静态页面定制支持有限 ★ 
    C++ Builder/Dephi:ISAPI,WININET API等各类网络或互联网API可自由 
    而方便的调用;提供了Server Socket,ClientSocket等三十余个组件及类, 
    用来处理网络通讯控制,流处理,Mail,Email,FTP,HTTP等应用协议处理以 
    及生成动态页面和商业逻辑的封装;功能强大,使用方便 ★★★★★ 
    VC:SAPI,WININET API等各类网络或互联网API可自由而方便的调用; 
    提供CAsyncSocket等数量众多的类;功能强大但使用不太方便 ★★★ 
    JAVA:不可直接调用API但内置非常多的网络及互联网功能;可利用 
    Servlet API,Java Bean API,以及JSP等协同开发功能强大的Web 
    应用;功能强大,对于某些IDE使用不太方便 ★★★★★ 七、开发模式
    VB:控件开发模式(OCX) ★★ 
    PB:组件开发模式(User Object) ★★ 
    C++ Builder/Dephi:源代码组件开发模式(VCL) ★★★★★ 
    VC:应用程序框架开发模式(MFC) ★ 
    JAVA:框架开发模式(JDK下)+组件开发模式(IDE下) ★★★ 八、面向对象特性 
    VB:差 ★ 
    PB:较好 ★★★ 
    C++ Builder/Dephi:很好 ★★★★ 
    VC:一般 ★★ 
    JAVA:非常好 ★★★★★ 九、开发效率 
    VB:较高 ★★★ 
    PB:很高 ★★★★★ 
    C++ Builder/Dephi:高 ★★★★ 
    VC:低 ★ 
    JAVA:高 ★★★★ 十、代码执行效率 
    VB:一般 ★★ 
    PB:较高 ★★★ 
    C++ Builder/Dephi:很高 ★★★★★ 
    VC:很高 ★★★★★ 
    JAVA:低 ★ 十一、帮助系统 
    VB:很好 ★★★★★ 
    PB:较好 ★★★ 
    C++ Builder/Dephi:差 ★ 
    VC:好 ★★★★ 
    JAVA:较好 ★★★ 十二、易学程度 
    VB:非常好 ★★★★★ 
    PB:好 ★★★ 
    C++ Builder/Dephi:好 ★★★ 
    VC:不好 ★ 
    JAVA:不好 ★ 十三、使用人数 
    VB:很多 ★★★★★ 
    PB:较多 ★★★ 
    C++ Builder/Dephi:较多 ★★★ 
    VC:多 ★★★★ 
    JAVA:不多 ★ 十四、厂商财力 
    VB:非常强大 ★★★★★ 
    PB:比较强大 ★★★ 
    C++ Builder/Dephi:一般 ★★ 
    VC:非常强大 ★★★★★ 
    JAVA:强大 ★★★★ 十五、发展潜力 
    VB:差 ★ 
    PB:一般 ★★ 
    C++ Builder/Dephi:一般 ★★ 
    VC:好 ★★★ 
    JAVA:非常好 ★★★★★ 十六、基础语言广泛性 
    VB:很好 ★★★★ 
    PB:一般 ★★ 
    C++ Builder/Dephi:很好/差 ★★★★/★ 
    VC:很好 ★★★★ 
    JAVA:很好 ★★★★ 结论: VB:是新人开发与系统无关的综合应用程序的首选;容易使用和厂商财力很强 
    是其仅有的两点优势 PB:是开发大型MIS及各类数据库跨平台应用的首选;从数据库前端工具来讲甚至远远超过了Oracle的Develop系列等专门的工具;从通用语言角度来讲功能也与VB等不相上下;多媒体和网络功能与其他工具相比较弱 C++ Builder/Dephi:是唯一一套能够同时适用于开发数据库应用、网络及Web应用、分布式应用、可重用组件、系统软件、驱动程序、多媒体及游戏等所有软件的高效率开发环境;VCL源码基于Object Pascal是C++ Builder 唯一的缺憾,基础语言不够通用和开发系统软件功能不足是Dephi仅有的两点不足 
    VC:从功能上讲除了跨平台应用外什么都可开发;从开发效率角度讲只局限于开发windows系统应用、可重用组件及驱动程序JAVA:适用于开发除了系统软件、驱动程序、高性能实时系统、大规模图像 
    处理以外所有的应用 
    综合评价: 
    VB:46 
    PB:53 
    C++ Builder/Dephi:67/61 
    VC:55 
    JAVA:59 
    对该文的评论 nicolas (2001-11-29 12:45:55) 
    呵呵,上面提到的除了VB我没有仔细用过外,其余的我都至少研究过,我觉得它们各有所长呀,
    可以说:每个工具都有存在的必要,在于你怎么去挑选他们、怎么用它们。
    就象写程序要动脑筋一样:在什么时候、什么情况下根据要实现的任务来选择最佳的开发工具。
    上面提到的没有哪一样工具可以说是最厉害的。最好的是作出最好的选择。nicolas (2001-11-29 12:44:39) 
    呵呵,上面提到的除了VB我没有仔细用过外,其余的我都至少研究过,我觉得它们各有所长呀,
    可以说:每个工具都有存在的必要,在于你怎么去挑选他们、怎么用它们。
    就象写程序要动脑筋一样:在什么时候、什么情况下根据要实现的任务来选择最佳的开发工具。
    上面提到的没有哪一样工具可以说是最厉害的。最好的是作出最好的选择。softarts (2001-10-22 20:10:45) 
    VC++的IDE的确有很多bug
    我想所有用VC开发软件的人都会遇到
    不过这些bug并不致命,只是偶尔让人使用不愉快。zlios (2001-10-20 22:27:59) 
      

  2.   

    我看什么比较都是徒劳的,关键在于自己适合于哪种工具。missdeer (2001-10-6 13:55:02) 
    在硅谷,用java的人很多啊,因为那里反微软的气氛很浓,一般大公司要同时维护几套系统,用java是最好的办法.而且一些通用软件公司也开始更多地使用java了,像macromediaExitWindows (2001-8-28 15:03:42) 
    反正我只用过VC++,很不错啊。
    (想当年因为在WIN95下安装BCB总不成功,我就放弃它了。)
    puma66 (2001-8-16 22:35:51) 
    我觉得,本文对各种工具的评价,还是比较客观的!yxwhrz (2001-8-15 10:20:12) 
    各位的争论有些有点道理, 但不要去老是花时间在评论某个工具的优劣上。 我认为:
    VB入门易;
    VC做底层是特别是用于开发驱动程序很好;
    DELPHI/BCB用于开发商用程序( 一般不是用于定最底层的东西) 很好。 谁愿意花很多时间去提高那么一丁点效率, 显示你编程是多么优秀? 用户需要的是一个能用的东西! 他们并不管你编程是多么高超! 
    在此, 我也想多说两句。 (1)DELPHI/BCB 的 VCL的兼容性问题: 不是人家的兼容性不好, 而是你没有通过正规的渠道得到VCL 的源代码。 用源代码在新版本下重新编译, 一般都没问题(可移植性不成问题, 真正用DELPHI/BCB 的人都知道的; 
    (2)DELPHI/BCB 的VCL 控件的源代码是公开的(在企业版中), 你若认真研究其源代码便可学会很多真东西(面向对象的, 弄懂很多难题。 M$有这么大方吗?
    (3) 出于商业竞争,M$将其底层很多数据结构并未向业界公开( 即WINDOWS的底层数据结构), 而其自身的公司却可独享(这在美国是非法的, 故M$经常要说他们公布了WIN32 编程规范的全部内容, 他们未使用未公开的调用等等)。M$有赖于此才能打败其它对手;
    (4) 在DELPHI中VCL 并不是必须的。 你完全可用WINDOW API 调用编一个纯的32 位应用程序, 编译后的程序很小(比VC 的HELLO WORLD 小很多。VCL 只是提高工作效率的一种东西而已。
    总之, 争论无益, 实实在在的做点东西出来。 谁管你用VC、VB还是DELPHI/BCB? yxwhrz (2001-8-15 10:19:18) 
    各位的争论有些有点道理, 但不要去老是花时间在评论某个工具的优劣上。 我认为:
    VB入门易;
    VC做底层是特别是用于开发驱动程序很好;
    DELPHI/BCB用于开发商用程序( 一般不是用于定最底层的东西) 很好。 谁愿意花很多时间去提高那么一丁点效率, 显示你编程是多么优秀? 用户需要的是一个能用的东西! 他们并不管你编程是多么高超! 
    在此, 我也想多说两句。 (1)DELPHI/BCB 的 VCL的兼容性问题: 不是人家的兼容性不好, 而是你没有通过正规的渠道得到VCL 的源代码。 用源代码在新版本下重新编译, 一般都没问题(可移植性不成问题, 真正用DELPHI/BCB 的人都知道的; 
    (2)DELPHI/BCB 的VCL 控件的源代码是公开的(在企业版中), 你若认真研究其源代码便可学会很多真东西(面向对象的, 弄懂很多难题。 M$有这么大方吗?
    (3) 出于商业竞争,M$将其底层很多数据结构并未向业界公开( 即WINDOWS的底层数据结构), 而其自身的公司却可独享(这在美国是非法的, 故M$经常要说他们公布了WIN32 编程规范的全部内容, 他们未使用未公开的调用等等)。M$有赖于此才能打败其它对手;
    (4) 在DELPHI中VCL 并不是必须的。 你完全可用WINDOW API 调用编一个纯的32 位应用程序, 编译后的程序很小(比VC 的HELLO WORLD 小很多。VCL 只是提高工作效率的一种东西而已。
    总之, 争论无益, 实实在在的做点东西出来。 谁管你用VC、VB还是DELPHI/BCB? yxwhrz (2001-8-15 10:18:58) 
    各位的争论有些有点道理, 但不要去老是花时间在评论某个工具的优劣上。 我认为:
    VB入门易;
    VC做底层是特别是用于开发驱动程序很好;
    DELPHI/BCB用于开发商用程序( 一般不是用于定最底层的东西) 很好。 谁愿意花很多时间去提高那么一丁点效率, 显示你编程是多么优秀? 用户需要的是一个能用的东西! 他们并不管你编程是多么高超! 
    在此, 我也想多说两句。 (1)DELPHI/BCB 的 VCL的兼容性问题: 不是人家的兼容性不好, 而是你没有通过正规的渠道得到VCL 的源代码。 用源代码在新版本下重新编译, 一般都没问题(可移植性不成问题, 真正用DELPHI/BCB 的人都知道的; 
    (2)DELPHI/BCB 的VCL 控件的源代码是公开的(在企业版中), 你若认真研究其源代码便可学会很多真东西(面向对象的, 弄懂很多难题。 M$有这么大方吗?
    (3) 出于商业竞争,M$将其底层很多数据结构并未向业界公开( 即WINDOWS的底层数据结构), 而其自身的公司却可独享(这在美国是非法的, 故M$经常要说他们公布了WIN32 编程规范的全部内容, 他们未使用未公开的调用等等)。M$有赖于此才能打败其它对手;
    (4) 在DELPHI中VCL 并不是必须的。 你完全可用WINDOW API 调用编一个纯的32 位应用程序, 编译后的程序很小(比VC 的HELLO WORLD 小很多。VCL 只是提高工作效率的一种东西而已。
    总之, 争论无益, 实实在在的做点东西出来。 谁管你用VC、VB还是DELPHI/BCB? jacky618 (2001-8-15 10:01:38) 
    这篇文章总的来说还不错,至少表明author有总结经验的习惯。
    不过这篇文章有个缺点-----不太适合那些“全知全能者”看,
    只会让他们像20岁的老太婆一样喋喋不休。kwxcooler (2001-8-15 10:00:03) 
    pb主要用来开发数据库,7。0bug太多,单6。5修改了6。0很多bug,很好用,而前7。0太嘘头,很多东西是用不着的,bcb的vcl用object pascal编写,本意让delphi和bcb共用类库,现在别说他们之间的兼容性,各自使用的就不兼容,还有太多bug,bcb能和vcl很好结合吗?开发数据库用pb是首选,除非已用惯了一工具。wolfs (2001-8-15 9:25:16) 
    不懂装懂.
    superjs (2001-8-15 9:20:56) 
    to wuenwei:
    (注意:bcb兼容一点点mfc,而vc对vcl的兼容一点没有) 
    ---------------------------
    bcb为什么可以兼容mfc,是因为微软在标准上下的功夫到家,并不是bcb强大! 
    superjs (2001-8-15 9:18:11) 
    to wuenwei:
    (注意:bcb兼容一点点mfc,而vc对vcl的兼容一点没有) 
    -------------------------------------------------
    Bcb为什么会兼容mfc呢,那是因为微软在标准上下的功夫到家!并不是bcb强大!szkingrose (2001-8-15 7:54:06) 
    我都会, 所以我不想说什么,哈哈哈chenbuaa (2001-8-15 6:43:01) 
    我觉得文章本身有对vc的偏见,作者可以不喜欢vc但应尊重事实,vc的地位毕竟还不能动摇!enyuan (2001-8-15 6:33:39) 
    我是VC++和PB的偏爱者,虽然我用Delphi从1.0-6.0.
    通常在大型环境下我用VC来做底层,PB来做数据库.
    Delphi来遍一些小软件让人家下载,放在http://emailad.at.china.com,大家可以去下载看看.wuenwei (2001-8-14 21:52:38) 
    我说一句话:用vc开发的东西,我用bcb一样可以做到!!无非就是调用api嘛,bcb不用vcl不是和vc差不多嘛!
    大家都说vc强大,强大到非常困难,就没意思了,bcb算是性能和难易度结合的最好的产品了,可以随心所欲。
    (注意:bcb兼容一点点mfc,而vc对vcl的兼容一点没有)musicdancer (2001-8-14 18:06:00) 
    同意楼下那位.
    vc绝对可以跨平台!wqpaul (2001-8-14 18:04:52) 
    比较的不错,但是不应该下什么好不好的结论freeboy777 (2001-8-14 18:02:46) 
    为中国的软件业感到悲哀,不是因为这篇文章,是因为通过评论打嘴架的 :(FantasyBird (2001-8-14 17:23:44) 
    VC 不能做跨平台开发吗? 一点基本常识都没有, 无知!!!!tianlon (2001-8-14 14:47:53) 
    delete!!EdwinYeah (2001-8-14 14:05:11) 
    哈哈,这么多人回复,这么多人为之不忿,何必在意呢?权作对各种工具的最简单介绍吧!qiujoe (2001-8-14 13:59:24) 
    聪明的程序员用DELPHI,我们这位程序员更聪明用CB,CB在他眼中没BUG,他把CB的BUG全修改了,全文中一字不提cb的BUGKisses99 (2001-8-14 13:40:09) 
    to hesi726
    你用java开发过大项目吗?No!
    你用java开发过项目吗?No!
    你用vb开发过大项目吗?No!
    你用VB开发过项目吗?No!
    你用....
    我知道了,你傻瓜一个 phenixyu (2001-8-14 13:20:51) 
    不会吧。delphi的基础语言广泛性差?那可是object pascal,计算机系的谁不是从pascal学起的。
    其实delphi/bcb的帮助一点都不差,不过你英语又差,又不肯钻研,那就另当别论。其实一般常用的只要你肯翻查例子,加上有现成的vcl,没有什么是不可以学习的。很简单的举个例子,学习vb的帮助没有教你如何实现splash窗口,而delphi的例子中就有。程序员应该不需要“画人画出肠”的,其实好的帮助应该是来自语言本身,而不是按一下F1而已。要不为什么用vcl做的控件是全世界最多的,人家也要看帮助文档吗?FireAngel (2001-8-14 11:55:48) 
    to hesi726 :你只不知道C++Builder的继承机制就和C++冲突,这是好呢还是坏?FireAngel (2001-8-14 11:53:48) 
    to hesi726 :是你自己程序编得少没碰到吧。不要因为自己没碰到就当没有。fxRen (2001-8-14 11:32:42) 
    吃饱了,撑的!kakalulu (2001-8-14 9:04:39) 
    BCB是多面手,不过灵活度差些,但是开发速度快
    VC的特长是较低层和灵活高效,如果什么都用它,则痛苦也
    JAVA是方便的网络支持和跨平台特性决定它适合用来做中间件,你会用它做个写字板吗?呵呵,说笑
    PB就根本就只适合来写数据库,过于单一
    VB就是小弟啦,不过如果你真的同时精通VC,想必也没有什么做不了的不过我觉得讨论什么工具好不好真的没意思,如果你用VC需要开发一个月的东西,BCB开发半个月的东西,而VB只要一星期,你觉得时间重要吗?中国的程序界的一个不良现象:穷讲技术,不想产品。想想看,金子做的筷子也未必好用来吃饭呢big
      

  3.   

    据我所知B类语言(VB、PB)编出来的程序需要若干个DLL才能解释执行
    如*BVM*.DLL等,很是恼人,而Delphi是真正的编译执行。