您是如何看待C++11的?
对于我来说,这是一个最最容易被问到的问题。它可能是被问到的次数最多的问题。让人吃惊的是,C++11就像一种新的编程语言:跟以前旧的C++不同,C++11的各个部分被更好地组合在一起,并且我找到了一种更加自然的高层次的编程方式,而且同样有很好的效率。如果你仅仅是将C++当作更好的C,或者是一种面向对象语言,那么你将错过其中非常精彩和关键的东西。C++11中的抽象机制将比以前更加灵活,并且更加经济实惠。就像古老的“咒语”一样:如果你的头脑中有一个想法或者对象,想要在程序中直接对其进行表现,那么,你需要对现实世界中的对象进行建模,并在代码中对其进行抽象。现在这一过程更加容易了:你的想法将直接对应成为枚举、对象、类(例如,对默认值进行控制)、类的继承(例如,继承的构造函数)、模板、别名、异常、循环、线程等。这将远远好于以前那种简单的“以一双鞋适应所有脚”的抽象机制。
我的理想是,使用编程语言的各个功能来帮助程序员从另外一个角度思考系统的设计和实现。我认为C++11可以做到这一点。并且,不仅仅是为了让C++程序员可以做到,还包括更多的习惯于其它编程语言的,在更广泛的领域内进行系统编程的程序员都可以做到这一点。
换句话说,我依然是一个乐观主义者。