近日和公司的系统分析员探讨了几种开发工具的特性,由其总结了下面的内容。
文章客观评价了各种开发工具的优缺点,本人把文章拿来和大家一起讨论一下,
欢迎专业人事补充和指正。
一、 跨平台特性
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
相关推荐
Coze平台智能体开发实战:打造测试工程师的AI助手
智能体是具备特定身份和能力的AI实体,由大语言模型(LLM)驱动,并通过插件、知识库和工作流扩展其能力。明确的角色定位:可以设定特定身份和专业领域扩展能力:通过插件连接外部工具和服务记忆能力:通过知识库存储和检索专属信息流程化处理:通过工作流执行复杂多步任务通过Coze平台创建测试工程师智能体,可以显著提升测试效率和质量。明确的角色定位:聚焦测试工程师的实际需求丰富的知识库:提供准确的领域知识支持合适的工具集成:通过插件连接现有工具链持续迭代优化:根据反馈不断改进智能体行为自动化测试生成。
Delphi跨平台开发iOS和Android应用的优缺点报告
Embarcadero的主要营销点之一是Delphi将创建对您的移动平台“原生”的应用程序。我从尝试在移动平台上使用Delphi的人们看到的主要抱怨之一是对这些“本机”应用程序的速度和外观的失望。这是公司过度销售产品,夸大客户期望,然后令他们失望的典型案例。 那么,Delphi是否真的为iOS和Android创建“本机”应用程序?答案是肯定的,是肯定的,根本没有。您需要认识到的是,应用程序可以通...
手把手教你用8位单片机IO口直接驱动WS2812灯带(附完整代码和避坑指南)
本文详细介绍了如何使用8位单片机IO口直接驱动WS2812灯带,包括硬件准备、时序生成、色彩引擎与特效算法的实现,以及调试技巧与性能优化。通过汇编语言优化和精确时序控制,实现高效的LED驱动和炫酷的彩虹灯效,适合嵌入式开发者和硬件爱好者参考。
DELPHI是怎么实现跨平台的?
DELPHI是怎么实现跨平台的? 首先跨平台必须要兼容原来的语法,以线程的临界区对象为例: TCriticalSection = class(TSynchroObject){$IFDEF POSIX} private type TCritSec = record FSync: TObject; procedure Initialize; inline; ...
用Spirent Test Center测试交换机Head of Line(HOL)Blocking
测试目的:设备执行拥塞控制,使非阻塞端口不受阻塞端口影响 预设条件:在RFC2889里按以下步骤设置,端口1和端口3同时向端口4发送数据包,端口1向端口2发送数据包 测试步骤:运行设置好的RFC2889 测试结果:所有frame size都显示没有Head of Line(HOL),即非阻塞端口不受阻塞端口所影响 ...
米哈游 AI产品经理面试题精选:10道高频考题+答案解析(附PDF)
米哈游是全球知名游戏开发商,以《原神》《崩坏》系列著称,专注二次元文化与AI技术创新。本文整理了10道AI产品经理面试题,涵盖Transformer架构、智能NPC设计、机器学习应用、AIGC产品规划等核心领域。题目既考察技术理解(如RAG原理、多模态模型),又关注产品落地(游戏平衡性优化、伦理安全),同时强调跨团队协作能力。参考答案均结合米哈游业务场景,体现技术驱动与玩家体验并重的产品思维,展现AI在游戏行业的创新应用前景。
WebService几种框架的比较(转载)
在SOA领域,我们认为Web Service是SOA体系的构建单元(building block)。对于服务开发人员来说,AXIS和CXF一定都不会陌生。这两个产品都是Apache孵化器下面的Web Service开源开发工具。 Axis2的最新版本是1.3.CXF现在已经到了2.0版本。 这两个框架 都是从已有的开源项目发展起来的。Axis2是从Axis1.x系列发展而来。...
程序设计二(面向对象)_实训10_复杂类的实现_ArrayList类的实现
第1关:构造函数与析构函数的实现
蓝牙开发工具(转载)
WDS WDS是Silicon Wave公司的蓝牙无线通信开发工具,它是一个软件和硬件组合的工具,包括SiW1502无线调制解调IC、SiW1602链接控制器IC和底层蓝牙协议软件,是一个灵活的和可靠的开发平台。 每一个WDS节点包括一个SiW1502、一个SiW1602和一个微处理器,一般WDS节点都是成对使用,它们之间交换不同长度和不同内容的HCI分组,如见装载到微处理器的F
实例讲解CANoe报文解析使用方法
在日常工作中,经常需要分析车辆产生故障的原因,在电动汽车中,分布式控制器及线束在其中某一个地方出现问题,就有可能造成车辆故障,但是由于电气零件无法直观的观察到哪个部位发生了故障,所以要借助工具测量电气变量或者采集报文信息通过分析,解析出故障原因,从而为车辆的开发,测试,维修提供支持。其中汽车行业最通用的通讯方式就是CAN通讯,本文针对使用CANoe对CAN报文离线分析的使用方法做详细介绍。
LMK04821时钟芯片SPI配置避坑指南:从寄存器读写到频率校准全流程
本文详细解析了LMK04821时钟芯片的SPI配置全流程,涵盖寄存器读写、频率校准及JESD204B系统设计中的关键技巧。通过实战案例和避坑指南,帮助工程师高效解决时钟输出异常、同步失败等常见问题,提升高速数据采集系统的时钟稳定性。
Palm OS开发工具简介【转载】
一、CodeWarrior 在Mac OS和Win32平台上最流行的Palm OS系统集成开发环境。对PalmOS来说,它是一个主要开发工具,用C语言可以非常方便和快捷的写程序和调试程序。事实上,由Palm公司所提供的PalmOS相关文档和教程都是假定开发者是利用CodeWarrior来开发Palm应用程序的。 开发者 Metrowerks,Inc 网址 www.metrowerks.com/
SmartFusion从FPGA到ARM(九)——串口命令解析器的实现
系列教程:SmartFusion从FPGA到ARM系列教程 前面两节介绍了MSS_UART和CoreUARTapb的使用: MSS_UART的使用 CoreUARTapb的使用 MSS_UART和CoreUARTapb都支持中断和轮询方式获取串口接收的数据,对于串口中断服务函数,有时我们需要通过不同的串口指令去执行不同的动作,下面以CoreUARTapb为例,来实现一个简单的串口命令解析器。固定串口数据帧格式,帧长度不定。 串口数据帧格式:* + 数据 + #,对于数据中为参数的,可以自定义处理函数。例
几种面消隐算法的比较
几种面消隐算法的比较
数学建模模型总结
这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!
IDEA的使用指南
IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.
Bean复制的几种框架性能比较(Apache BeanUtils、PropertyUtils、Spring BeanUtils、Cglib BeanCopier)
文章转载自:Bean复制的几种框架性能比较 Bean复制的几种框架性能比较: 测试结果: 10次测验 第一次 第二次 第三次 平均值 每次平均值 BeanUtil.copyProperties 54 57 50 53.66667 5.366666667 PropertyUtils.copyProperties 4 4 4 4 0.4 org.springframework....
Data-Structures-and-Algorithm-Analysis-in-Java.pdf
作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...
[转载]C#特性详解
在Java中有反射和注解这个东西,可以很方便的完成数据库相关的一些操作,于是我想在C#中利用类似的技术来实现一些数据库相关的工作,但是不知道在C#中这项技术叫什么,于是在MSDN上面找,找了好一会发现这个技术应该叫特性,但是不知怎么的,一向感觉不错的还能看懂的MSDN,在介绍这项技术的时候,总感觉有些生涩难懂,于是就只好去网上搜索其他人的见解,于是看到了这篇博文,感觉讲得还不错, 因此转到自己的
霍尼韦尔SoftMaster使用说明
霍尼韦尔SoftMaster使用说明
Keil MDK 和 IAR 两款ARM开发工具区别比较
首先要说明,没有那款开发工具是万能的,也没有那款工具在所有方面都具有绝对优势。对于Keil MDK-ARM和IAR两款工具择,可以根据自己的习惯来选择,而不应该在使用其中的一款时贬低另外一款,或者总是赞美自己的选择。 好了,下面开始讲Keil MDK-ARM和IAR的区别。 一、概述 Keil MDK-ARM(旧称RealView MDK)开发工具源自德国Keil公司,被全球上百万的嵌...
[转载]扩展Eclipse的Java开发工具(一)
扩展Eclipse的Java开发工具(一)Eclipse 的 Java 开发环境的重构(refactor)能力是它提供的最有用的特性之一。本文将向您介绍创建您自己的重构(作为 Eclipse 的自然扩展)步骤。本文所提供的解...
awk 特性比较
http://awk.freeshell.org/AwkFeatureComparison比较各个版本的awk特性的支持情况 posix awk标准不支持数组长度的函数,这里有几种方法介绍http://awk.freeshell.org/ArrayLength http://awk.freeshell.org/关于awk的不错站点 转载于:https://www.cnblogs.co...
[转载]Struts VS Spring 两种MVC框架比较
Struts VS Spring 两种MVC框架比较基于Web的MVC framework在J2EE的世界内已是空前繁荣。TTS网站上几乎 每隔一两个星期就会有新的MVC框架发布。目前比较好的MVC,老牌的有Struts、We...
几种聚类算法的比较
转载: http://scikit-learn.sourceforge.net/dev/auto_examples/cluster/plot_cluster_comparison.html Comparing different clustering algorithms on toy datasets This example aims at showing charac
[转载]品味Eclipse 3.1 中的新特性
品味Eclipse 3.1 中的新特性Eclipse3.1中最重要的一个特性是:对J2SE5.0的全面支持,比如对泛型,新的注释(@Override,@interface等), enum类型,auto-boxing,新的for...
1005



被折叠的 条评论
为什么被折叠?



