The Kai Way

Pragmaticly hacking

TCPPL的一段话

| Comments

这是在B.Stroustrup的TCppPL中Chapter2最后结尾的一段话:

没有一种程序设计语言是完美无缺的。幸运的是,一种程序设计语言不必是完美无缺的,也可以成为构造伟大系统的良好工具。事实上,一种通用的程序设计语言根本不可能对它被用于的所有工作都是最完美的,对一项工作来说最完美的东西对于另外的工作就常常会表现出严重的缺陷,因为在一个领域中的最完美事物实际上也就是意味着专门化。Cpp的设计是想成为构造范围广泛多样的系统的良好工具,而且能够直接表达范围广泛多样的思想。

并不是所有的东西都能直接通过语言的某些内部特征表述。事实上,这也不应该成为一种理想。语言特征的存在是为了支持各种各样的程序设计风格和技术,因此,学习一种语言的工作就应该集中于去把握对该语言而言固有的和自然的风格--而不是去理解该语言所有语言特征的细枝末节。

在实践性的程序设计中,理解语言中最晦涩难懂的语言特征,或者使用最大量的不同特征并不能获得什么利益。把一种特征孤立起来看并没有什么意思,只是在由技术和其他特征所形成的环境里,这一特征才获得了意义和趣味。因此,在阅读后面的章节时请牢记,考察Cpp的各种细节的真实目的在于能够应用它们,在有效的环境里,去支持良好的程序设计风格。

Bjarne真的是一个超人级的人物,很早就看清了程序设计语言的真谛。这段话的意思人人都懂吧。(还有赞叹一下裘掌门的翻译功力)

上次Topcoder的比赛很失败,让我觉着自己。这让我又回过头来再看Cpp的书,看Cpp圣经--TCppPL,看侯Sir的STL剖析。看着Cpp的代码有种亲切的感觉,书中Bjarne写出来的Sample,很优美干练,可读性也非常高。

其实程序设计语言规格到底还是给人来描述现实问题的,描述后让计算机来处理问题,所以能更好地解决问题的语言就是一门不错的语言。RoR最能体现专门化解决问题的思想,Ruby的DSL能力不是盖的。而创造Ruby的这些DSL或者框架的超人们,他们都是掌握了良好程序设计风格的家伙。(说到最后知不到自己在说什么)