首页 > 编程语言 > 谁是代替C语言的“潜力股”?
2016
01-09

谁是代替C语言的“潜力股”?

在去年十一月的时候,我参与了《Which language has the brightest future in replacement of C between D,Go and Rust?And Why?》(译文:《D、GO、Rust 谁会在未来取代 C?为什么?》)这篇文章的翻译工作。但是依我看D语言和Rust很难成为代替C语言的语言。虽然不能否认从Rust 精确定义的语言和技术方法的深度都可以看出,它一门很好的语言。但是复杂语法让很多程序员敬而远之。

  有潜力但力不从心的Java

  不得不说,就Java良好的跨平台性这一点来说,Java还是有潜力取代C语言的。但是自从Java随着太阳公司(SUN)被甲骨文公司(ORACLE)收购以来,就显得有一些力不从心。特别是最近甲骨文和谷歌之间的一些事情,让Java显得有些尴尬。

  如果我们把衡量一个编程语言能不能成为像C一样的语言,除了运行速度和库的丰富之外,我们还必须考虑,这个语言能不能写编译器、操作系统和数据库。显然的我们考虑速度的话,那么内核是效率优先的,除了汇编,似乎并没有什么语言有可能比C效率更高。但是并不是说Java不能写,至少效率不如C。(Jnode操作系统除启动程序之外由Java编写,启动程序由汇编语言编写)

  成长中的Go

  Go目前是定位在服务器端的编程语言。它专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。

  并且Go已经实现了编译器。但是如果一个领域中没有现成的库的话,上手都是问题。作为一个年轻的编程语言, Go需要的是时间。

  C语言的亲儿子C++

  C++进一步扩充和完善了C语言,是一种面向对象的程序设计语言。一般大部分的C代码可以很轻易的在C++中正确编译,不过仍有少数差异,导致某些有效的C代码在C++中失效,或者是在C++中有不同的行为。最常见的差异之一是,C允许从void*隐式转换到其它的指针类型,可是C++并不允许。

  作为C语言的亲生骨肉,C++并不是那么好上手,并且自从1983年C++诞生以来的,C++似乎一直也没有代替C语言,虽然最开始的一段时间炒的挺火的。但是最近好像又出现走下坡路的趋势了。

  C语言会退役吗

  虽然很多语言都会说,它们的运行速度和效率和C一样快。库和C一样丰富。但是C语言就像是汇编语言一样,即使很少使用,也不会面临退役。何况就目前而言C语言的垄断地位虽然不断被挑战,但也从未被超越。

编程技巧