博文
Bjarne访谈:C++热点问题一席谈-荣耀/刘未鹏(2006-11-27 18:41:00)
摘要:C++热点问题一席谈
— Bjarne Stroustrup 2005新春专访
荣耀 访 荣耀/刘未鹏 译
荣耀: Herb Sutter和Stan Lippman目前正在微软主持C++/CLI的设计工作,意图将动态的、基于组件的.NET编程模型和ISO C++集成在一起。您对此有何评价?您认为C++需要.NET吗?您认为C++/CLI会取得成功吗?
Bjarne: 不,C++根本不需要.NET,C++只需要最小限度的运行时支持,用于new/delete、异常处理以及RTTI等,而且仅当你使用这些特性时才需要。C++程序通常可以使用每一分可用的资源,在硬件上直接跑。C++的这些能力使其非常适合于系统级编程以及嵌入式系统任务。当然,也有些C++应用需要.NET,比如那些为了和微软.NET框架和服务紧密集成而专门设计的应用。然而,C++语言和标准库的宗旨是远离这些平台相关性的纠缠。另一方面,许多.NET设施都依赖于C++,因为除了C++之外,再也找不到更通用、更高效的语言来很好地完成这个任务,从这个意义上说,.NET需要C++。
从“很多人将会使用它”这个意义上来说,C++/CLI是会成功的。使用.NET CLI,开发者选择甚少,而C++则是最佳选择之一,而且很明显在Windows上也是,因为微软给予C++最好的支持。话虽如此,我仍然倾向于在设计系统时保持良好的移植性,而将对平台相关或专有特性的使用限制在特定的代码块中,并使用以ISO标准C++所表达的接口去访问它们。
荣耀: 尽管我现在相信这是一个毫无意义的问题,不过我想我最好还是澄清一下。当我说“C++需要.NET吗?”,我的意思是想问“我们需要.NET来使C++更普及吗?”。这就好比问“世界和平需要美国吗?”,或者,“我们需要美国来维护世界和平吗?”。当然了,我们都不喜欢讨论政治性话题,也许这个比方很不合适。
Bjarne: 政治关乎可行性。从这个意义上来说,我们必须考虑政治,而你的问题当然也是合理的。鉴于微软在软件领域的地位以及它对.NET强大而完全的支持(将.NET的系统接口以CLI来表达),.NET的地位会变得很重要。要想在微软的世界里玩得转的话,C++必须很好地绑定到.N......
专访 Bjarne Stroustrup - 荣耀(2006-11-26 11:16:00)
摘要:专访 Bjarne Stroustrup
来源:荣耀 马皓明 译 作者:Bjarne Stroustrup 等级:强烈推荐
发布于2005-10-22 22:54 被读588次 【字体:大 中 小】
Bjarne Stroustrup 其它言论 http://www.royaloo.com/bjarne/bjarne.htm
承蒙孟岩先生允许,本译文引用了他的摘译稿,谨致谢意。
Elden Nelson:如果您现在有机会从头设计C++语言,您会做些什么样的改变?
Bjarne Stroustrup:当然,你永远都不可能重新设计一种语言,那没有意义,而且任何一种语言都是它那个时代的产物。如果让我今天再设计一种语言,我仍然会综合考虑逻辑的优美、效率、通用性、实现的复杂程度以及人们的喜好。要知道人们的习惯对于其喜好有着巨大的影响。现在,我会寻找一种简单得多的语法 — 它可能与人们对“熟悉”和“简单”的混淆认识相悖,我会把对类型系统的侵犯限制在极少的语言构造里,并且用明显“丑陋”的语法来标识它们。(就象我对对新风格的“转型”的处理,比方说,reinterpret_cast<数据类型>(p)就是一个用来描述一种“丑陋”操作的“丑陋”记号)。这样可以很容易地禁止不安全的操作。我还会把核心语言的体积搞得尽可能小一些,包括类和模板的关键的抽象特性,而把很多其它的语言功能放在库里来解决。当然我也会保证核心语言足够强大,使得那些库本身也足以用此核心语言来产生。我可不希望标准库的编写者依赖于普通用户无法使用的额外的语言特性。我还努力使核心语言的定义更加精确。最重要的是,我会在该语言被广泛使用之前尽可能维持一个很长的酝酿期,这样我就可以根据来自真实用户的坚实反馈对它进行改进。这可能是最困难的,因为一旦有什么东西明显出色并且前途光明,它就会被广为使用,此后进行任何不兼容的修正都将变得极其困难。我相信这些思想与我当初设计C++时的理念是非常类似的,它们同样也指引着一、二十年来C++的不断演化。当然,我认为现在还没有什么东西能让我觉得象是“完美的语言”。
Elden Nelson:当您设计C++语言时,您是否借鉴了其他崭露头角的对象语言(例如Modula-2)的思想?
C++之父Bjarne谈C++中的STL模板(2006-11-25 21:27:00)
摘要:C++之父Bjarne谈C++中的STL模板
在1994年,我主要关心的是如何使ISO C++标准尽可能地好--同时在它所包含的特性和规范的质量两个方面--并获得多数人的同意。即使人们不接受某种规范,也不会影响它(规范)的良好性。ISO标准没有强制力,因此有些人认为自己不值得浪费时间来适应它,除非(群体)社团的压力能够使他们确信该规范的价值。对于一个实现者来说,适应环境是很重要的额外工作,因此适应环境是一个有意识的决定,并且需要分配一些资源,而这些资源本来可以在其它地方使用。某些晦涩的语言特性很难在某些编译器中实现。我们可以实现或者购买类库,而且领先的、可靠的实现者(implementer)也有机会用自己的富于想像力的专利特性来"锁定"用户。因此,我认为要点是:让委员会成员和他们所代表的组织确信该标准的文档是他们所期望看到的最好的文档。
在做了很多工作之后,该委员会获得了成功。1997年10月,在Morristown(New Jersey,USA)会议上,技术成员的最终投票结果是43-0。在获知这个结果以后,我们进行了庆祝活动!在1998年,ISO成员国以空前的22-0的投票结果批准了这个标准。为了获取大家的一致同意,委员会做了大量的技术工作,也使用了一些外交策略:在那个时候,我喜欢说"政治问题无法解决;我们必须找到引发该问题的技术问题并解决它"。我无法想象仅仅通过投票,因为少数服从多数才简单"解决"的问题,同时,由于"政治上的讨价还价"的问题也危害了我们最好的技术判断--而这个问题(模板的分开编译)仍然在"恶化",需要寻找一个更好的技术方案。
在最后投票之前的一年里,委员会的工作是:
1. 细节、细节和更多的细节。
2. STL
3. 模板的分开编译
第一个问题非常明显:国际标准必须用大量的篇幅来关注细节信息;实际上,实现(implement)与已有标准的兼容性是标准的关键目标,同时还是实现之间的工具和应用程序能够迁移的基础。标准是一个712页的文档(加上索引等内容),它是采用高度技术化的和正式的方式编写的,因此为了理解真正的含义需要很多的细节信息。像以前一样,我在新语言规范上附加了新版的"C++编程语言",以提供更有帮助意义和面向用户的语言描述。
C++风格与技巧(Bjarne Stroustrup著)(2006-07-13 12:42:00)
摘要:C++风格与技巧
(译注:本文的翻译相当艰苦。Bjarne Stroustrup不愧是创立C++语言的一代大师,不但思想博大精深,而且在遣词造句上,也非常精微深奥。有很多地方,译者反复斟酌,都不能取得理想的效果,只能尽力而为。
Html格式的文档见译者主页:http://www.wushuang.net
如果你对这个翻译稿有任何意见和建议,请发信给译者:onekey@163.com。
原文的地址为:http://www.research.att.com/~bs/bs_faq.html)
(Bjarne Stroustrup博士,1950年出生于丹麦,先后毕业于丹麦阿鲁斯大学和英国剑挢大学,AT&T大规模程序设计研究部门负责人,AT&T 贝尔实验室和ACM成员。1979年,B. S开始开发一种语言,当时称为"C with Class",后来演化为C++。1998年,ANSI/ISO C++标准建立,同年,B. S推出其经典著作The C++ Programming Language的第三版。)
这是一些人们经常向我问起的有关C++的风格与技巧的问题。如果你能提出更好的问题,或者对这些答案有所建议,请务必发Email给我(bs@research.att.com)。请记住,我不能把全部的时间都花在更新我的主页上面。
更多的问题请参见我的general FAQ。
关于术语和概念,请参见我的C++术语表(C++ glossary.)。
请注意,这仅仅是一个常见问题与解答的列表。它不能代替一本优秀教科书中那些经过精心挑选的范例与解释。它也不能象一本参考手册或语言标准那样,提供详细和准确的说明。有关C++的设计的问题,请参见《C++语言的设计和演变》(The Design and Evolution of C++)。关于C++语言与标准库的使用,请参见《C++程序设计语言》(The C++ Programming Language)。
目录:
我如何写这个非常简单的程序?
为什么编译要花这么长的时间?
为什么一个空类的大小......
C++之父B.Stroustrup言论(译者:孟岩,来自侯捷老师主页)(2006-04-08 14:07:00)
摘要: C++之父B.Stroustrup言论(译者:孟岩,来自侯捷老师主页)
安安注:本文仅用于个人学习,任何商业网站未经孟岩和侯捷老师允许请勿转载,否则后果自负。
侯捷注:本文系 CSDN(中国程序员网站)上的贴文。可读性高,译笔流畅。
承译者孟岩先生应允,
转载於此以飨台湾读者,非常感谢。
未得孟岩先生之同意,任何人请勿将此文再做转载。
以下蓝色为提问,黑色为回答。红色为译注,紫色为侯捷个人认为宜再斟酌之处。
浅蓝色是侯捷个人阅读时的神秘标记。
本繁体文系直接转码,并未将大陆惯用术语转换为台湾惯用术语。
[译者按] Bjarne Stroustrup博士,1950年出生于丹麦,先後毕业于丹麦阿鲁斯大学和英国剑挢大学,AT&T大规模程序设计研究部门负责人,AT&T 贝尔实验室和ACM成员。1979年,B. S开始开发一种语言,当时称为"C with Class",後来演化为C++。1998年,ANSI/ISO C++标准建立,同年,B. S推出其经典着作The C++ Programming Language的第三版。C++的标准化标志 B. S博士倾20年心血的伟大构想终於实现。但是,计算技术的发展一日千里,就在几年前人们还猜想C++最终将一统天下,然而随 Internet的爆炸性增长,类似Java C#等新的 现代感十足的语言咄咄逼人,各种Script语言更是如雨後春笋纷纷涌现。在这种情况下,人们不禁有些惶恐不安。C++是不是已经过时了呢?其前景如何?标准C++有怎样的意义?应该如何学习?我们不妨看看B. S对这些问题的思考。以下文字是译者从Stroustrup1998年之後发表的若干文章 谈话笔记中精选出来的,由於出处不一,内容多有重复,为保持完整,亦一并译出。
以下内容选自B. S在自己主页上发表的FAQ
1. 请谈谈C++书。
没有,也不可能有一本书对於所有人来说都是最好的。不过对於那些真正的程序员来说,如果他喜欢从"经典风格"的书中间学习一些新的概念和技术,我推荐我的The C++ Programming Language, 1998年的第三版和特别版。那本书讲的是纯而又纯的C++,完全独立於平台和库(当然得讲到标......