荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: qyf (奋起), 信区: Program
标  题: 对目前主流开发技术的分析和总结6(zz)
发信站: 荔园晨风BBS站 (Mon Sep 15 11:23:14 2003), 站内信件


  结论

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

  对于计算机语言来说,未来真正重要的语言只有三种C++、Java和C#。C++将更
适合于专业的计算机公司编写图形界面系统(比如KDE)、虚拟机(比如Java虚拟机
或者.Net运行环境)、杀毒软件或者其他的盒装软件(比如说Photoshop、Dreamwea
ver)这一类的东西。而且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战略》

 --
   浪客剑心,此生谁与为伴?

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.182]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店