C++相比于其他语言的优势
2011-09-02 14:32
176 查看
传统上认为,C++相对于目前一些新潮的语言,如Java、C#,优势在于程序的运行性能。这种观念并不完全。如果一个人深信这一点,那么说明他并没有充分了解和理解C++和那个某某语言。同时,持有这种观念的人,通常也是受到了某种误导(罪魁祸首当然就是那些财大气粗的公司)。对于这些公司而言,他们隐藏了C++同某某语言间的核心差别,而把现在多数程序员不太关心的差别,也就是性能,加以强化。因为随着CPU性能的快速提升,性能问题已不为人们所关心。这叫“李代桃僵”。很多涉世不深的程序员,也就相信了他们。于是,大公司们的阴谋也就得逞了。
一般认为,使用Java或C#的开发成本比C++低。但是,如果你能够充分分析C++和这些语言的差别,会发现这句话的成立是有条件的。这个条件就是:软件规模和复杂度都比较小。如果不超过3万行有效代码(不包括生成器产生的代码),这句话基本上还能成立。否则,随着代码量和复杂度的增加,C++的优势将会越来越明显。造成这种差别的就是C++的软件工程性。在Java和C#大谈软件工程的时候,C++实际上已经悄悄地将软件工程性提升到一个前所未有的高度。这一点被多数人忽视,并且被大公司竭力掩盖。
语言在软件工程上的好坏,依赖于语言的抽象能力。从面向过程到面向对象,语言的抽象能力有了一个质的飞跃。但在实践中,人们发现面向对象无法解决所有软件工程中的问题。于是,精英们逐步引入、并拓展泛型编程,解决更高层次的软件工程问题。(实际上,面向对象和泛型编程的起源都可以追溯到1967年,但由于泛型编程更抽象,所以应用远远落后于面向对象)
一般认为,使用Java或C#的开发成本比C++低。但是,如果你能够充分分析C++和这些语言的差别,会发现这句话的成立是有条件的。这个条件就是:软件规模和复杂度都比较小。如果不超过3万行有效代码(不包括生成器产生的代码),这句话基本上还能成立。否则,随着代码量和复杂度的增加,C++的优势将会越来越明显。造成这种差别的就是C++的软件工程性。在Java和C#大谈软件工程的时候,C++实际上已经悄悄地将软件工程性提升到一个前所未有的高度。这一点被多数人忽视,并且被大公司竭力掩盖。
语言在软件工程上的好坏,依赖于语言的抽象能力。从面向过程到面向对象,语言的抽象能力有了一个质的飞跃。但在实践中,人们发现面向对象无法解决所有软件工程中的问题。于是,精英们逐步引入、并拓展泛型编程,解决更高层次的软件工程问题。(实际上,面向对象和泛型编程的起源都可以追溯到1967年,但由于泛型编程更抽象,所以应用远远落后于面向对象)
相关文章推荐
- python与其他语言相比有什么优势?
- 使用SWIG实现C/C++与其他语言间的互相调用 zz
- 虽然我可能最近在学其他语言,但我最喜欢的还是 asm,c,c++
- extern "C" 的含义:实现C++与C及其他语言的混合编程
- 【sublime text系列】C++设置输入(其他语言类似)
- 扩展Python__在python脚本中使用其他语言(c/c++/java/c#)编写的模块
- 与LSGO一起学“第1章 初识C++(1.5 C++与其他语言的区别)”
- 【cocos2d-x从c++到js】08:JS脚本语言的优势与一些问题 推荐
- 利用 C++ Interop 封装 ISO C++ 对象, 供其他 .Net 语言使用
- Lisp相比其它语言有什么优势和劣势?(此标题于201...
- 利用 C++ Interop 封装 ISO C++ 对象, 供其他 .Net 语言使用
- VC++ 提高C++程序运行效率10个简单方法(其他语言程序参考)
- 一道面试题:C++相比C#或者java的优势到底在哪里
- c/c++动态库(DLL)调用,c#等其他语言调用c/c++的DLL
- Android突破八.使用SWIG将C/C++库移植到其他语言中
- 使用SWIG实现C/C++与其他语言间的互相调用
- NetSuite ERP相比其他ERP系统有什么优点及优势!
- SWIG实现C/C++与其他语言间的互相调用-----
- Visual C++与其他开发语言比较的优势
- future相比于其他并发设计模式的优势(“回调驱动(多线程环境下)”、“消息/事件驱动(Actor模型中))