神话与谬误:争论C++前你应当知道什么
http://tech.ddvip.com 2007年08月11日 社区交流
内容摘要:最近写了一篇关于C++0x Concepts的文章,意料之外地引起了一场小规模口水仗。回各位帖子的同时,回想这些年C++社群的大小争论,觉得有必要把一些长久以来在C++争论中出现的误解列举出来。
Fallacy #2 ——C++委员会过分关注一些不切实际的语言特性,而不关心标准库的扩充
比起第一个fallacy来,这个倒容易解释清楚了。人家Bjarne在文章和访谈里面一再强调,C++从来都是把库设计放在首位的(这句话其实就意味着,是把最终开发者放在首位的——什么?你难道不用库?),但是C++群体是一个分散多样的群体,而且没有大公司的财力支持。前者意味着众口难调(标准化过程困难),后者意味着不能集中精英的人力(boost库的开发都是由大家业余时间完成的)来搞出个百万美元的免费库来。此外个人用业余时间来开发库还意味着往往没有足够的精力来对库进行精化改善,导致库的质量不佳或者干脆停滞(这样的C++库案例很多)。比如日志库吧,没有一打也有半打,但由于都是个人业余开发,所以没有精力做到尽善尽美,唯一一个往boost提交的是John Torjo(也是个牛人)写的,不过一年前被reject之后就没了动静。你难道怪人家?人家又不是你雇来的。
但说到底,还是钱的问题,众口难调还是终究能调的(boost发起的初衷便在于此)。但没有钱,鬼才跟你推磨呢。 不过好消息是据说boost明年能拿到fund:-) 应该能把boost狠狠boost一把。 至于“C++委员会过分关注一些不切实际的语言特性”就不知从何说起了。首先,前文已经明确说明语言进化的重要性以及实用性,这说明语言进化根本不像人们认为的那样“不切实际”,而是与实用休戚相关的。其实从根本上,语言进化就是为了带来更好的库,以及更好的代码(包括日常编码),这一点跟大伙殷殷企盼着标准库其实并不相左。此外还有一点就是,讨论语言特性比实际去开发库要花更少的精力,这两者花的精力其实不在一个数量级上,开发一个库出来要难得多得多,所以就造成了一种假象——“委员会的那帮家伙只知道倒腾语言”。这个论点错在了两个地方,一,倒腾语言是必要的。二,他们并非只知道倒腾语言,只是库的问题要艰难得多,没钱,人家难道砸锅卖铁给你开发标准库吗?
来源:天极 作者:刘未鹏 责编:豆豆技术应用