Yesky首页| 产品报价| 行情| 手机 | 数码 | 笔记本 | 台式机 | DIY硬件 | 外设 | 网络 | 数字家庭 | 评测 | 软件 | e时代 | 游戏 | 图片 | 壁纸 | 群乐 | 社区 | 博客 | 下载
您现在的位置: 天极网 > 开发频道 > 对目前主流开发技术的分析和总结
全文

对目前主流开发技术的分析和总结

2003-09-11 14:32 作者: 出处: 学习JAVA 责任编辑:方舟
  结论

  说了很多,应该是有个结论的时候了。我似乎做了一件冒天下之大不韪的事情,因为我评价了主流技术,还要试图进行比较,好像某个名人说过:“C++ Builder也好,Visual C++也好,能在市场上立足,肯定都是有自己的过人之处的,而且一个人精通数种开发语言、数种开发工具是不可能的事情”,言下之意就是说你不要对这些东西妄加评论,但怎么可以不评论?好像高手都不屑于说哪种语言好、哪种语言坏,我不知道什么时候形成了这种风气。简单地说C++比Java好或者Java比C++好显然是愚蠢的行为,但如果让你用Java写驱动程序,用C++开发一个MIS系统是不是愚蠢的行为呢?显然更愚蠢。我想,作为一个独立的能思考的人,外界的东西对你而言总是有好有坏,而且你的生命有限,你还要享受你的生活,所以你必须做出选择。所以,起码评价这些东西对我自己而言是正确的——只要我有能力评价,那我就说出我的评价吧。

  对于计算机语言来说,未来真正重要的语言只有三种C++、Java和C#。C++将更适合于专业的计算机公司编写图形界面系统(比如KDE)、虚拟机(比如Java虚拟机或者.Net运行环境)、杀毒软件或者其他的盒装软件(比如说Photoshop、Dreamweaver)这一类的东西。而且C++适合程序员做学习之用,能对C++有一定理解的程序员往往也应该能更深刻的理解Java、C#,这有助于编写更好的软件。如果是开发为客户定制的应用系统Java、C#是更好的选择。包括桌面应用和Web应用。

  至于其他的语言比如VB.Net其实并没有太大的意义。Delphi在未来一段时间将继续存在,而且活得不错。最重要的原因在于,第一它有一套丰富的组件库,第二它效率相对算高的,第三它简单。如果虚拟机的执行效率赶不上Delphi,它就有存在的理由,但从过去的Visual J++来看,微软的虚拟机做得确实可以很好,加上.Net的组件库和C#的简单性并不差,所以从长远来看Delphi可能不那么乐观。

  其实上面的比较也包含了桌面应用程序框架的比较。在现在来说VCL无疑最好的,MFC已经退出历史舞台。.Net中所带的桌面应用程序框架将最终统一桌面应用领域(但不包括微软和Borland这样的专业公司,因为他们要作出最好用而且效率最高的软件)。至于Java中所带的桌面应用程序框架,实在让人哭笑不得。这个结论的变数是.Net运行环境的执行效率。如果.Net中的虚拟机象Java的一样,那微软就倒霉了,它等于放弃了桌面应用开发工具领域,但根据微软在Visual J++上的成就和他推广.Net的背水一战的驾式,.Net在桌面领域失败的可能性不大(但不是没有,起码基于COM的技术在企业应用领域几乎可以说是全军覆没)。

  在企业应用程序框架领域,最终只有J2EE和.Net可以决一雌雄。我没有提到CORBA,它也可以算是企业应用程序框架,但他的声势和J2EE或者.NET实在不能同日而语,而且最重要的是只有Borland一家大公司支持它(SUN、IBM、BEA、Borland支持J2EE,微软就不用说了),所以就不详细说他了。那么最终谁会赢呢?我想微软赢的可能性大一些。这样说可能让很多人不快,而且IBM的厉害也是有目共睹的。但这并不是纯技术问题,就象Windows NT蚕食Unix的领土那样,那时候微软也是孤军作战。J2EE的问题在于第一:混乱,第二,价高。我相信很多人都对这两点有过不快的经历。你知道写给Weblogic的应用程序不是很顺利地就可以移植到Websphere上的,反过来也一样。但.Net就不一样了,那是微软一个人的作品,根本不存在移植的问题。

  如果J2EE阵营不想败在这一点上,有三个办法,第一种就是通过制定统一的标准彻底消灭移植问题,第二种是开发一种好用的部署工具(不能象JBuilder那么大、那么慢:),屏蔽不同的应用程序容器之间的区别,第三种,也是最不可能的,就是J2EE阵营有人能够一统天下。显然,这三种解决办法都不太现实。第二点价高,这是SUN、IBM、BEA、ORACLE传统,也是它们一直让微软的进攻屡屡得手的软肋。我一直不太能明白他们的西就为什么那么贵。这样想一想:微软的.Net SDK白送给你,BEA的Web logic一个CPU的License两万,如果你两种技术都会,如果你给客户的系统报价一样,你选哪种开发技术?这一点实在让人觉得无可奈何。J2EE有的东西,.Net也有(除了不能跨平台),技术上的细微差别在巨大的价格差异面前还有什么意义呢?当然,SUM、IBM这些大公司也不是等闲之辈。就象Windows NT没有消灭Unix一样,J2EE应当会像Windows NT和Unix的共存一样和.Net共存,只是我想.Net恐怕会占上风。

  闲话

  说完了该说的技术问题,说说闲话吧。有的话放在心里觉得不说出来不舒服,且让我一吐为快:)

  给入门程序员的建议

  不知道我在学计算机的时候是不是走了弯路。但我想如果让我重新开始学写程序的话,我会采用一些不同的办法。如果你也正在想成为一个程序员,这些也许会对你有帮助。我觉得可能大概要分几个阶段,第一个阶段应该是找一门简单的语言入门,比如Java或者C#都应该比较合适,选一本简单的带例子的书(最好不要太厚),按部就班的把书学完。这时候可能还有些懵懵懂懂,但没关系,可以开始做个小小的软件了,重要的事你要自己用那种语言的方式想思考,如果有项目做,当然更好。之后,你会觉得有点感觉了。如果你象我一样不是科班出身的,接下来应当补习一下计算机专业的课程,我觉得最重要的是数据结构——那些东西你可能永远都不会自己做,C++中有漂亮的STL,Java中也为你实现了大部分东西,但我觉得真的有必要学习那些内容,这会加强你用计算机语言思考问题的能力。在进一步,如果你的入门语言不是C++,那你可以补习一下C++,尽管你可能永远都不会用C++开发程序。C++在现在的计算机世界就象是普通话一样,而且它能让你很容易的理解其他语言中难以理解的问题。学完了C++,那你应当就已经不是一个初级程序员了,欢迎你进入计算机软件开发的世界。

  印度的软件业

  我记得好像在CSDN上看见过一篇文章,极力的鼓吹印度的软件业。而且我记得他好像说过一句很刻薄的话“我们公司那些B大的和T大的,一个一个特别牛,牛得看不见人……做起界面极尽奇迹淫巧之能事……”,诸如此类,总之认为程序员只有象印度的高中生那样乖乖的、懂得UML、会看Function Specification才算是真正的程序员。我当时觉得很不舒服。我想这个人应该不是B或T大的——哦,别误会,我也不是——但我觉得好像B大的T大的人没象他说的那样。而且我不明白为什么中国的软件业为什么一定要向印度看齐?作为一家公司,你想获取商业利润,学习印度无可厚非,你大可以找一大堆高中生培训成编程蓝领(我没有轻视高中生的意思,我相信有很多“高中生”在技术领域取得的成就是让我望尘莫及的),但你不应该因此就把有血有肉有个性的程序员扁得一钱不值。说实话,所谓的编程蓝领不过是工厂里面的装配工,如果有一天工厂里面换了自动化的设备,这些人就全成了废人!而你要知道并不是这些装配工发明了自动化机器。我想这种话用不着多说,子曰“过犹不及”,你可以喜欢变成蓝领,但不要把问题推向极端,把问题推向极端往往就会犯错误。我们中国可以在某种程度上学习印度,但好像我们更应该学习美国——只是我们现在没那么富裕——可是微软也不是从一开始就是这样一个伟大的帝国的,IBM也一样

  附录参考书目

  阅读如下图书有助于理解本文内容。而且这些书都是好书,值得一读。

  *《标准C++宝典》
  *《C++编程思想》
  *《深入浅出MFC2e》
  *《COM技术内幕》
  *《COM本质论》
  *《Java编程思想》
  *《精通EJB》第二版
  *《J2EE编程指南》
  *《Delphi6开发人员指南》
  *《C#宝典》
  *《微软.Net战略》
  
共6页。 9 1 2 3 4 5 6
共6页。 9 1 2 3 4 5 6
网友关注
最新上市
编辑推荐
文章阅读排行
周排行
月排行
欢迎订阅天极网RSS聚合资讯:http://www.yesky.com/index.xml