为什么35岁的C++依然能主导编程世界

jopen 10年前

为什么35岁的C++依然能主导编程世界

        英文原文:Why the 35-year-old C++ still dominates 'real' dev

        译者:小峰

        早在 1979 年,Bjarne Stroustrup 设计了 C++ 编程语言,并且 C++ 很快成为了无处不在的通用系统编程语言。现在尽管有 Java、Javascript、Python、Go,甚至是苹果的 Swift 和它竞争,但 C++ 依然处于主导编程世界的地位。

        今天在 Morgan Stanley 的科技访谈会上,InfoWorld 的编辑和 Stroustrup 畅聊了很多关于 C++ 的问题,还谈及了其他的编程语言,包括 Google 的 Go 语言和苹果的 Swift 语言。以下是我们的访谈记录。

        InfoWorld:

        您是怎么看 C++ 的未来的?现在有很多流行的脚本语言,像 Python 和 Javascript,当然还有很受欢迎的 Java,甚至是 Google 的 Go 语言,C++如何从这么多编程语言中存活下来,并且发展壮大?

        Stroustrup:

这是个很棒的问题。在这 20 年时间里,人们一直在预测 C++ 将会灭亡,但是很高兴的是它一直在成长和壮大。如果你进入到嵌入式领域,如果你想做一些复杂的图像处理,如果你需要实现一些微电子应用,如果你要开发一些 金融管理系统,那么 C++ 是你的首选。也许你很少能看到 C++ 的身影,但是在那些应用的底层,C++依然是撑起整个应用的顶梁柱。比如 Google、Amazon、搜索引擎等那些需要高性能的地方,C++就成了不可或缺的重要角色了。

        InfoWorld:

        Google 的 Go 语言越来越被受到关注,您对 Go 语言的前景怎么看?

        Stroustrup:

当然这些编程语言可以非常优雅地实现一些功能,但是这些编程语言关注的是如何让写代码变得便捷和优雅,却损失不少性能。当然,这些编程语言所做的贡献我们也是有目共睹的。

        InfoWorld:

        一些脚本语言的宗旨是解放程序员的双手,那么 C++ 是否也会逐渐倾向于这个目标?

        Stroustrup:

Oh,当然了。C++主要是为一些相当底层核心的应用设计的,它也经常会和其他的 脚本语言结合使用。一开始的时候,我是用 C++ 来实现任何的应用,然后我就在 Unix 上使用 shell 作为脚本语言设计一些底层应用。C++涵盖了以下优秀的特性:高性能、易伸缩、占用空间小、占用资源少等等。

        InfoWorld:

        苹果在今年 6 月份发布了 Swift 语言,您是否认为由于苹果公司的支持,Swift 将越来越受到开发者的关注?

        Stroustrup:

我认为是的,之前他们关注 Objective-C,这回 Swift 真正进入了这些开发者的领域了。

        InfoWorld:

        C++面临两大挑战:一方面要满足开发者实现高性能、可扩展、搞可靠性的应用程序,另一方面又需要能够帮助开发者实现可维护的代码。关于这两个问题您怎么看?

        Stroustrup:

我正要解释这两个问题,第一个问题是要尽可能的抽象和更高效地利用硬件资源,而后者则需要能尽可能简化代码的编写过程,从C++ 11 到C++ 14,已经具备这样的兼顾能力了。

今年我们会发布一个新的 C++ 版本,它参考了C++ 14 的标准。当你在研发大型的产品时,也许C++ 11 在某些方面已经无法满足你的需求,但当出现C++ 14 时,情况就会完全改变了,C++总是在不停地进步着。

        InfoWorld:

        关于程序的安全性问题,您怎么看?程序员是否需要关注所有的安全问题?C++是否比其他编程语言安全呢?

        Stroustrup:

我非常热衷于解决硬件的安全问题。在编程语言方面,如果你想编写优秀的程序,那么你的代码一定要确保类型安全。你可以在 C++ 中实现这一要求。不要总是围绕着一些低效的功能转,总的来说,安全问题是系统问题。

        InfoWorld:

        您是否还要探讨关于 C++ 或者软件开发的其他任何问题?

        Stroustrup:

我们的目标是让软件开发更加专业化。我们的社会中很多事情都是不能被打破的,其中大部分都需要依赖软件。作为开发者,我们需要整体考虑到我们的系统,编程语言和开发工具只是其中的一部分,我们需要探究如何培养开发者,以及如何将重点放在程序的可靠性上。

来自: 码农网