设为首页 加入收藏

TOP

专访Andrei:C++会带给我们什么(1)
2013-10-07 00:03:39 来源: 作者: 【 】 浏览:70
Tags:专访 Andrei 带给 我们 什么

【51CTO.com独家特稿】采访嘉宾简介:Andrei Alexandrescu是新一代C++(www.cppentry.com)天才的代表人物,他创造力非凡,思维方式不循常理,剑走偏锋,却往往能收到奇效;善于在各种“标准”中游走,发现提升空间,有“庖丁解牛”之功力。其他身份:华尔街咨询师,摇滚乐队鼓手,古典吉他演奏家,罗马尼亚伞兵。

Andrei Alexandrescu日前接受了51CTO记者孙淑娟的专访,就C++(www.cppentry.com)当前的情况进行了广泛而深入的讨论,他号召C++(www.cppentry.com)程序员要保持乐观和信心,继续努力开发优秀的软件。在整个采访过程中,Andrei Alexandrescu给出了C++(www.cppentry.com)五大方面的看法。

前段时间,Linux之父对C++(www.cppentry.com)进行了炮轰,说它是糟糕程序员的垃圾语言,可谓是一石激起千层浪,引起众多程序员朋友的关注和讨论。51CTO网站还特别制作了专题“C++(www.cppentry.com)是垃圾语言?!”,博引国内外专家的正反观点。在我们51CTO网友投票结果中对“您认为Linux之父为什么要对C++(www.cppentry.com)进行炮轰呢?”的原因分析里,认为“Linux之父之前在C++(www.cppentry.com)编程(www.cppentry.com)上吃过大苦头”占到最多的37%的比例。我们就先以这一事件作为引子,请教C++(www.cppentry.com)的天才作家Andrei Alexandrescu先生对这一事件的的态度来开始我们的对话。

1、Linux之父犯不上炮轰C++(www.cppentry.com)  因为他不必用C++(www.cppentry.com)

Andrie Alexandrescu先生首先肯定C++(www.cppentry.com)很好,希望程序员不要对它失去信心和乐观。因为Linux之父Linus Torvalds是天才级人物,擅长C语言,作为出色的程序员,可以和最高水平的团队一起工作,从他的技术能力角度来说,C++(www.cppentry.com)是不必要的,因为他使用C语言就可以做到他想做的所有事情。可是,这也有一个限制。因为对于不同的项目,不同水平的人会有不同的选择。在你做大项目时,需要和其他不同水平的人合作,那些C++(www.cppentry.com)相比C多出来的特征,如面向对象和模板,就变得很必要了。

另外,对于天才级的程序员,他都会钟爱于自己使用的工具,所以,我们可以理解他前面提到的那种对待C++(www.cppentry.com)的态度。

2、C++(www.cppentry.com)带给程序员的心智包袱是C语言这一负担带来的副作用

C++(www.cppentry.com)带来的对一个程序功能实现的多种可选择的处理方式,增加了程序员的心智负担方面,Andrei会给我们C++(www.cppentry.com)程序员那些好的建议呢?

Andrie Alexandrescu:因为C++(www.cppentry.com)是基于C语言的基础逐渐发展起来的,它的这一自身限制使它无法去除C语言的负担,不可能达到精致的设计,实现对每个问题有一个确定答案。确实是C++(www.cppentry.com)如果没有C语言的负担,就不会增加这么大的心智负担。比较幸运的是,C++(www.cppentry.com)拥有很强的惯用法,同时,在我们的社区存在大量成熟的经验可以供大家参考!C++(www.cppentry.com)的那些惯用法和C语言对等的功能相比起来,功能要强大,具有很强的抽象性和性能效力。一旦你掌握了这些惯用法,成为出色的程序员,肯定要比那些只会用C语言的程序员要更具有竞争力。其实,这也符合一个规律,当你实际上需要更多的特征时,就需要承担更多的东西。

另外,从我们的51CTO网友的投票结果来看,“您认为要不要学习C语言呢?”的结果中“当然要,C语言是入门必学的基础语言”的支持率是66%,可见C语言拥有良好的群众基础。

3、程序需求:高性能要求+强的抽象和建模能力=必选C++(www.cppentry.com)

C++(www.cppentry.com)目前处于一种被夹攻的态势,一方面在企业级系统开发(数据密集、业务规则复杂多变)中,C++(www.cppentry.com)已经基本被Java和C#等淘汰出局,另一方面在系统编程(www.cppentry.com)和嵌入式等更接近硬件的领域,又遭到C的强烈狙击。那么,Andrei Alexandrescu先生是如何看待C++(www.cppentry.com)与其他语言的比较呢

Andrie Alexandrescu:C++(www.cppentry.com)相比于10年、20年之前,它的应用领域确实是狭窄了,这是事实。但是,如果在你的应用中,有两个需求同时发生,你就必须要考虑采用C++(www.cppentry.com),第一是对性能的要求要高,还有一个是有很强的抽象和建模能力。这两种能力,很多语言只具备其中一个,比如C语言和Phyhon有性能,而Java和C#有很强的建模能力,还有Ruby、Leda等。但是,目前同时具有这两种能力的,只有C++(www.cppentry.com)。

在C++(www.cppentry.com)与其他语言的比较上,Andrei Alexandrescu先生给出了一个非常有趣的回答(这个比喻的讲解援引于另一个C++(www.cppentry.com)的著名作者Scott Douglas Meyers的说法)。让我们换种角度来看,哪种语言写出来的软件最挣钱?你可以看到世界上最挣钱的程序可能是微软的Office,这个程序是用C++(www.cppentry.com)写的。其次是微软的Windows,实际上也是用C++(www.cppentry.com)写的。而Java和.Net在企业级应用这块,只是为了把这些软件卖出去,所花的市场经费最多。而且,他认为用C++(www.cppentry.com)写出的软件最挣钱这件事上,在他所能预见到的未来不会发生变化。

4、C++(www.cppentry.com)Ox标准的出台可能还要等待一年时间

根据51CTO记者的了解,C++(www.cppentry.com)标准委员会主席Herb Sutter透露,C++(www.cppentry.com)0X的草案将很有可能在07年10月完成。可是现在快到年底了,仍然没有任何的消息。作者籍此机会向Andrei Alexandrescu先生了解C++(www.cppentry.com)标准委员会的工作进展情况。Andrei Alexandrescu先生表示一直在跟踪这一标准的制定。整个标准委员会也一直都在积极工作,因为很多人都会牵扯之中,很耗时。截至目前,所有主要、重要功能已经出来,标准肯定是一个往前推进当中,但是并不能承诺今年或者明年会出来。

看来,我们还是要耐心的等候一段时间了。

新的C++(www.cppentry.com)标准主要在四个方面对C++(www.cppentry.com)标准进行了扩充:

◆增强STL库,标准库TR1和TR2中的新组建,比如“正则表达式”
◆并发内存模型和并发库(面向多核处理器)
◆垃圾收集器
◆可简化的泛型程序的开发

在这些新制定的标准中,Andrei Alexandrescu对两个特征比较喜欢,一个是editor template里可变参数的模板,它是在参数后面打几个点,这样可以不必强调类型名。另一个是O2的关键字,它可以大大的简化代码,可以自己编译、推导,不需要程序员自己写很多的代码。这样大幅度提高了代码的可维护性,比如它不需要在很多地方强调类型的名字,只需要在一个地方放这个类型的签名,然后改动一个地方,其他地方就可以相应的改变。这有点类似于引进动态语言的特征。

另外,还有一个是概念的特征,现在标准委员会还没有确定是否可以进入标准。因为它可以使模拟实现脱离繁琐,当然希望它可以进入标准。但是相比较而言,它没有第一个特征提到的那个可变参数有用。

内容导航

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇微软Visual C++ 2008运行库(x86/x.. 下一篇了解Visual Studio 2005中的C++语..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: