几种常用开发工具的比较VB/PB/C++/VC/JAVA

此帖最初发布于2004年,如今已过六载,相对于硬件、软件架构来说,编程语言的发展速度的确是缓慢的。

一、跨平台特性 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可自由而方便的调用;提供了ServerSocket,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:适用于开发除了系统软件、驱动程序、高性能实时系统、大规模图像处理以外所有的应用。 综合评价: C++ Builder:67 Dephi:61 JAVA:59 VC:55 PB:53 VB:46

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强制返回为文本 -------------------------------- 数字类型的格式化 --------------------------------     固定格式参数:     General Number 普通数字,如可以用来去掉千位分隔号     format$("100,1
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办法, Format 或者FormatDateTime 竟然结果和系统设置的区域语言的日期和时间格式相关。意思是尽管你用诸如 Format(Now, "MM/dd/yyyy"),如果系统的设置格式区域语言的日期和时间格式分隔符是"-",那他还会显示为 MM-dd-yyyy     只有拼凑: <%response.write
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace My ‘全局错误处理,新的解决方案直接添加本ApplicationEvents.vb 到工程即可 ‘添加后还需要一个From用来显示错误。如果到这步还不会则需要先打好基础啦 ‘======================================================== ‘以下事件
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用的爽呀,这篇文章写与2011年,看来我以前没有认真去找这个方法呀。 https://blog.csdn.net/chzjxgd/article/details/6176325 金蝶K3 BOS的插件官方是用VB6编写的,如果  能用.Net下的语言工具开发BOS插件是一件很愉快的事情,其中缘由不言而喻,而本文则是个人首创,实现在了用V
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选中的单元格进行处理 Dim m As Range, tmpStr As String, s As String Dim x As Integer, y As Integer, subStr As String If MsgBox("确定要分列处理吗?请确定分列的数据会覆盖它后面的单元格!", _
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single) 2 Dim path As String, hash As String 3 For Each fil
  Imports MySql.Data.MySqlClient Public Class Form1 ‘ GLOBAL DECLARATIONS Dim conString As String = "Server=localhost;Database=net2;Uid=root;Pwd=123456;" Dim con As New MySqlConnection
‘導入命名空間 Imports ADODB Imports Microsoft.Office.Interop   Private Sub A1() Dim Sql As String Dim Cnn As New ADODB.Connection Dim Rs As New ADODB.Recordset Dim S As String   S = "Provider=OraOLEDB.Oracl
Imports System.IO Imports System.Threading Imports System.Diagnostics Public Class Form1 Dim A(254) As String    Function ping(ByVal IP As Integer) As String Dim IPAddress As String IPAddress = "10.0.
VB运行EXE程序,并等待其运行结束 参考:https://blog.csdn.net/useway/article/details/5494084 Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Pr
今天碰到一个问题,登陆的时候,如果不需要验证手机号为空,则不去验证手机号 因为登陆的时候所有的验证信息都存放在一个数组里 Dim CheckUserInfo() As String ={UserBirthday, SecEmail, UserMob, UserSex, RealNameFirst, RealName, CheckCardID, CheckCardType, Contactemail
在VB6.0中,数据访问接口有三种: 1、ActiveX数据对象(ADO) 2、远程数据对象(RDO) 3、数据访问对象(DAO) 1.使用ADO(ActiveX Data Objec,ActiveX数据对象)连接SQL Server 1)使用ADO控件连接 使用ADO控件的ConnectionString属性就可以连接SQL Server,该属性包含一个由分号分隔的argument=value语
注:大家如果没有VB6.0的安装文件,可自行百度一下下载,一般文件大小在200M左右的均为完整版的软件,可以使用。   特别提示:安装此软件的时候最好退出360杀毒软件(包括360安全卫士,电脑管家等,如果电脑上有这些软件的话),因为现如今的360杀毒软件直接会对VB6.0软件误报,这样的话就可能会在安装过程中被误报阻止而导致安装失败,或者是安装后缺乏很多必须的组件(其它的杀毒软件或安全卫士之类的
Private Sub Form_Load() Call conndb End Sub Private Function conndb() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim strCn, sql As String Dim db_host As String Dim db_user As String
  PPSM06S70:  Add  moddate  EDITSPRINTJOB:  MAX(TO_CHAR(ETRN.MODDATE, ‘yyyy/mm/dd/HH24:MI AM‘)) ACTUAL_SHIPDATE   4.Test Scenario (1) :Query SQL Test DN:8016578337 SELECT CTRN.TKCTID TRUCK_ID,        
  沒有出現CrystalReportViewer時,須安裝CRforVS_13_0. 新增1個數據集,新增1個數據表,添加二列,列名要和資料庫名一樣. 修改目標Framework 修改app.config, <startup >改成<startup useLegacyV2RuntimeActivationPolicy ="true">  CrystalReport1.rpt增加數據庫專家 在表單
Imports System.Threading Imports System Public Class Form1 Dim th1, th2 As Thread Public Sub Method1() Dim i As Integer For i = 1 To 100 If Me.Label1.BackColor =
Friend Const PROCESS_ALL_ACCESS = &H1F0FFF = 2035711 Friend Const PROCESS_VM_READ = &H10 Friend Const PROCESS_VM_WRITE = &H20 Friend Const PAGE_READONLY = &H2 Friend Const PAGE_READWRITE = &H4 Friend
以下代码随手写的 并没有大量测试 效率也有待提升 如果需要C#的请自行转换 Function SplitBytes(Data As Byte(), Delimiter As Byte()) As List(Of Byte()) Dim i = 0 Dim List As New List(Of Byte()) Dim bytes As New
Imports System.Data.SqlClient Public Class Form1 REM Public conn1 As SqlConnection = New SqlConnection("server=.; Integrated Security=False;Initial Catalog= mydatabase1; User ID= sa;password")