荔园在线

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

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


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

  2.1.2 Java和C#

  Java和C#相对于C++的不同最大的有两点:第一点是他们运行在一个虚拟环境之中,
第二点是语法简单。对于开发人员而言,在语法和语言机制的角度可以把Java和C#视为
同一种语言。C#更多的是个政治的产物而不是技术产物。如果不是Sun为难微软的话,
我想微软不会费尽心力推出一
个和Java差不多的C++++,记得Visual
J++吗,记得WFC吗?看看那些东西就会知道微软为Java曾经倾注了多少心血。而且从更
广泛的角度来说,两者也是非常相似的——C#和Java面对的是同样的问题,面向应用领
域的问题:事务处理、远程访问、Webservice、Web页面发布、图形界面。那么在这一段
中,我暂且用Java这个名字?
代Java和C#两种语言——尽管两者在细节上确实有区别。Java是适合解决应用领域的问
题的语言。最大的原因Java对于使用者来说非常简单。想想你学会并且能够使用Java需
要多长时间,学会并且能够使用C++要多长时间。由于Java很大程度上屏蔽了内存管理
问题,而且没有那么多为了微
小的性能提升定义的特殊的内容(比如说,在Java里面没有virtual这个关键字,Java也
不允许你直接在栈上创建对象,Java明确的区分bool和整型变量),他让你尽量一致的
方式操作所有的东西,除了基本数据类型,所有的东西都是对象,你必须通过引用来操
作他们;除了这些之外,Java
还提供了丰富的类库帮助你解决应用问题——因为它是面向应用的语言,它为你提供了
多线程标准、JDBC标准、GUI标准,而这些标准在C++中是不存在的,因为C++并不是直
接面向解决应用问题的用户,有人试图在C++中加入这些内容,但并不成功,因为C++本
身太复杂了,用这种复杂的语言来实现这种复杂的应用程序框架本身就是一件艰难的事
情,稍后我们会提到这种尝试——COM技术。渐渐的,人们不会再用C++开发应用领域的
软件,象MFC\QT\COM这一类的东西最终也将退出历史舞台。

  2.1.3 Delphi

  Delphi是从用C++开发应用系统转向用Java开发应用系统的一个中间产物。它比C++
简单,简单的几乎象Java一样,因为它的简单,定义和使用丰富的类库成为可能,而且
Delphi也这么做了,结果就是VCL和其他的组件库。而另一方面,它又比运行于虚拟环
境的Java效率要高一些,这样?
诩虻バ院托实钠胶庵校珼elphi找到了自己的生存空间。而且预计在未来的一段时
间之内,这个生存空间将仍然是存在的。可以明显的看出,微软放弃了这个领域,他专
注于两方面:系统语言C++和未来的Java(其实是.Net)。也许这对于Borland来说,是一
件很幸运的事情。如果我能够?
鳥orland提一些建议的话,那就是不要把Delphi弄得越来越复杂,如果那样,就是把
自己的用户赶到了C++或Java的领地。在虚拟机没有最终占领所有的应用程序开发领域
之前,Delphi和Delphi的用户仍然会生存得很好。

  2.2桌面应用程序框架

  目前真正成功的桌面应用程序框架只有两个,一个是MFC,一个是VCL,还有一些其
他的,但事实上并未进入应用领域。遗憾的是我对两个桌面应用程序框架都不精通。但
这不妨碍我对他做出正确的评价。

  2.2.1MFC

  MFC(还有曾经的OWL)是SDK编程的正常演化的结果,就象是C++是C的演化结果一
样。MFC本身是一件了不起但不那么成功的作品,而且它过时了。这就是我的结论。MFC
凝聚了很多天才的智慧——当然,OWL和VCL也一样,侯捷的《深入浅出MFC》把这些智
慧摆在了我们的面前。但是这件
东西用起来估计不会有人觉得很舒服,如果你一直在用Java、VB或者Delphi,再回过头
来用MFC,不舒服的感觉会更加强烈。我不能够解释MFC为什么没有能够最终发展成和
VCL一样简单好用的桌面程序框架,也许是微软没精力或者没动力,总之MFC就是那个
样子了,而且也不会再有发展,它
已经被抛弃了。我有时候想,也许基于C++这种复杂的语言开发MFC这样的东西本身就
是错误的——可以开发这样的一个框架,但不应当要求使用它的人熟悉了整个框架之
后才能够使用这个系统,但很显然,如果你不了解MFC的内部机制,是不太可能把它用
好的,我不能解释清楚为什么会出现这种现象。

  2.2.2VCL

  相比之下VCL要成功的得多。我相信很多使用VCL的人可能没有像MFC的用户研究
MFC那样费劲的研究过VCL的内部机制。但这不妨碍他们开发出好用好看的应用程序,
这就足够了,还有什么好说的呢?VCL给你提供了一种简单一致的机制,让你可以写
出复杂的应用程序。在李维的Borland故事那篇文章中曾经说过,在Borland C++ 3.1
推出之后Borland就有人提出开发类似C++ Builder一类的软件,后来竟未成行。是啊,
如果C++
Builder是在那个时候出现的,今天的软件开发领域将会是怎么样的世界呢?真的不
能想象。也许再过一段时间,这些都将不再重要。因为新生的语言如Java和C#都提供
了类似于VCL的桌面应用程序框架。那个时候,加上Java和C#本身的简单性,如果他
们的速度有足够块,连Delphi这种语言
也要消失了,还有什么好争论的呢?只是对于今天的桌面程序开发人员来说,VCL确
实是最好的选择。

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

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


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

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