瞎谈C/C++是否被取代
时间:2010-09-06 来源:Xingg
最近开始回归C++阵型,一哥们说:“兜了一圈又回来了”。呵呵,这话也对也不对。C#凭借几乎涉及到所有方面的类库使之在开发速度方面有无可比拟的优势,全面向对象的编程让代码的可读性非常强,以后数据库,网页开发方面肯定需要用。
有人问“C/C++什么时候会被Java、C#等更高级的语言代替呢?”
声明:在这里只是想发表一下自己的看法,不想挑起语言之争,那是没意义的话题。 一个好的程序员,那会只懂一种语言呢?每一种语言都有各自的优势,结合实际情况,该用什么就用什么。
先来谈谈C/C++的优势:
一、底层性,直接操作内存。(windows和linux内核都是由汇编加C语言写的)
二、运行效率,由底层性来决定的。
Java、C#的优势:
一、开发周期短,强大的类库支持下,使得开发周期较C/C++短的多很多
二、易维护性,全面向对象的编程使代码可读性强;脱离底层,使得少于出现内存乍泄等问题。
三、硬件性能指数式的增长和类库自身的不断优化使之运行效率和C/C++的差距不断缩小,甚至某些方面用户根本察觉不出。
不少人从Java和C#的优势三中认为在此发展下去,C/C++且不总有一天会被取代?
我说是不可能的:(若C/C++到真被消失,那也只能是被另一种即涉及底层又兼顾开发方面的语言所取代。并且到那天,我们早就不知道哪去了)
第一、操作系统、虚拟机和设备驱动程序开发等涉及到底层的方面,C++是永远的王者。
第二、脱离底层“更高级”的语言他娘就是涉及底层的语言,泉眼都没了,泉水还能流么?追溯C#类库的源代码,发现最终调用了C/C++的函数,如果没了涉及底层的语言,C#就没类库用了。Java和C#为什么不需要操作内存,因为有东西帮它做了,什么东西呢?那东西肯定是涉及底层的语言所写的。
也许有人又追问“那涉及底层直接用汇编写就好了,何必用C/C++呢?”至于这个问题和“写软件全部用同时兼容底层又带面向对象的C/C++好了,何必用Java、C#呢?”一样不成立,不回答了。
再言:一个好的程序员,那会只懂一种语言呢?每一种语言都有各自的优势,结合实际情况,该用什么就用什么。