跟人找事挑刺,关于“C++开源程序库评话”的回复

在孟岩的blog上看到这篇文章,一时心痒,就写了回复,然后就有了下面这些话。实话实说,我眼高手低,技术水平不高,也不可能写出孟岩这样有文采的文章的。

****所有这些文字都是对文不对人,请勿误解。****

sunxiunan 发表于2006-04-27 11:09 AM

不知道有没有数据上的比较,比如说c++多少开源项目,c多少开源项目。这样空口白说,没有说服力。

说的这些观点,哪些是有“典”的,哪些是自己的,应该说清楚一点。

立论不坚实,煽动性感性的词汇太多,文章总体感觉一般。

myan 发表于2006-04-27 11:33 AM

to sunxiunan:

得出数据很容易,到sourceforge上搜一下就行了,得出观点就难了,因为你从搜到的数据中根本看不出问题。跟在数据后头永远都是迟钝的。你要立论坚实,不过坚实的立论基本上都是马后炮。

文章是我写的,观点当然是我自己的。

风格问题,尊重你的个人的感觉。写东西表达观点而已,风格只是装饰,不求讨天下人喜欢。

sunxiunan 发表于2006-04-29 3:08 PM

十年磨一剑,对于一篇blog来说当然不必如此。

不过,对于一些基本的数据还是应该有一个说明的,我做研究生论文的时候就受过老师的此类批评,比如是否借鉴了别人的观点,不可能都是全新的,整篇文章都是观点未免有些不通,怎么也是有前言、现状、观点、结论这样的一些大结构。

或许我说的有些刻薄,不过既然是一篇稿件,自然要求和blog文章应该有所不同,是要读者花钱的,自己写着爽和让读者有收获还是有区别的吧。

sunxiunan 发表于2006-04-29 3:19 PM

挑一挑刺,我认为应该有论据的地方,

1)如果说在2000年以前,由于C++在工业界的统治地位,这种差距对C++的影响还不大的话,今天,C++在开源领域里薄弱的基础就非常要命了。

sunxiunan:应该有具体数据对比,怎么就要命了?

2)大量的C++开源项目质量不佳,而且经常以一种粗暴的方式要求使用者改变自己程序的风格

sunxiunan:是否有相关的数据评估,这个不佳是从何而来?

3)因为实践证明,没有良好的基础设施支持,C++开发成功的可能性异乎寻常的低。

sunxiunan:这个是最应该有数据证明的地方。

4)在Java、C、Perl、Python、Ruby中,一个优秀的应用程序开发者在积累一定经验之后,不难写出高质量的可复用代码。而在C+
+中,这种事情是非常罕见的,即使是天资卓越、经验丰富的大师级人物,也需要花费多年的打磨,历经几次反复,才能够最终推出受到一致认可的可复用程序库。

sunxiunan:抱歉,这里我并不同意这种观点,说得太过煽情,缺少说服力,难道C++就是一种不同星球的编程语言?程序质量的好坏还是在于写程序的人吧?语言只是工具。

5)以至于Andrei Alexandrescu感叹道,十几岁的少年天才满目皆是,满鬓斑白的优秀程序库设计者凤毛麟角。而在另一个地方,一本C++可复用技术图书的作者总结道,所谓可复用的C++程序库,不可能是设计出来的,只可能是复用出来的。

sunxiunan:我真的想知道大师在哪篇文章里说的这个话。

6)这也就是为什么在2000年后,Bjarne Stroustrup无数次地呼吁社群专注程序库的开发。

sunxiunan:要是有大师说话的原文链接或者书籍页码就更爽了。

抱歉我这样苛刻,或许这些都没有必要,但是如果有这些说明的话,这篇文章会更有说服力,现在网络如此发达,作者搜索原文应该要方便很多。

文章链接在此:

C++开源程序库评话(节选) – 孟岩

C++开源程序库评话(节选)

(本文是即将发表于2006年第6期《程序员》杂志的同名文章的节选。全文请见杂志)

C语言天生就与开放结缘。C最初是作为UNIX的系统编程语言而流行起来的,而UNIX可以被认为是第一个产生重大影响的“开源”软件。随着UNIX的流行,C语言逐渐被人们认识和喜爱。很快的,在各个平台上C语言都成为了流行的甚至是统治性的程序设计语言。大约到1980年代中期,C已经成为人类历史上第一种工业级程序设计世界语。很多人都知道,正是C这样一种世界语的出现,才使开源运动的出现和最初发展成为可能,从这个意义上讲,说C语言是开源运动之母并不十分过分。
但人们不太能够认识到的是,事实上C语言统治地位的获得,却也是早期开放软件运动的直接结果。多数人在回顾这段历史的时候,经常会感染中国文人的不严肃的浪漫主义史观,喜欢把C语言的成功归结为汉高祖斩白蛇般的天赋神格,描述为遥想公瑾当年,谈笑间樯橹灰飞烟灭的轻飘飘。然而如果我们对历史作一些细致的调查,我们会发现C语言绝非有什么天命,而只不过是幸运地扒上了早期开放运动的快车而已。在C语言“小人乍富”的那几年,也还有其它不少程序设计语言具有高性能、可移植、系统开发能力强的特点,决不是只有C骨骼特异,貌若天仙。如果Pascal也能借助一个像UNIX那样的开放的幽灵在欧美大学校园里徘徊,那么我们今天很可能要把begin和end直接映射到键盘上。
如果IBM不是在1970年代极端保守地把一种叫做PL/X的语言牢牢地限定在自己的研究所里,也许整个程序员社群的图腾就不是贝尔试验室的那两个大胡子,而是小沃森实验室里的IBM某院士。事实上,C语言的成功,更须拜开放软件运动之时势所赐,或者更确切地说,C与开放软件是一对共生体,它们相互扶持,相互成就,共同成长兴旺,共同创造历史。

发表评论