落雨

    梦想就是创造,希望就是召唤,创造幻想
就是促成现实....





您现在的位置是:首页>文章

也说说谭浩强

这是在一个CSDN论坛的评论看到的,作者已经不可考了

    我初三开始学习编程的时候,那时候BASIC的书很多,好书也很多,主要是许多题目出的好,那时计算机使用者和一个编程者几乎没有区别。但我没见过谭浩强的书,后来我母亲看我喜欢编程从书市买了 一本大开本的BASIC的书,我那时没钱买游戏,就老想着自己去编,一有新书就扑进去读,谁知这一本就好像是我前几本书题目的总结,不客气的说就是抄袭。后来也就扔在一边了。前几年搬家收拾屋子,才 发现那本书居然就是被N多媒介吹的天花乱缀的谭浩强写的什么BASIC语言。但是对这个人也没多少谴责,因为抄来抄去炒来炒去在中国属于“国情”,而且人家也说了是“编著”,这个词也很有意思,可以让所有 怀疑他抄袭不付稿费的人闭嘴。这个人也就被我忽视了。

    谁知这家伙倒不甘心,后来我又碰到一本他的书,就是传说中的C语言,在这之前(万幸万幸),我看了一本北大计算机系自己的C语言教程,和id的创始人写的一本关于如何用C编写游戏的书。对了,还有一 本美国人写的C语言图形编程的书,叫什么图形大师之类的。买谭浩强的这本书完全是因为学校把它当作C语言课程的教材。看谭的C语言感觉总是怪怪的,但是我又说不出哪里怪。于是看了一个大致就放下了, 后来由于要考试复习,只好又好好看 了一把,收获全无,总觉得怪,却不知道哪里怪。说不出的原因其实也可能是因为,当时真是 校园里人手一本,女生们还在书上画上重重的红杠(包括我老婆)。所以潜意 识里总觉得这本书应该是不错的,只是我自己觉得很怪而已。

    到现在,不知不觉我已经学了BASIC,C,C++等等等五花八门的语言,但很不巧除了Fortran都与谭浩强擦身而过了,Fortran也是我这几种语言里学的最差的一种。C语言的 书多是有关游戏的,PASCAL是一本叫啊!Pascal的书以及大富翁网站,C++是靠Borland C++深入编程。其他的基本靠作项目和看源码,但是能让我真正了解系统以及x86架构的,只有C语言,以及相关的书籍。

    本来谭浩强这个人应该和我没什么关系,井水不犯河水。可有次听清华的一个力学系博导说起谭,我才知道他原来是清华的,也洗耳恭听,听这位博导讲,谭最大的本事就是出书快, 那会儿彭德怀被批判, 他就赶紧出小册子,《彭德怀反党反社会主义反对毛主席言行一百例》。后来邓小平被批判,他就又赶紧出小册子,《邓小平反党反社会主义反对毛主席言行一百例》。我们听了都前仰后合,这时候楼上一位自 控系博导下来,听我们说起这个话题,也说 这个人后来看清华水太深,干脆跳到社会上去出书了。原来考他博导的一个小伙子,程度还不错,可他听说这位小伙子跟谭浩强的女儿搞在一起,干脆不要了。我虽是 当笑话听了,但也可见他在清华学者圈里口碑很差,我想也许是因为他跟所谓“厚德载物”有些格格不入吧。但有rpwt的岂止他一个,而且文革中干过缺德事也有情可原。

    上次回国,去一个书店,只见一个书架上摆满了谭的书,有BASIC,C,Fortran等等,在我看来有些令人怀念,于是开始翻看,忽然我一下子明白谭的C语言为什么我看来有些怪了,他写了那么多本书,但实际上 却只写了一本,那就是BASIC(而且我个人认为还属于“编著”),他写Fortran也好,C也好,都在用BASIC的眼光来看他们,几本书之间互相抄来抄去。这就是为什么他写到C++就写不懂了,只能翻译了(估计也想借 此自学一下吧),而VB还可以写一写,因为面向对象语言和原来的结构化编程的可参照性(可抄性)已经不高了。

    用BASIC和Fortran去参照C语言,水平可想而知(BASIC不声明变量,Fortran不支持递归),而谭在真正这些具有C特点的关键的地方,却都没有说清楚,比如C语言的递归,有多少人敢说是看了谭的讲解就明白 了的?C语言在他笔下,可以说真是很难理解,比如指针,递归等等,以至于我工作中见到的许多计算机专业毕业的开发人员,一提起写链表,节点就头疼,因为当时就是囫囵吞枣,半懂不懂。以至于论坛上一提 起C语言,大家就觉得是被淘汰的语言,难于理解等等,而自己的水平始终涨不上去,还奇怪为什么国外那么多精彩的3D游戏,而国产游戏始终是平平常常的RPG。殊不知有多少游戏是C语言开发的,PS,PS2有那么 多种杰出游戏,风靡世界,而主流开发语言还是C语言,只有少数是C++开发的, 有多少PDA,控制芯片,图形引擎,手机的程序是C语言开发的,国内那么多人声称自己学过C,又有多少能知道C语言的真正实力?我 现在随便想了个例子:Y = X*192 有多少人会把他优化成:Y = X* 64 + X * 128 ->Y = X<<6 + X << 7有多少人知道 i = i + 2 和 i += 2的区别?为什么你的VCD要用美国人的解码器?为什么你的游戏那么烂,要求的 硬件还比别人高?恐怕就在这一点一滴上吧。

    这些知识会在谭的书里看到吗?许多想从事计算机职业开发的人会被这种书误入歧途,这样的话,你会编C程序,和你会编BASIC,Fortran其实根本没什么区别!谭的书作为对非专业人士的读物,应该是一本还 不错的科普读物,比如他那本书就可以改名为《谭浩强爷爷讲编程(C语言版)》,其实这样的话也算他有自知之明,而且真的是件功不可没的好事,只恨这个人太会钻营,一定要让别人觉得他的书有层次,偏 要入主计算机系C语言教科书的宝座,这就要误人子弟了!最可悲的是,许多计算机专业人士被洗脑,还去念他的好唱赞歌。

在这里写这些话,不是想批判谭浩强什么,因为他也是确实作了许多有意义事情,我觉得他的读物属于科普级,适用于非计算机专业,非微电子,自动控制专业的科研人士,学生,特别是高中中专计算机课程 的读本,比较合适。但是现在是什么状态呢,一方面国内C语言的开发水平很低,一方面又把这个人捧上天,到处去作报告,还奉为计算机科学大师,这就不可取了,而且有点可笑。

我母亲是搞量子物理的,我看她看的那些书,她写的书都象天书一样,真是完全看不懂。我爷爷是汉唐历史的研究者,我小时候本以为他的书我可以当历史故事书来看,不想也如天书般。我看我母亲整天搞 些我不懂的东西,就有些着急,觉得她几十年不知在干什么,于是就劝她退休了的话就写写科普书籍,让俺们这些外行也知道知道什么叫超导,凝聚态等等,她就跟我说,第一写这种书的人现在也不少,而且估 计小孩子看了会有兴趣,应该比她写的好。第二有兴趣是会有兴趣,但是还是不能得到一个正确的概念,这个领域能侃大山的地方就那么多,一旦真正切入正题,不用高等数学根本就不可能说清楚,最后这些科 普读物写了 也白写,还容易造成错误概念。现在想想谭浩强的C语言,多少也有点这种感觉。所以对谭的定位应该是一个勤劳致富的出书匠,即使带着大红花作为劳模受到广大群众的夹道欢迎,他也受之无愧。 但是如果把他的书作为基础科学教学,研究的一分子,把他本人作为大师来供奉, 实在是中国科学界的悲哀。

    域 名:yisee.me 创建于2016年12月12日