浏览主站 | 站长合租 | 新闻资讯 | 站长学院 | 站长盈利 | HTML教程 | 网址导航 | 站长周刊 | 会员投稿 | 滚动新闻 | RSS
发新话题
打印

关于两代语言.C/C ,java/c#

关于两代语言.C/C ,java/c#

[[wiki]wiki[/wiki]][/wiki]这可不是我写的,我只是看到觉得不错,才贴的哦。


不要以为这个题目是耸人听闻,但就目前的形势来看c/c  是需要退出舞台或者说的婉转一点是需要更新换代了.
我想在未来的一两年里,作为[wiki]程序[/wiki]员等级评判的[wiki]标准[/wiki]之一c/c  (不管是mfc还是bcb)将会让位给三种[wiki]编程[/wiki]语言,1.[wiki]SUN[/wiki]的java2.[wiki]windows[/wiki]平台上的c#3.[wiki]XML[/wiki]
为什么这么说呢,我认为最大理由是目前的应用程序正在从基于独立的操作[wiki]系统[/wiki],传向基于internet平台.
我们以前开发应用程序都是依赖于平台的功能调用,mfc,bcb都是这样.而现在日益火热的internet编程却最不想关心的就是某一个平台的调用,譬如说要实现[wiki]B2B[/wiki]的[wiki]电子[/wiki]商务那么就需要做不同平台的集成,如果我是[wiki]程序员[/wiki]我最care的就是如何实现商务[wiki]逻辑[/wiki]
而不是各种平台之间的[wiki]通信[/wiki]和[wiki]管理[/wiki].那么我们最迫切需要的就是一种与各种平台调用无关的语言,这中语言只注重程序逻辑的设计而不涉及平台的调用.而我们熟悉的c/c  却恰恰不是为这个而设计的(赫赫这也不能怪c/c  在70年代谁能知道现在internet的情况呢).c/c  的最初设计目礫wiki]氖[/wiki]俏松杓芠wiki]Unix[/wiki]产生一种介于汇编和高级语言之间的一种开发高效而性能不低的语言.他要比其他任篬wiki]胃[/wiki]呒队镅远家匦南低车腫wiki]物理[/wiki][wiki]结构[/wiki],譬如一直是毁誉搀半的指针.指针之所以强大就是应为涉及了系统物理内存的管理.他可以使得程序员和系统之间成为一种半透明状态.但是就是这种半透明的状态让指针带来了更多的不稳定性.
c/c  在面向Internet的编程中却无任何优势可言.跨平台的[wiki]电子商务[/wiki][wiki]软件[/wiki]最害怕顾及各种平台之间的天差地别的系统调用,最害怕时不时的由于内存泄漏而crash.c/c  的优势在这里却成为了劣势.即使在windows平台上开发基于windows dna的solution
用的最多的还是vb做的dcom而不是[wiki]VC[/wiki]的atl做的dcom,因为c/c  虽然高效但是太容易
出错,如果不是很小心的释放内存nt很快就会资源不足.
java就是最先看到这种情况,他用jvm实现了平台无关用内存回收实现了稳定健壮.但是相当多的c/c  程序员抱怨java太慢了.的确即使到java2[wiki]速度[/wiki]仍然是一个大问题.我曾经是一个c/c  坚决拥护者在许多论坛里和java程序员打笔仗.但是我逐渐意识到面对与internet平台而不是特定的[wiki]操作系统[/wiki]的时候java的速度问题往往是一个小小的瑕疵.我们可以[wiki]想象[/wiki]那一个电子商务[wiki]网站[/wiki]会用我们手头的pc做[wiki]服务器[/wiki],他们不是sun的e1000就是ibm的[wiki]RISC[/wiki]6000.在这种平台上java这点速度问题只是a peice of cake.程序员只需要专注与商务逻辑的编程,而不必要关心数组是否越界,[wiki]对象[/wiki]内存是否释放更不需要关心是不是unix和windows的系统调用不一样.
[wiki]微软[/wiki]的c#可以说是一种java与c/c  的杂合体,他可以回收内存,可以平台无关.但是
他又可以实现一些java没有的功能譬如在标记的程序段内用指针自己管理内存,可以实现操作符的重载等等.为什么要这样做我想也许c#还肩负了一定的面向操作系统开发的任务例如winform.他基本上的[wiki]思想[/wiki]和java[wiki]类[/wiki]似,但是实现的方法又不一样他不通过jvm解释中间代码,而是吧[wiki]源代码[/wiki]编译成p代码然后通过CLS库和JIT在平台上及时编译为100%的本地代码来执行.他的pe代码是独立于平台的,但是cls和jit却根据不同的平台而设计.因此c#的平台独立有点类似于c/c  在不同平台上的移植使得c#比java来的更快.而且微软还许诺cls和jit不仅针对c#还可以针对任何语言譬如pascal,smaltalk,basic因此将来覽wiki]锌[/wiki]赡芩械谋喑逃镅远际强梢云教ㄎ薰氐

TOP

发新话题