C有什么替代品吗?

时间:2010-07-27 05:43:22

标签: c programming-languages

C ++经常被吹捧为C的演变,但事实并非如此。为我正在寻找的那种语言画一个类比:

  • Perl,Python,Ruby,Groovy
  • C ++,D
  • Java,C#
  • C,Fortran,Modula-2?,Pascal ?, Go ?, Rust?

是否有任何提议或实现的语言与C相同(巨大)的利基,旨在作为替代,同时保持对操作系统,高性能,嵌入式和其他角色的所有适用性?

5 个答案:

答案 0 :(得分:6)

我认为这个问题及后续讨论的问题是很少有语言可以取代其他语言。当然,当你试图澄清和捍卫你的一些分组时,他们共享相似的功能集或完成类似的事情,但最终,我认为没有人会坐下来写一种语言,旨在取代另一个。更有可能的是语言设计者想要实现一个目标,并且会选择已经完成某些语言的方面。例如,看一下Go,它旨在提高有关超高性能系统编程的一点点,这可能与C竞争。但是,如果你看一下关于项目任务的常见问题解答,他们不会寻求替换C,而只是扩充它并解决它面临的问题(例如依赖管理来命名)(所以也许这就是你的答案)正在寻找。

所以,真的,某事物是否是其他东西的演变,完全取决于你从中检验和评估进化的视角。 C ++可以被认为是C的演变,因为它引入了一个新的特性集(OO编程),许多人认为它在系统设计中向前迈进了一步,同时仍然保留了与C代码类似的语法和兼容性。然而,它并不完全是一种进化,因为它也缺少一些使C成为当今语言的特性。 没有一种语言可以做任何事情(除了可能Lisp ;-)我小孩,我小孩)并且永远不会。没有一种语言没有权衡。使Web开发变得简单的抽象是同样的抽象,使得低级系统开发变得不可能(或者过于困难)。所以我真的认为很难说X是Y的演变。相反,我会说“我想做W而且我知道我可以使用语言X但是有一些东西可以更好地实现我的A,B和C目标?”不幸的是,编程语言不是黑白的,不足以制作出像这样的全面陈述,就像你在编程中做出的每一个决定一样,这是关于权衡。

答案 1 :(得分:5)

下面的图片会比我写的更多:

picture

答案 2 :(得分:5)

也许Google会Go language。至少,这就是我期望谷歌的Go团队希望它成为的。

答案 3 :(得分:4)

Pascal将是一个等价物,Modula-2也是如此。

Mozilla还有一种名为Rust的新语言,这是一种非常好的现代语言,针对与C / C ++相同类型的应用程序

https://www.rust-lang.org/

答案 4 :(得分:3)

实际上,C有不止一个利基。对于低级系统编程,C取代了特定于平台的汇编语言,并没有真正挑战该领域的C语言。 C ++将是唯一的其他可能的候选者(BeOS,许多设备驱动程序等)。

C也被用于高性能数字代码。在该领域,FORTRAN仍然具有优势,还有许多其他挑战者(C ++,Matlab,Numpy,Fortress,Scala)。

在某种程度上,C是具有跨平台可移植性的最低公分母。