C++之父元旦专访(8+13个问题,关于C++的学习&使用和未来)
By TopLanguage (http://groups.google.com/group/pongba)
刘未鹏|C++的罗浮宫 (http://blog.youkuaiyun.com/pongba)
临近元旦的一个月,Bjarne在通信中答应接受一次访谈。高兴之余,为访谈的问题犯了难,我不想做成一个个人的访谈;我希望这次访谈能够代表更多的人,最好能够代表国内C++社群的一些典型的声音,同时我也希望问题是经过深思熟虑的,由真正了解C++的人提出。
所以,当时我便在blog里面放了一个问题召集的声明,并在TopLanguage讨论组上置顶了一个帖子。向大伙征集好问题。一个月后我们有了一个问题集,我又邀请云风和孟岩各提了一个问题。
经过整理,一共有8+13个问题。前8个问题是关于C++的学习和使用。后13个问题是关于C++的未来。Bjarne在收到问题集之后称赞问题很好,并很快作了回答:-)
我相信这是一次非常特别的访谈,因为两个原因:1. 并非代表我一个人的观点,而是来自许多人(问题贡献者附于相应问题的后面)。2. Bjarne的以往的很多访谈更多倾向于技术和现状;但我们这次的访谈几乎不谈技术,而是着眼C++中最大的问题:学习和使用。以及另一个更大的主题:C++的未来。
以下是访谈全文。中文版预计见于下期程序员杂志。
Bjarne Stroustrup is the designer and original implementer of C++ and the author of "The C++ Programming Language" and “The Design and Evolution of C++”. His research interests include distributed systems, design, programming techniques, software development tools, and programming languages. He is actively involved in the ANSI/ISO standardization of C++.
Dr. Stroustrup is the College of Engineering Chair Professor in Computer Science at Texas A&M University. He retains a link with AT&T Labs – Research as an AT&T Fellow. Member of the National Academy of Engineering. ACM fellow. IEEE Fellow.
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
It was time for a change and I felt I had something to teach. I had friends at TAMU and it was one of the few universities that seemed serious about growing and improving. Some of the most enjoyable work has been designing and giving a first programming course to 1st year students.
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
You may be accurate about the complexities of using C++, but then you may also be underestimating the trickery involved in learning and using other languages. Some problems only surface when the user population gets large and diverse.