做完BCB、VC67、C#、Java、Delphi的模板及其代码生成规则(多少有点精神分裂了),
对它们有所了解了,于是涌出了一些感想,这里说上一、二,抛砖引玉。C++
BCB 我的最爱,类库丰富够用,有极其强大的RTTI,是做系统软件的首选(希望拿到
Borland的赞助)。或许会有人反驳:Java也出现了很多类似的建模软件,矢量编辑软件,
而且风头、功能都是顶级的,何以下次结论?我要说的是,Java做的软件很快“封顶”
了,而用C++做的话就可以延伸的更远。例如,我正在策划做一种语言(暂名X++),
初定为解释执行,作为本软件的“Application”,并排于UML,ER,DataModal,Misio等,
会有更强大的RTTI,极易扩展,甚至最终用户也能轻易地在没有源代码的情况下扩展/
修改功能,减少ERP等大型软件的投入风险(指的是最终用户的投入风险)和废品率;
容易实现跨平台的类库,从而使不同平台的Runtime Environment通过本语言得到最大
的重用率,这些特性必须通过地址操作甚至修改调用栈才能实现(也许需要汇编完成)。
所以C++是做系统软件的必然选择。VC6 有着C++所有的优点,唯一说不的是.NET所称的委托、Borland所称的closure没
有,只好用yesry制作的delegate ANSI C++版了。VC.NET
这是我所见过最难用的语言了。只要用了__gc后,字符串操作十分困难。常用的操作
+,+=,= =都十分吃力,因为__gc类里面的嵌套类必须使用指针,而+,+=,= =操作符对于指
针有内定的处理方法,不允许重载。
   
Java
用过后发现它除了指针和模板外有着C++所有的优点。而且由现有的跨平台一致类库。
C++语言本身跨平台,但是在现代的编程环境中常用的GUI,GDI,通讯,数据交换,数
据库操作,同步等方面没有(少有,差点忘了Broland 的CLX)跨平台一致类库。Java
有反射机制(1.3后的事情了,知道高级功能的魅力了吧),动态代理,极好的安全性,现
在GDI也很快,浏览器通常允许它运行,从而应用广泛,从服务器到客户端,C/S,B/S
统统都优越。通过JNI扩展,甚至成为DSP等开发的调试器(JTAG居多,配合GCC
的调试信息)。Delphi
特性与C++十分类似,只是表现形式不同。有着Borland的一直支持,永远没有没落/
落后的感觉。C#.NET
新兴,有了Microsoft的强大类库支持,有很多人喜欢,尤其对于新的和或小的公司做
应用,能降低多少成本就降低多少成本的做法和思路,一律/首选C#.NET,对于老手,
C#可谓“不屑一顾”。一方面,心理上认为放弃已有的C++或Delphi功底重新学习C#
与新手竞争太不公平;二来,C#的确让高手束手束脚。好在她仍然支持COM,很多尊
重人才的公司也容纳多种语言的开发团队,我从事的最近3家公司就是如此。关于Webservice
这里讨论一下Webservice,因为不久后中国迎来IPV6,协同(含无线)计算应该成为大
潮。Java在国内是服务器端带动客户端发展起来的,C++由于Borland,Microsoft都不
怎么样提供支持,在这方面显得落伍。其实B,M各有各自的算盘,宗旨是让用户升级,
升级才有更多的利润,而非C++不适合做Webservice。不过,Webservice开发门槛不能
太高,因为太多的非职业程序员使用web,所以ASP,PHP,Java,等脚本web开发语言大行
其道,PHP(Personal Home Page)开始的时候就是吸引非职业程序员而占有一席之地。回
过头来,看看上述语言,BCB越来越不合时宜,VC6只剩下老系统和DDK相关,Java,
C#.NET/VB.NET,Delphi三足鼎立(浅见,不要吐我口水哦),X++走PHP的崛起道路,
即瞄准大厂未发现的用户分类。为何不做VB
VB一直与建模不挂关系,至少文献太少,觉得没有这方面的需求。关于生命周期软件
IBM Rational,Borland Together都有生命周期软件,也有朋友建议我也做。所谓生命周
期软件是软件工厂里的流水线机。这里不得不提一提爱迪生发明的流水线,“工作”定
期送到工人面前,限期完成就是流水生产线的职能,生命周期软件也是这个目的并起这
样的作用。在“工件”没有标准化或局部标准化之前,我个人认为生命周期软件不会有
太大的发展。我的产品:http://www.bizflash.net/aicase/product.htm砖已抛出,玉从何来?靠你们了。