C++之父元旦专访(8+13个问题,关于C++的学习&使用和未来) By TopLanguage (http://groups.google.com/group/pongba) 刘未鹏|C++的罗浮宫 (http://blog.csdn.net/pongba) 临近元旦的一个月,Bjarne在通信中答应接受一次访谈。高兴之余,为访谈的问题犯了难,我不想做成一个个人的访谈;我希望这次访谈能够代表更多的人,最好能够代表国内C++社群的一些典型的声音,同时我也希望问题是经过深思熟虑的,由真正了解C++的人提出。 所以,当时我便在blog里面放了一个问题召集的声明,并在TopLanguage讨论组上置顶了一个帖子。向大伙征集好问题。一个月后我们有了一个问题集,我又邀请云风和孟岩各提了一个问题。 经过整理,一共有8+13个问题。前8个问题是关于C++的学习和使用。后13个问题是关于C++的未来。Bjarne在收到问题集之后称赞问题很好,并很快作了回答:-) 我相信这是一次非常特别的访谈,因为两个原因:1. 并非代表我一个人的观点,而是来阅读全文>
发表于 @ 2008年01月10日 17:57:00|评论(loading...)|编辑
学习C++:实践者的方法(Beta1) By 刘未鹏(pongba) C++的罗浮宫(http://blog.csdn.net/pongba) 前言 我的blog以前很长一段时间关注的都是C++中的技术与细节,乃至于读者和应者都寥寥。然而5月份的时候写的一篇“你应当如何学习C++”,阅读量却达到了3万多,在blog上所有文章中却是最高的(且远远超过了第二位);评论数目也有一百多。为什么独独这篇能够激起这么多的回应,想必是国内的C++社群被C++压抑太久,或者,严格来说,是被C++的教育方式压抑太久。实际上,不管是在各大国内论坛上,还是在comp.lang.c++.moderated这样的国际C++论坛上,乃至于在douban上的小组内,有心者都会发现,对C++语言的细节的关注一直都没有停止过,同样,对C++语言的细节的抱怨也从来都没有停止过。一个例子就是comp.lang.c++.moderated上的一个技术牛人James Kanze说的,他说接触C++十年了,到现在还需要不时去翻C++标准阅读全文>
发表于 @ 2007年12月11日 12:11:00|评论(loading...)|编辑
9月份的时候写了一篇“Why C++”。后来我把文章发给Bjarne,问问他的意见。Bjarne友好的对文章作了详细的评点并发回给我,我问他能不能把他的评点版发到blog上,他说原先发给我的评点比较随意,答应给我单独写一篇友情评注,也就是下面这篇。阅读全文>
发表于 @ 2007年12月04日 15:50:00|评论(loading...)|编辑
错误处理(Error-Handling)这个重要议题从1997年(也许更早)到2004年左右一直是一个被广泛争论的话题,曾在新闻组上、博客上、论坛上引发口水无数(不亚于语言之争),Bjarne Stroustrup、James Gosling、Anders Hejlsberg、Bruce Eckel、Joel Spolsky、Herb Sutter、Andrei Alexandrescu、Brad Abrams、Raymond Chen、David Abrahams…,各路神仙纷纷出动,好不热闹:-)如今争论虽然已经基本结束并结果;只不过结论散落在大量文献当中,且新旧文献陈杂,如果随便翻看其中的几篇乃至几十篇的话都难免管中窥豹。就连Gosling本人写的《The Java Programming Language》中也语焉不详。所以,写这篇文章的目的便是要对这个问题提供一个整体视图,相信我,这是个有趣的话题:-)阅读全文>
发表于 @ 2007年10月08日 18:27:00|评论(loading...)|编辑
首先非常感谢waterwalk的辛勤翻译:-) waterwalk把翻译回贴在原文的下面了,为了方便阅读我提取出来编辑以后重发一个帖子。这篇文章原本是想对最近C/C++争论系统的整理一下一些思考的,但由于一开始的时候用英文写了两段,后来就干脆都用英文了,造成很多人阅读的麻烦,在此抱歉。不过好在waterwalk翻译了整篇文章,于是单独贴在这里:-)阅读全文>
发表于 @ 2007年09月14日 16:52:00|评论(loading...)|编辑
使用C++的理由和不使用C++的理由;为什么人们不使用C++;如何以正确的态度使用C++;如何判断你是否应该使用C++;etc. 内有英文慎入!阅读全文>
发表于 @ 2007年09月11日 14:19:00|评论(loading...)|编辑
一门语言应该是“Make simple things simple, make complex things possible”的。当我们用语言来表达思想的时候,这门语言应该能够提供这样的能力:即让我们能够最直接地表达我们的意思,多一分则太多,少一分则太少,好比古人形容美女:增一分则太肥,减一分则太瘦。阅读全文>
发表于 @ 2007年09月10日 10:24:00|评论(loading...)|编辑
上次说到,这次要说的是auto。此auto非彼auto,大家知道C++中原本是有一个auto关键字的,此关键字的作用是声明具有automatic(自动)存储期的局部变量,但跟register关键字一样,它也是个被打入了冷宫的关键字,因为C++里面的(非静态)局部变量本身就是auto的,无需多用一个auto来声明。然而,阴差阳错的,auto在C++09中获得了新生。阅读全文>
发表于 @ 2007年09月07日 15:20:00|评论(loading...)|编辑
最近写了一篇关于C++0x Concepts的文章,意料之外地引起了一场小规模口水仗。回各位帖子的同时,回想这些年C++社群的大小争论,觉得有必要把一些长久以来在C++争论中出现的误解列举出来。哈雷将军的笑话想必大家都听过。一句话经口口相传,每个人都根据自己的主观意念加以润色,修补,歪曲… 到最后就面目全非。这里最关键的一环就是主观意识,在历史学里面有这么一句话,大致意思是历史其实只存在于人的意念之中;就算完全客观的事件,通过不同的人的嘴说出来,造成的心理效应也往往不一样,每个人都会加上那么一两个形容词,驾驭语言能力高的更是能够舌绽莲花,而语言本就有自身的力量,其中的遣词造句对读者构成的心理影响力便应运而生。甚至于同一句话,用不同的语气说出来,都会造成不同的效果。同一句话,站在不同的立场上看,也会根本不是同一个意思。比如“C++还算是门不错的语言”,站在C++拥护者的角度听是在怜悯加诋毁C++,而站在C++反对者的角度听却是抬举了C++。阅读全文>
发表于 @ 2007年08月08日 18:32:00|评论(loading...)|编辑
好吧好吧,我承认我跳票了,上次说这次要写variadic templates的。但g9老大写了一篇精彩的散记,让我觉得concept应该先写,因为这实在是个有意思的特性,比variadic templates有意思多了。阅读全文>
发表于 @ 2007年08月04日 14:26:00|评论(loading...)|编辑
This post is a survey of what generic programming really is and what it means阅读全文>
发表于 @ 2007年07月29日 19:03:00|评论(loading...)|编辑
在泛型编码中经常出现的一个问题是(这个问题在实际中出现的场景很多,我们留到文章末尾再提,目前我们将这个特定的问题先提取孤立出来考虑):如何将一组参数原封不动地转发给另一个函数...
阅读全文>
发表于 @ 2007年07月18日 20:50:00|评论(loading...)|编辑
右值引用(及其支持的Move语意和完美转发)是C++0x将要加入的最重大语言特性之一,这点从该特性的提案在C++ - State of the Evolution列表上高居榜首也可以看得出来。从实践角度讲,它能够完美解决C++中长久以来为人所诟病的临时对象效率问题。从语言本身讲,它健全了C++中的引用类型在左值右值方面的缺陷。从库设计者的角度讲,它给库设计者又带来了一把利器。从库使用者的角度讲,不动一兵一卒便可以获得“免费的”效率提升…阅读全文>
发表于 @ 2007年07月10日 16:09:00|评论(loading...)|编辑
内存模型是C++09最重大的特性之一,之所以重大是因为多线程并发编程将成为下一个十年的主题之一,对此C++小胡子Herb Sutter早有精彩的论述。为什么在C++里面要想顺畅地进行多线程编程需要对标准进行修订(而不仅仅是通过现有的多线程库如POSIX、boost.Thread即可)呢?对此Hans Boehm在他的著名的超级晦涩难懂的paper——《Threads Cannot be Implemented as a Library》——里面其实已经详尽地阐述了原因,但是,一,尽管这篇paper被到处cite,newsgroup上面关于到底能不能用volatile来实现线程安全性这类问题还是争议不断。这方面就连C++牛魔王Andrei Alexandrescu都犯过错误,可见有多难缠。
阅读全文>
发表于 @ 2007年06月20日 21:29:00|评论(loading...)|编辑