荔园在线

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

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


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

  我的故事

  在我上大学之前,我从没见过计算机。大学的时候,正是Dos和FoxBASE的年代,
也正是计算机软件开发世界几件伟大的事情发上的时候:(Windows 3.1、Borland C++
3.1、Visual Basic1.0的推出也是伟大的事情,但那时候我还不知道计算机为何物)
Widnows
95推出,并开始应用;Visual Basic5.0推出,开发工具中第一次出现了成熟的、被广
泛应用的Auto Code Completion技术;Java推出;ASP技术开始盛行,Windows DNA技术
被理解和接受;标准C++诞生;Visual C++6.0推出;J2EE规范推出。

  成为一个程序员对我而言并不顺利,因为我不是科班出身。我入门的程序语言是
FoxBASE,这让我一直对FoxBASE有种特殊的感情,我也正是通过VisualFoxPro3.0转
写Windows程序的,如果没有它,我也许就不会成为一个程序员了。后来,在大学期间
接触到了InterDEV,那是个写ASP程序的开发工具,还有Java,也是那时候接触的,当
时有点盲目崇拜的意思(我想我喜欢Java的一个原因可能是刚开始学C的时候很受挫折
)。毕业之后,我就是凭借着自己写的一个ASP网站找到了自己的第一份工作——说来
惭愧,我从来也没有成为一个C程序员。

  我真正的熟悉Java是在我翻译了一本Java数据结构的书和写了一套完整的GIS系统
之后(说起此事,我要感谢一下我的公司,但因为这些故事与本文的主题无关,所以这
里就不多说了)。再后来,我自己学习了标准C++和COM技术。有点像履历表了是吗?提
到这些,我只是希望作为读者?
你能够了解一下我的知识体系,从而能够知道我大概要讲些什么;同时也希望你能够
原谅我可能犯的错误——我在这里说的话,并不一定就是最后的结论,虽然“共同探
讨”这个词几乎是粗制滥造的书的作者专用语了,但我在这里引用它是真诚的,我愿
意看到你的反馈。要涉及的话题在?
始文章的正题之前,我先大概地介绍这篇文章将会涉及到哪些知识。如果你是初学者,
希望你不要被吓倒,这虽然是一篇技术文章,但我不会过多的讨论技术细节,如果你不
懂我说的这些东西,也没关系,我本来就希望通过我的文章帮助你做出一个选择,不再
走很多人已经走过的弯路,你这要记住结论就可以了,随着你知识的增长,以后你会
渐渐明白;如果你已经通晓了这些技术或其中的大部分,那么我相信读了这篇文章你
会有一些另外的收获。

  主流的程序设计语言:C++、Delphi(ObjectPascal)、Java、C#

  桌面应用程序框架:MFC、VCL、QT、JavaAWT\SWING、.Net

  企业应用程序框架:WindowsDNA(ASP、COM、COM+)、J2EE、.NetFramework

  开发工具:VisualBasic、Delphi、VisualC++、C++Builder、VisualC#

  二、正文

  现在让我们开始我的正文吧。首先,我来完成这篇文章的第一个目标:介绍并评
价当前主流技术。我指的今天的主流技术是:

   *程序设计语言:C++\Delphi(本来应该是ObjectPascal,但为了简单,我就语
言和工具混为一谈吧)\Java\C#(虽然他刚刚推出,但因为微软为之倾注了大量心血,
一定会成为一种重要的开发语言)

   *桌面应用程序框架:MFC\VCL

   *企业应用程序框架:WindowsDNA\J2EE\.Net

   *COM技术:我单独提出这项技术,是因为它无法简单的被视为语言、桌面应用程
序框架或企业应用程序框架,它与这些都有关系。

  2.1 程序设计语言

  2.1.1 C++语言的演进

  最初要从二进制代码和汇编说起,但那太遥远了。我们就从面向过程的语言说起
吧(包括Basic\C\Fortran\Pascal)。这种面向过程的高级语言终于把计算机带入了
寻常的应用领域。其中的C语言因为它的简单和灵活造就了Unix和Windows这样的伟大
的软件。

  面向对象的语言是计算机语言的一个合乎逻辑的进化,因为在没有过多的影响效
率、简单性的前提下提供了一种更好的组织数据的方法,可使程序更容易理解,更容
易管理——这一点可能会引出不同意见,但事实胜于雄辩,C++终于让C语言的领地越
来越小,当今还活着的计算机语言或
多或少的都具备面向对象的特征,所以这一点并不会引起太多困惑。C++的成功很大程
度要归因于C,C++成为它今天的样子是合乎逻辑的产物。因为在面向过程的时代,C几
乎已经统一天下了。今天著名的语言象Java\C#都从C借鉴了很多东西,C#本来的意思
就是C++++。其实C++曾经很有理由
统一面向对象程序设计语言的天下来着,但可惜的是,C++太复杂了。即使是一个熟练
的程序员,要你很清楚的解释一些问题你也会很头痛。举几个还不是那么复杂的例子
来说:

  对=的重载\成员转换函数\拷贝构造函数\转化构造函数之间有什么区别和联系呢?

  定义一个类成员函数private:virtualvoidMemFun()=0;是什么意义呢?

  int(*(*x(int))[4])(double);是什么意思?

  还有其他的特征,比如说可以用来制造一种新语言的typedef和宏(虽然宏不是
C++的一部分,但它与C++的关系实在太密切了),让你一不小心就摔跤的内存问题(
只要new和delete就可以了吗?有没有考虑一个对象存放在容器中的情况?)……诸如
此类,C++是如此的复杂以至于要学?
崴托枰艹さ氖奔洌夷慊岱⑾旨词鼓阌肅++已经好几年了,你还会发现经常有
新东西可学。你想解决一个应用领域的问题——比如说从数据库里面查询数据、更改
数据那样的问题,可是你却需要首先为C++头痛一阵子才可以,是的,你精通C++,你
可以很容易的回答我的问题,可是你
有没有想过你付出了多大的代价呢?我不是想过分的谴责C++,我本人喜欢C++,我甚
至建议一个认真的开发普通的应用系统的程序员也去学习一下C++,C++中的一些特性
,比如说指针运算\模板\STL几乎让人爱不释手,宏可以用几个字符代替很多代码,对
系统级的程序员来说,C++的地位是
不可替代的,Java的虚拟机就是C++写的。C++还将继续存在而且有旺盛的生命力。


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

--
※ 修改:·qyf 於 Sep 15 11:24:21 修改本文·[FROM: 192.168.0.182]
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.182]


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

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