Part1: On learning and using of C++
1. Why do you go to TAMU to teach programming? What's your favorite thing about the university? -- xingranliuyun
2. Undeniably, the biggest problem of C++ is learning. Language-lawyer is a phenomenon that appears almost solely in C++. Many C++ programmers wasted so much time fighting against the language details, of which some are essential and some are unnecessary. C++ has many traps which we have to bear in mind before we can safely use it; C++ has so many pitfalls which leads to a tremendous amount of language tricks (some might call them "idioms" or "techniques"); they, together, lead to a very steep learning curve. Confronted with so many complexities, how can one learn and use C++ effectively from a practitioner's perspective? -- pongba&liujiang
3. Of all the complexities in C++, some are essential, some are unnecessary (technical embarrassments, like you said). What're those, exactly? What's the right attitude towards them when learning or using the language? -- pongba
4. What's the first principle of learning C++? -- pongba
5. What's the first principle of using C++? -- pongba
6. C++ is really hard to learn; normally one will have to read no less than 10 books to be adequately good at C++ programming. I really hope your new book is going to change the situation. -- stevenmou
7. Nowadays, few systems are built with a single language. We tend to combine the power of different languages. In this case, C++ is often used to build parts of a system. How can we identify whether C++ is suitable for a specific module? Are there any fingerprints that could help us make decision on whether or not to use C++? -- Mike Meng
8. I read your talk with Bill Venners in which you complained about the pervasive of Object Oriented Programming. Does that mean that you decide not to support this specific style of programming? Generally, what kind of style in your opinion can be labeled as "good"? -- Mike Meng
Part2: On future of C++
1. What do you think of the prevalence of the "easy-learning" languages, do you think their population indicates the future trend? -- kamala
2. What's the
future direction of Generic Programming in C++ (especially after C++09)? Are
there any new exciting things (besides those already in C++09) on the horizon? --
longshanksmo
3. C++, as a
general-purpose programming language, is having its field squeezed by the more
modern languages, where would C++ be in the foreseeable future, particularly in
the concurrency age; would what used to be the unique advantage of C++ still be
the unique advantage? -- stlf
4. C++ was and still is designed to be efficient; in order to achieve that, there're some non-trivial design trade-offs made to keep the abstraction penalty as low as possible (e.g. templates). However, they're not trade-offs without costs. For example, the static nature of templates makes it inflexible when it comes to runtime needs. In that case, Ruby's duck-typing seems to be a more natural implementation of generic-programming, although much less efficient. However, concurrent programming will definitely bring us a much heavier optimization means, in which case, would the compromise made in the design of C++ to keep the abstraction low still make sense, when people can resort to concurrency to gain efficiency? -- pongba
5. Are there any differences between the design principles of C++09 and that of C++98 (the ones in D&E)? Is there going to be a change in the design principles of C++1x? -- liang
6. You once said that there's a smaller, better language inside C++ dying to get out, what's that language like, specifically? Is D it? -- liang
7. Money has always been C++ committee's biggest problem, how would the committee operate in the coming 10 years? -- liang
8. What responsibilities will you take in the future development of C++? -- liang
9. What do you think of the place C++ is currently at in the Visual Studio language family? They have C# as the main static language, VB10&IronPython as dynamic languages, whereas C++ is the only choice when it comes to native code; Do you think that indicates C++'s place in the real-world development? Like Visual C++ Team said themselves: "We haven't forgotten C++"; does this represent the attitude to C++ in the industry? -- liang
10. C++ is a language "designed by committee"; in which way does the nature of the C++ standard committee affect the evolution of C++, for good and for bad. -- abware
11. How do you choose between adding new features to an existing language and inventing a new language? Sometimes, new features added to an existing language may look unnatural or difficult to use, but those features may be made more elegant if using a different syntax. -- WalterWalk
12. What should be done in next generation of programming language from a researcher's view? -- bipengace
13. Is there any chance that, by proper "tailoring" (i.e. cutting out the obscure or normally uselessly complex features), we can provide a "smaller" C++, which is a subset of C++ and whose code can be compiled by any standard C++ compiler, and standardize this one, providing consistent ABIs and standard libraries. -- cloudwu
整理了一下,提问人的名字附在问题后面。(少数我认为Bjarne以前访谈中答过的,paper中解释过的,或者没有必要问的被我去掉了)
大家看看有什么问题可以添加的,有什么问题没必要问的。
算是一轮投票吧:)
此帖置顶一周,然后Finalize。发给Bjarne:)
1. How to learn and use C++ correctly from a practitioner's perspective nowadays。——刘江
2. 在gp方面,c++0x之后还会有什么样的发展?在这方面,C++0x是否已经到头了?如果还能继续发展,发展的方向是什么?还会有那些相关技术出现?——莫华枫
3. 你怎么看待现在的"傻瓜式语言"的风行,傻瓜式语言是不是大事所趋?——kamala
4. C++做为一个比较通用的语言目前的应用领域却越来越窄,Bjarne怎么看待目前C++比较尴尬的境地。——stlf
5. 在将来的并发时代,C++的擅长领域或优势到底在哪里。——stlf
6. 怎么看待其它计算机语言的快速发展, 以及他们对C++原有擅长领域的占领。——stlf
7. 就问问他老人家为什么跑到德州农机大教书吧,问问他最喜欢那学校的啥地方。——xingranliuyun
8. C++0x的设计原则较D&E有没有改变?C++1x的设计原则有没有改变的可能?如果有,可能的方向是什么?——史亮
9. 如果说C++语言内部,有一种更小、更优雅、更一致的语言正在挣扎着脱颖而出,请问它应该具备什么特征?D语言是这样的语言么?——史亮
10. 钱一直是C++委员会的根本问题,而且看不到有解决的希望。请问,委员会打算如何运作,使C++面对新的10年?——史亮
11. 请问BJ在C++的未来会承担什么责任?BJ德高望重,但岁月无情,请问他有退休计划么?如果他退休,C++社区将丧失精神领袖,他对这种情况有什么看法?——史亮
12. 怎么看待C++在Visual Studio语言家族里面的地位?.NET的第一流静态语言是C#,动态语言有VB10、IronPython等,C++作为native code的唯一选择也许显示了C++在现实开发中的地位。正如Visual C++ Team所告白:我们没有忘记C++。这是否反应了工业界对C++的态度?——史亮
13. C++标准委员会其自身的发展规划是什么?其自身的发展情况会在哪些方面影响到C++的发展?——abware
14. How do you choose between adding new features to an existing language and inventing a new language? Sometimes, new features added to an existing language may look unnatural or difficult to use, but those features may be made more elegant if using a different syntax. ——WalterWalk
15. C++的学习门槛真的很高(是指要成为高手),需要学习不下10本C++巨著,非常希望Bjarne这本新书能重现ROR书籍对JAVA书籍的优势。——stevenmou
16. What should be done in next generation of programming language from a researcher's view? ——bipengace
17. 有没有可能通过对 C++ 的裁减,提供一个更小的语言特性集合,做为以后 C++ 的一个分支版本呢?我的意思是,作为一个 C++的子集,代码可以在已经有的标准 C++ 编译器中编译,但禁止掉一些含糊不清的语法。让这样一个版本成为标准,并在此基础上统一标准库和 ABI。——云风
18. 无可否认的是,C++中最大的问题之一一直是学习问题,无数学习者在语言细节上浪费了无数时间。无可否认的是,C++中有许多的陷阱需要避免;C++中有许多语言技术缺陷,需要大量的技巧来克服。这些都带来了大量的学习负担。那么1)C++中的哪些陷阱是因为语言设计考虑到效率等因素而无法避免的?哪些是可以通过语言进化去掉的?2)我们如何最有效地学习C++?——pongba
19. C++设计之初的理念是用零抽象惩罚来换取效率(零抽象惩罚的语言抽象机制的典范是template),然而,这种折衷并非没有代价,代价就是,比如说template,只能是静态的。进而C++0x的concept也只能是静态的;带来了灵活性上的损失,后者又需要通过一系列的技巧来克服(我注意到您和Jarvi等人写的关于runtime concept的paper介绍了这一技巧)。那么,我的问题是,并发时代的到来似乎必然使得大量原本只能通过零抽象惩罚的语言(如C++)来获得最大效率的应用能够换成用并发机制来攫取效率,这样的情况下,C++的语言抽象机制为了减少抽象惩罚而作出的设计折衷便成了纯粹的弱点。您怎么看待这个问题?并发手段在效率优化上的强大能力会导致C++在效率攸关领域的应用缩水吗?——pongba
--
刘未鹏(pongba)|C++的罗浮宫
http://blog.csdn.net/pongba
TopLanguage
http://groups.google.com/group/pongba
> 13. Is there any chance that, by proper "tailoring" ( i.e. cutting out the
TopLanguage
http://groups.google.com/group/pongba