一、引言我为什么要写这篇文章
首先,我要限定我文章的范围,我讨论的问题局限于桌面应用开发领域和企业应用开发领域,所以我的结论并不适用于整个软件开发界,比如我说C语言已经退出历史舞台,这对于写嵌入式系统的人和编写操作系统内核的人来说显然是错了。我写这篇文章的目的主要是:
*简单的介绍并评价当前主流技术
*比较当前的主流技术
*预计技术的演变
如果你想做程序员或者已经是个程序员,你可能会面对这些困惑:
*学什么语言呢?Delphi、C 、VB、Java、C#、PHP、Python?
*选择什么开发工具呢?Delphi、VC、C Builder、JBuilder?
当你已经入了门,有了一定的基础之后(可能已经通晓了几种语言),你会面临进一步的困惑:
*MFC和VCL之间是什么关系?
*J2EE到底是什么?.net到底是什么?两者有什么本质的区别,我应该学习哪一个呢?
*COM那么复杂,为什么很多地方都用到它?我必须学习它吗?
如果是作为一个软件公司,如果不是那么大,如果你的公司还没有一个真正的技术上的灵魂人物,那么你也会面临同样的困惑。技术问题纷繁复杂,让你不知所从,而且真正的精通每一项技术都需要巨大的时间和人力的投入,你怎么办?选择哪种技术作为公司的主流技术呢?选择的方向是否正确是个关乎你的公司的生死存亡的问题。你面临着这些困惑吗?如果是,那么请让我试着为你拨云见日。
我的故事
在我上大学之前,我从没见过计算机。大学的时候,正是Dos和FoxBASE的年代,也正是计算机软件开发世界几件伟大的事情发上的时候:(Windows3.1、BorlandC 3.1、VisualBasic1.0的推出也是伟大的事情,但那时候我还不知道计算机为何物)Widnows95推出,并开始应用;VisualBasic5.0推出,开发工具中第一次出现了成熟的、被广泛应用的AutoCodeCompletion技术;Java推出;ASP技术开始盛行,WindowsDNA技术被理解和接受;标准C
诞生;VisualC 6.0推出;J2EE规范推出。
成为一个程序员对我而言并不顺利,因为我不是科班出身。我入门的程序语言是FoxBASE,这让我一直对FoxBASE有种特殊的感情,我也正是通过VisualFoxPro3.0转写Windows程序的,如果没有它,我也许就不会成为一个程序员了。后来,在大学期间接触到了InterDEV,那是个写ASP程序的开发工具,还有Java,也是那时候接触的,当时有点盲目崇拜的意思(我想我喜欢Java的一个原因可能是刚开始学C的时候很受挫折)。毕业之后,我就是凭借着自己写的一个ASP网站找到了自己的第一份工作——说来惭愧,我从来也没有成为一个C程序员。
我真正的熟悉Java是在我翻译了一本Java数据结构的书和写了一套完整的GIS系统之后(说起此事,我要感谢一下我的公司,但因为这些故事与本文的主题无关,所以这里就不多说了)。再后来,我自己学习了标准C 和COM技术。有点像履历表了是吗?提到这些,我只是希望作为读者的你能够了解一下我的知识体系,从而能够知道我大概要讲些什么;同时也希望你能够原谅我可能犯的错误——我在这里说的话,并不一定就是最后的结论,虽然“共同探讨”这个词几乎是粗制滥造的书的作者专用语了,但我在这里引用它是真诚的,我愿意看到你的反馈。要涉及的话题在开始文章的正题之前,我先大概地介绍这篇文章将会涉及到哪些知识。如果你是初学者,希望你不要被吓倒,这虽然是一篇技术文章,但我不会过多的讨论技术细节,如果你不懂我说的这些东西,也没关系,我本来就希望通过我的文章帮助你做出一个选择,不再走很多人已经走过的弯路,你这要记住结论就可以了,随着你知识的增长,以后你会渐渐明白;如果你已经通晓了这些技术或其中的大部分,那么我相信读了这篇文章你会有一些另外的收获。