• 专家看台:明天,你用什么做界面?


             【CSDN 12月10日消息】用户界面是软件的重要组成部分。在计算机技术飞速发展今天,这部分的变化就更是日新月异。本期“专家看台”就此话题记者 采访了北京紫枫科技开发有限公司总经理张维佳。

     

    在.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等等,对软件开发及团队管理有着极为深刻的理解。

  • 相关阅读:
    ssh2中的添,删,查,改。
    struts2中数据的传输
    SSH2中的笔记
    struts2中的拦截器
    struts.xml中的配置内容
    【spring源码分析】二、Aware
    【spring源码分析】一、BeanPostProcessor
    java常用名词缩写
    解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
    springboot使用redis缓存
  • 原文地址:https://www.cnblogs.com/Henrya2/p/1369640.html
Copyright © 2020-2023  润新知