关于谭浩强老先生的"C++程序设计教程"

类别:编程语言 点击:0 评论:0 推荐:

近日踱入书店,惊讶的发现国内又出了一本C++教材.红色封面,厚重庄严,书脊上印有“国家XXX优秀教材”等熟悉字样,拿起来一翻,作者竟是如雷贯耳的谭浩强老先生.这位出生C语言的老教授在C领域的贡献可以说是“地球人都知道”(连我这个不学C的都知道^_^).
但是,令我惊讶的事情来了:
翻开目录,从头到尾浏览了一遍...
嗯,不错,中规中矩,有条有理,井然有序,巨细靡遗(还有什么成语来着?^_^!)
但是,(咦,我为什么要说“但是”呢?),我惊讶的discover:居然整个目录没有任何地方提及template,或模板字样,更不用说GP了(哦,你说STL?好像也没有).仿佛C++中从来没有GP似的(:$),一时间我对自己的认识产生了怀疑:)
我当时就继续往后翻,想看看是不是目录的后半部分被撕掉了(^o^),但是很显然,页码是连续的,我错了(:$)

当然,这是一本教材,教材是学生入门最重要的工具,应当给予十分的重视,就象启蒙教育一样.
不能不说谭浩强老先生不重视,翻开他的这本书,仍然是到处可见实践中的真知,但是Bjarne Stroustrup早就说过,C++并非一个better C.C++是一门全新的语言,C++中的一个最重要的范式就是GP,通用(general purpose)的编程思想是C++中最为优雅而强大的范式.怎能忘了GP?

无论是<Essential C++>还是<Accelerated C++>(它们都是极为经典的入门教材,特别是后者,作者Andrew Koenig是C++社区中最有发言权的人之一,也是最善长深入浅出的长者,还是唯一一个名字出现在ISO.C++标准中的人(见koenig lookup) ),他们都把STL,GP放到显眼的位置,教育程序员一开始就有generic programming的思想,把这种思想融入到日常的设计和编码中--从它们那里,我们看到C++的教育正走上真正意义上的正轨.

但是,(咦,我为什么又要说“但是”呢?^_^!),作为国内知名度如此之高的谭先生,出了这么一本<C++程序设计>本来是件好事,虽然C++经典入门教程已经出世,但是有”原汁原味”符合国人习惯的书总是好事吧,然而谭教授的教育方式却是史前时代的“C++ as a better C”,这就有点那什么了.现在国内的C++应用仍然停留在较浅的层次和教育可以说是分不开的,教育是至关重要的一环,但是我们的谭教授尽力了吗?

虽然谭教授的书中可能并没有错误,并没有误导学生,可以说是 “do things right”,然而,谭教授却没有“do the right thing”.

所以说,谭教授的书真的没有误导学生吗?

或者,思想上的误导才是最可怕的误导.

[BTW.后来我忍不住又把书翻了一下,这下不只翻目录了,我翻看了关于类的部分,总算在一个“角落”翻到了关于模板语法的讲解,聊聊几行,“言简意赅”,对应一下目录,原来位于一个类似“扩展讲解”的部分(具体目录名不记得了).而函数模板,我也就没有心思再找了,模板偏特化,函数模板重载...关于模板的设计,通用(或称泛型)编程思想的介绍,反正我没有看到,或许会在那个角落再次“言简意赅”的提一下吧,我已经没有兴趣了]

本文地址:http://com.8s8s.com/it/it25057.htm