why c++ considered a bad language?为什么c++被认为是一门糟糕的语言?

这篇译文来自于国外著名的问答网站quora,http://www.quora.com/Why-is-C++-considered-a-bad-language,其中有一个人的回答到目前为止得到了256个赞。下面是其大意。本人水平有限,翻译不免有错,还望读者们指正,谢谢。


我想说的是,没有任何一门语言是完美的。完全没有理由说c++是一门垃圾的语言。相反,它是一门很好的语言。但是许多开发者认为它是一门很糟糕的语言。或许他们因为如下原因:


首先,对于c#/java程序员:
  • 他们不习惯没有’Object‘作为所有类的基类。Object使继承更加容易,但是它会额外增加虚表,虚表会给内存和速度带来负担。
  • 他们会把c++当作C一样对待,不会面向对象。
  • c++允许指针指向函数(java程序员讨厌指针,因为指针不是纯粹的面向对象)。
  • c++没有反射机制(运行时类型识别没有被大部分程序员用到)。
  • 没有垃圾回收机制(就算是你自己回收,但是语言本身没有这个特性)。
  • 你必须自己分配与回收内存资源。
  • 你可以C和c++混着用(面向对象程序员感到困惑)。
  • 模板对于C#程序员太复杂又无用。
  • 跨平台需要重新编译代码。
  • 认为java/C#比C++快。

对于C程序员:
  • 我用C就足够了。
  • C++太慢。

对于新手:
  • C++太难了。
  • C++太复杂了。

对于经验丰富的程序员:


C++不垃圾,但是需要指出几点:

  • 它缺乏一个一致的框架,可以便携地使用。Boost简直就是地狱,而标准库虽然逐渐增加了对time、多线程的支持,但是仍然有许多特性没有支持。
  • C++代码巧妙又充满玄机。你可以用宏定义也可以用模板。C and C++混合使用使代码可读性糟糕。
  • 写模板函数太复杂。
  • 有时候语法很复杂。
  • 隐藏了复杂度,使有些声明开起来像O(1)。例如x=a+b会消耗时间复杂度O(n^3)。罪魁祸首就是运算符的重载、算法库以及调用。


用C++可以做精彩的事儿,比如说建立一些框架(像Qt)。但是用C++编程会带来不期望的负面效果,一些程序员会依此掉坑。(可以参考一下大名鼎鼎的Linus Torvalds 对c++的一些看法)。


用c++编程会变得一团糟的主要原因或许是:

  • 过度相信OOP,或者过度设计。
  • 一些程序员认为实现设计比运行结果重要,他们不去关心速度、效率和内存消耗。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值