C的主要缺陷

时间:2011-04-01 04:05:30

标签: c language-design

C语言的主要缺陷是什么?如何在采访中回答这个问题?我的意思是C Lack现在与新语言相比有什么作用?

4 个答案:

答案 0 :(得分:9)

C可能是有史以来发明的最重要的单一语言。

C真正完成了所有直接目标,然后更多。它实际上没有“缺陷”,本身,而是选择,它将其定义为理想的系统实现语言,并且作为可接受但不完美的应用程序语言。

当20世纪70年代早期的C爆发时,它正在与Fortran,Basic,Cobol竞争,特别是组装。正如他们所说,它吃了各自的午餐,并将它们作为实施语言埋葬。尽管很少有程序可以在Fortran中表达而不是C语言,但Fortran单独存活了。

到目前为止,C偶尔会在the Tiobe index上排名第一,仅次于更专业,也更疯狂的Java。

当然,对于动态和符号应用程序,C可能无法与Ruby,Lisp或Python进行比较,但它们当时并不存在,并且对实现没有用。这三个通常都是用C语言实现的,有点“笑到最后”。 Ruby内部有200,000行C语言。

所以是的,它没有实现所有可能的编程范例。并回答您的具体问题:

  1. C不反光
  2. C没有垃圾回收
  3. C不直接实现闭包
  4. 静态类型:C是最终的“编译时”语言处理器。
  5. C不是直接面向对象的,C中的类似对象的包往往是笨重的,没有人使用它们。
  6. C不是类型安全的。 (但可以使用类型安全的风格。)
  7. C不是内存安全的。 (不保证,但有时候可以使用大多数安全的方式。)
  8. 运营商的优先事项太多了。
  9. 某些运营商优先级似乎没有最有用的优先级。
  10. C纯粹是必要的。
  11. 总体而言,C是一种结构化的高级语言,其中可以构建任何 ,但是它没有反射和面向对象的属性,往往允许更大更复杂程序和抽象。写作C的天才可以做任何事情,但是当我们的问题领域允许时,我们大多数人应该使用更高级别的语言。

答案 1 :(得分:2)

不要误会我的意思,我喜欢C,但没有命名空间是一个真正的痛苦。查看任何大量使用C库的代码,并尝试以不同的方式告诉我。

答案 2 :(得分:1)

我不认为C有缺陷。它是一种强大的语言,已被用来编写大量成功的软件。

与较新技术相比,C需要更多工作并需要更多技能。此外,较新的语言具有强大的新功能。出于这些原因,C不再使用了太多。但这几乎不会使它有缺陷。

答案 3 :(得分:0)

呃......不确定你的意思是有缺陷的,但是核心肯定不是专注于OO编程,而且还有更多的工作来控制资源。