欢迎来到天天文库
浏览记录
ID:38806145
大小:23.70 KB
页数:9页
时间:2019-06-19
《程序开发目前主流开发技术的分析和总结》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、程序开发:目前主流开发技术的分析和总结主流的程序设计语言:C++、Delphi(ObjectPascal)、Java、C# 桌面应用程序框架:MFC、VCL、QT、JavaAWTSWING、.Net 企业应用程序框架:WindowsDNA(ASP、COM、COM+)、J2EE、.NetFramework 开发工具:VisualBasic、Delphi、VisualC++、C++Builder、VisualC# *程序设计语言:C++Delphi(本来应该是ObjectPascal,但为了简单,我就语言和工具混为一谈吧)Java
2、C#(虽然他刚刚推出,但因为微软为之倾注了大量心血,一定会成为一种重要的开发语言) *桌面应用程序框架:MFCVCL *企业应用程序框架:WindowsDNAJ2EE.Net *COM技术:我单独提出这项技术,是因为它无法简单的被视为语言、桌面应用程序框架或企业应用程序框架,它与这些都有关系。 2.1程序设计语言 2.1.1C++语言的演进 最初要从二进制代码和汇编说起,但那太遥远了。我们就从面向过程的语言说起吧(包括BasicCFortranPascal)。这种面向过程的高级语言终于把计算机带入了寻常的应用领域。
3、其中的C语言因为它的简单和灵活造就了Unix和Windows这样的伟大的软件。 面向对象的语言是计算机语言的一个合乎逻辑的进化,因为在没有过多的影响效率、简单性的前提下提供了一种更好的组织数据的方法,可使程序更容易理解,更容易管理——这一点可能会引出不同意见,但事实胜于雄辩,C++终于让C语言的领地越来越小,当今还活着的计算机语言或多或少的都具备面向对象的特征,所以这一点并不会引起太多困惑。C++的成功很大程度要归因于C,C++成为它今天的样子是合乎逻辑的产物。因为在面向过程的时代,C几乎已经统一天下了。今天著名的语言象JavaC#都从
4、C借鉴了很多东西,C#本来的意思就是C++++。其实C++曾经很有理由统一面向对象程序设计语言的天下来着,但可惜的是,C++太复杂了。即使是一个熟练的程序员,要你很清楚的解释一些问题你也会很头痛。举几个还不是那么复杂的例子来说: 对=的重载成员转换函数拷贝构造函数转化构造函数之间有什么区别和联系呢? 定义一个类成员函数private:virtualvoidMemFun()=0;是什么意义呢? int(*(*x(int))[4])(double);是什么意思? 还有其他的特征,比如说可以用来制造一种新语言的typedef和宏(虽
5、然宏不是C++的一部分,但它与C++的关系实在太密切了),让你一不小心就摔跤的内存问题(只要new和delete就可以了吗?有没有考虑一个对象存放在容器中的情况?)……诸如此类,C++是如此的复杂以至于要学会它就需要很长的时间,而且你会发现即使你用C++已经好几年了,你还会发现经常有新东西可学。你想解决一个应用领域的问题——比如说从数据库里面查询数据、更改数据那样的问题,可是你却需要首先为C++头痛一阵子才可以,是的,你精通C++,你可以很容易的回答我的问题,可是你有没有想过你付出了多大的代价呢?我不是想过分的谴责C++,我本人喜欢C++,
6、我甚至建议一个认真的开发普通的应用系统的程序员也去学习一下C++,C++中的一些特性,比如说指针运算模板STL几乎让人爱不释手,宏可以用几个字符代替很多代码,对系统级的程序员来说,C++的地位是不可替代的,Java的虚拟机就是C++写的。C++还将继续存在而且有旺盛的生命力。2.1.2Java和C# Java和C#相对于C++的不同最大的有两点:第一点是他们运行在一个虚拟环境之中,第二点是语法简单。对于开发人员而言,在语法和语言机制的角度可以把Java和C#视为同一种语言。C#更多的是个政治的产物而不是技术产物。如果不是Sun为难微软
7、的话,我想微软不会费尽心力推出一个和Java差不多的C++++,记得VisualJ++吗,记得WFC吗?看看那些东西就会知道微软为Java曾经倾注了多少心血。而且从更广泛的角度来说,两者也是非常相似的——C#和Java面对的是同样的问题,面向应用领域的问题:事务处理、远程访问、Webservice、Web页面发布、图形界面。那么在这一段中,我暂且用Java这个名字指代Java和C#两种语言——尽管两者在细节上确实有区别。Java是适合解决应用领域的问题的语言。最大的原因Java对于使用者来说非常简单。想想你学会并且能够使用Java需要多长时
8、间,学会并且能够使用C++要多长时间。由于Java很大程度上屏蔽了内存管理问题,而且没有那么多为了微小的性能提升定义的特殊的内容(比如说,在Java里面没有virtual这个关键
此文档下载收益归作者所有