达内LOGO和北京达内网址达内科技培训项目:Java培训 3G培训 Android培训 软件测试培训北京达内服务电话
C++培训
学C++有价值吗?

  编程语言往往是各领风骚三五年。最初,炙手可热的新语言是Java;后来换成了Python,随后Ruby抢走了风头;之后又换成了JavaScript.而最近备受宠爱的语言可能大家最想不到的。C++是一门什么语言?简单点来说,C++是一门接近于全能的语言。为什么说是接近呢?因为C++有一门语言是无法取代的,那就是汇编。再直白点来说,汇编对于寄存器的操作,C++是无法胜任的。不信?你试试用C++来改写一下PC寄存器看看?没辙吧?

  "接近"可以理解了,那么"全能"呢?我们知道,C++是兼容C的。不严谨地说,我们可以简单认为C只是C++的一个子集,所以C能做的,C++也能做,这个应该没有人有异议。为了方便,以下所描述的C++,在某些方面也代表C,之所以没采用C/C++这样的写法,仅仅是为了保护键盘而已。转回正题,那C#呢?JAVA呢?它们所能做的,比如网络方面的应用,B/S的方方面面,怎么就没见C++的身影呢?关于这个问题嘛,我们从另一个角度来看,C#和 JAVA的运行基础是什么?没错,是虚拟机。虚拟机是用什么写的?嘿嘿,C++。所以,你完全可以用C++先写一个虚拟机,然后再在虚拟机上解释C++语法。是不是很酷?当然,我想现实中是不会有人那么去做的。就像从深圳到上海,你可以坐飞机去,也可以骑自行车去。两者都能到达目的地,但我估计没几个人会选择后者。这就是效率问题。坐飞机,眼一睁一闭,就到了;骑自行车?呃,这时间就不好估计了。所以这领域,该让C#的,或是JAVA的,就让它们去折腾吧。至于C++,就让它干在一旁瞪眼好了,除非你一定想要耍耍酷。

  接着,我们就来看看桌面应用吧。所谓的桌面应用,我们狭义一点,就是桌面应用程序。总的来说,目前在这领域,C++确实还能占有一席之地。但这仅有的一席之地,也岌岌可危。在XP之前,因为系统都是没有预装.net framework,所以C++的对手无非就是VB和DELPHI,但这两者根本无法撼动C++这颗大树。虽然XP也能装.net framework,但为了一个应用而弄一个体积如此巨大的玩意,却有那么一点点的不现实。但后XP时代,世界就不一样了。Vista已经预装了.net framework,更不用说Windows 7。甚至还有传言,Windows 7的用户界面就是用C#搞定的。何况,C#还有杀手锏,能和Silverlight完美结合,大大减轻UI的开发难度。看起来,在今后的日子,在这个桌面应用领域,C++日子过得并不舒坦。在这领域,可能C++还能耀武扬威的,也许就剩下大型的3D游戏了。虽然用.net配合OpenGL或 Direct3D也能做C++的事,但效率却会大打折扣。虽然随着硬件的不断提升,可能这折扣会不断缩小,但毕竟还是存在的。只要折扣存在,那些游戏厂商就不会放弃C++,因为能优化,为何不优化?但,也许也仅仅限于此了。C++,它泪流满面。

  最后呢,就是嵌入式领域。在这里,是C++的天下,C++是永远的王者。它不是一个人在战斗!此刻,它灵魂附体!你见过那些RTOS是用C++以外的语言写的(再次重申,正如前文所说,这里的C++也代表了C)?至少我印象中没有。嵌入式linux支持.net?除非微软的脑袋秀逗了。也许有人说,WinCE不是可以支持.net么?支持是可以支持,但并不代表所有的WinCE设备都支持。因为WinCE是可裁剪的操作系统,也许是为了节约内存空间,也许是为了启动速度,或是由于别的杂七杂八的,甚至莫名其妙的理由,很多厂商根本就不会将.net这个会将系统膨胀至少4M的组件加到产品去。看看WinCE的内核代码,看看WinCE的 BSP包,哪里有.net代码的身影?全部清一色的C++。甚至于WinCE的应用程序,微软的态度也非常明确,在桌面只能.net使用的 Silverlight,在WinCE SP3添加之后,却是更改为了C++接口。王者,绝对的王者,根本就不可能有别的语言在这里将C++撼动!此时,C++站起来了!腰板直了!


苏州IT培训  
http://www.sztarena.org/

本页标签: 苏州达内 C++培训
客服系统