kenlistian

勤学多思

  IT博客 :: 首页 :: 新随笔 ::  :: 聚合  :: 管理 ::
  204 随笔 :: 0 文章 :: 23 评论 :: 0 Trackbacks
在.Net出现之前,界面开发本是三足鼎立之势, VC/MFC、VB和Delphi/C++Builder各据一方。然而,.Net的出现,不仅没能一统江湖,反而把天下搞得更乱了。不止一个人在困惑,到底该用什么来做界面呢?
l Visual C++
今天,由于.Net的出现, Visual C++已经失去了昔日的IDE王者的宝座。微软显然更偏爱的是C#,以及VB。当看到Visual C++ 2008中即将搭载的最新版MFC不过是捆绑了BCGSoft的第三方界面库,还能再说什么呢?难怪有人不解的问,还需要搭载第三方的界面库吗? 微软自己的库呢?莫非Office 2007的界面不是用C++开发的?所以,别再指望Visual C++了,不是微软没有能力搞出个更好的MFC或着WTL,而是他压根就没打算去搞。
l .Net Framework
一直觉得.Net Framework是个Java的翻版。可以理解微软嫉妒Java在企业开发领域独占鳌头的心理,但偏偏.Net Framework的野心太大了,连桌面开发也想统一,结果就出现了今天的局面。.Net隔三差五的出个新版,虽然宣传的新特性令神往,可真要把桌面开发建立在这个平台上还是会有麻烦的。首先,分发.Net程序就是个麻烦,以前还觉得JRE臃肿庞大,但比起今天的.Net,JRE已经很轻盈了。而且,.Net各个版本并不完全兼容,所以日后为旧客户维护在老版本上开发的程序时,必然痛苦万分。
l Java
本来桌面开发这片没有Java什么事。自从.Net把水搅混之后, Java也开始浑水摸鱼起来。先是Eclipse异军突起,从SWT到RCP,还真吸引了不少人的青睐。而今,Netbeans也东山再起,趁火打劫。随着Java FX的发布,桌面开发显得更热闹了。
l 其他
无论如何,Delphi/C++ Builder曾经的辉煌与贡献是不能抹杀的。 可惜的是,Borland已经不再把心思放在IDE上了,虽然成立了CodeGear全资子公司,但结果如何只能让时间来回答了。
Mozilla/Firefox走的是与众不同的路线。 XUL在Firefox上的成功运用,给我们的界面开发带来了新的尝试,但尚未成为主流。

“说了这么多,其实等于没说,困惑依旧是困惑。没办法,这就是现实。如果硬要支持一方,还不如自己先给自己一板砖。但是,无论现实如何,钱不能不挣,班不能不上,代码不能不写。好在我们具体工作中往往只局限在某一特定领域,所以,我们的选择固然不能尽善尽美,但日子也还过得去。就像牛顿定律与爱因斯坦的相对论,虽然相对论更精确,但平常用用牛顿定律也就够了。”
那么,对于语言及工具的选择,我们该如何把握呢?
l 时尚型软件
这部分软件,拥有很强的时尚特性,如聊天工具, 游戏,各类娱乐性软件等等。从事这部分开发建议紧跟着微软脚步走,使用最新的IDE、SDK,以求在第一时间让用户获得最新观感和体验。
l 在原有技术积累上开发的软件
这部分软件涵盖就更广泛了,比如财务软件,银行系统,各类ERP等等。对于这部分开发,如果不完全重新代码,就不用急着换语言和工具,原来用什么就还用什么。因为这部分软件大多用在企事业单位中,这一领域的各方面的更新换代并不像个人用户领域那么快。比如说,如果 Visual C++ 6.0还能应付工作,就先接着用。即使Borland破产了,Delphi也不用急着扔掉。毕竟,更换IDE的代价有时是非常巨大的,除非你已经完全想清楚了。
l 全新的软件
这部分的选择余地就比较大了。如果你能决定选择, 那么你的选择应该取决于你的喜好。所以,这是不需要听从任何建议,只要按照自己喜欢的选择就没错。
团队开发经验
“最后,谈一谈我的选择,仅供大家参考。”
多年以来,我和我的技术团队一直使用Visual C++和C++ Builder两种IDE进行界面开发。 其中VC版本曾进行过一次升级,从VC6升级到VC2003,C++ Builder一直使用6.0版。
今年,由于对C++ Builder未来的前景的担忧,并且长期以来同时维护用两个不同IDE开发的产品所产生的复杂性,我们已经逐渐放弃了C++ Builder的使用。但完全使用VC界面开发也有问题,最大的问题在于VC门槛太高,培训困难,而且界面开发效率不高,对于时间紧迫的项目经常遭遇人 手不足的问题。
通过反复比较,最终我们将目标锁定在Python身上。首先,Python是google的三大主要开发语言之一,另外两者自然是C++和Java,就连当今炙手可热的Ruby都被google拒之门外了。按照当前google的发展状况,已经成为了微软极为强大的竞争对手。因此,Python的前途决不可小觑。尤其是即将推出的Python 3.0版,对Python的品质肯定会有质的提升。
其次,经过反复比较测试发现,Python是比C++、Java和C#这类静态语言更适合做界面开发的语言。我 们从事的软件主要用于银行领域,软件中会涉及大量业务逻辑,界面修改经常需要随着业务模式的改变而改变。甚至有时连界面框架都要修改。比如说,由对话框模 式全部变成文档模式。这种含有大量业务逻辑的软件,用C++这类静态语言开发是非常痛苦的。
再次,Python本身使用C语言开发的,很容易用C/C++进行扩展,根本不用担心效率问题。这样,虽然引入了新的语言,公司原有的多年积累很容易用在新的项目中。
最后,Python的上手非常容易。公司原有大 量技术支持人员,以前根本无法胜任C++语言的产品开发,但现在却在使用Python开发的项目中大显身手。
由于Python本身自带的界面库功能并不强大,我们使用Python+wxPython作为界面开发平台,在 公司新的项目中进行界面开发。开发过程使用Eclipse+PyDev 作为集成开发环境。产品发布时使用Py2exe进行打包。如今,在我的团队中,Python已经完全取代了之前C++ Builder的位置,VC也主要用于开发不带界面的内核或逻辑模块。【记者:呐不喊】
张维佳:
现任北京紫枫科技开发有限公司总经理,毕业于北京航空航天大学,自1999年开始创业,曾多年担任技术总监,拥有极其丰富的一线作战经验,涵盖操作系统、编程语言,数据库以及网络通讯等各个方面。擅长系统架构设计,精通多种编程语言,包括C/C++、Python、Java等等,对软件开发及团队管理有着极为深刻的理解。
posted on 2008-05-29 14:32 kenlistian 阅读(415) 评论(0)  编辑 收藏 引用 所属分类: Flash
只有注册用户登录后才能发表评论。