English

2007图灵奖、出版2.0与C语言图书揽胜

2008-03-12 来源:中华读书报 作者:刘江 我有话说

种种迹象表明,出版2.0的时代已经悄然而至。

Amazon启动的Kindle阅读器+电子书购买下载模式是2007年出版业影响最大的事件之一。它的威力,最近已经开始体现。许多学术性的图书销量远远超过传统出版社的预期,

甚至超出了一个数量级。曾经主流的微软模式已经被Google模式所取代。这一大趋势,对于同属知识产业的出版业,很可能也同样适用。

从市场的销售数据来看,许多读者在选择C方面的图书时仍然比较盲目,存在一定劣币逐良币的情况,这在很大程度上已经成了一些软件开发人员基础不牢、坏毛病较多的病根之一。

还是先说说人和事。大地回春的季节,各种活动也多了起来。其中以最新一届ACM图灵奖揭晓最为受人瞩目,图灵奖是计算机学术界的最高荣誉,相当于其他学科中的诺贝尔奖。据ACM的官方消息,Edmund M.Clarke, Allen Emerson和Joseph Sifakis因为“在将模型检查发展为被硬件和软件业中所广泛采纳的高效验证技术上的贡献”(For his role in developing Model-Checking into a highly effective verification technology, widely adopted in the hardware and software in dustries)而荣获2007年的图灵奖。

而权威业界期刊Dr.Dobb’s Journal的报道则将三人的贡献称为“在发现计算机硬件和软件中设计错误的自动化方法方面的工作”(for their work on an automated method for finding design errors in computer hardware and software)。模型检查(Model-Checking,也译为模型检验,仿真术语里称为模型校验)本质上是用严密的数学方法来验证设计是否满足预设的需求,从而自动化地发现设计中的错误。按Wikipedia的定义,它是一种检查某一给定模型是否满足某一逻辑规则的方法。其中一种重要的方法,就是通过算法来验证形式化系统,具体方法是验证由硬件或者软件设计导出的模型是否满足通常用模态逻辑规则表示的形式化规范。

在硬件业,包括半导体业和嵌入式系统中,模型检查已经成为一项非常关键的主流技术。要知道,在硬件行业,如果设计有问题,一旦投产,损失就太大了。正因为这样,图灵奖赞助方之一Intel对三位获奖者的祝贺可以说是充满了感激之情。

此外,在通信协议、安全算法的设计方面,模型检查也发挥了关键作用。

但是,软件业对模型检查的重视似乎很不够。一线的软件开发人员可能都对它比较陌生,感觉比较学院化。当然,由于存在可计算性导致的缺陷,以及软件本身的复杂性,模型检查是不可能完全解决软件设计中的bug的。但是,软件业对这种方法的忽视,是否也是软件总体质量不如硬件,或者说低级错误更多的一个原因呢?

获奖者中EdmundM.Clarke是卡耐基梅隆大学(CMU)的教授,ACM和IEEE计算机学会会士,2005年当选美国工程院院士。曾任教杜克大学和哈佛大学。E.Allen Emerson是得克萨斯大学奥斯汀分校教授,哈佛大学应用数学博士。他位居CiteSeer引用次数最多的前1%计算机科学家之列。另一位获奖者Joseph Sifakis是法国国家科学研究中心(Centre Nationaldela Recherche Scientifique)的研究总监。他在雅典技术大学获得电机工程学位,在Grenoble大学获得计算机科学博士学位。关于模型检查的最初论文,是1981年由Clarke和Emerson在哈佛大学,Sifakis和J.P.Queille在法国,各自独立完成的。

本专栏上篇文章《迎接大的变革:计算机书业回顾与展望》中曾经提到,Amazon启动的Kindle阅读器+电子书购买下载模式是2007年出版业影响最大的事件之一。它的威力,最近已经开始体现。根据Silicon Alley Insider(硅谷知情者)网站的报道,Kindle电子图书的销售量已经使传统出版社感到震惊。许多学术性的图书销量远远超过出版社的预期,甚至超出了一个数量级。由于Kindle所仿效的先驱――苹果iTune + iPod表现极为惊人,在美国,通过这一在线渠道销售的音乐数量,2007年已经超过了许多大型传统商店包括百思买和Target,仅次于沃尔玛,而据估算,2008年沃尔玛也将被轻易击败……

种种迹象表明,出版2.0的时代已经悄然而至。

内容方面,在线多人合作的维基百科(www.wikipedia.org),经过不长时间的发展,无论是词条数还是总体的词条内容和质量都已经远远超过了出版界曾经引以为豪的《大英百科全书》;刚刚创建不久的生物物种百科(www.eol.org`)网站,在完全没有传统出版社参与的情况下,已经初具规模,其目标更是要为地球上已知生存过的180多万种生物建立档案;而Answer.com、TheFreeDictionary.com这类网站很大程度上已经逐步取代利润丰厚的桌面字典的地位;对于教材,有MIT的Open Course Ware;针对育儿图书,有Baby Center;对于菜谱,有101Cookbook……出版服务方面,有lulu.com、Trafford等自出版服务商,其出版图书的品种数已经远远超过最大的传统出版社。销售渠道方面,Amazon+Kindle已经启动,而号称Google接班人的Facebook等社区网站的影响还刚刚显现出来。甚至在版权方面,出版行业曾经赖以为基础的,也可能被网志和维基作者们大量采用的创作共享协议(Creative Commons)所颠覆。对照软件和网络行业的发展,我们可以清楚地看到,曾经主流的微软模式(销售软件产品牟利)已经被Google模式(软件免费使用,通过规模效应、广告牟利)所取代。这一大趋势,对于同属知识产业的出版业,很可能也同样适用。也许更可怕的(或者可喜的)是,整个知识产业都因为网络化而融合为一个大产业:个人或者商家通过网络提供或者消费各种服务、信息(音乐、视频、游戏、图片、图书……)、技能,能够达到一定规模的,消费者将免费使用,提供者通过网络平台运营商的广告所得获利,各种壁垒将全部打破……这是否就是平坦世界的未来图景呢?而网络平台运营商的地位也就凸显出来。微软之所以会动用400多亿美元想收购雅虎,其原因就在于此。从某种意义上讲,这是生死存亡的战争。

当然,对于出版业而言,未来的世界也并非末日。由于壁垒打破,渠道更加通畅,人和人之间的网络更加密集、联系更加频繁,信息流动更加快速,以前成为行业瓶颈的许多问题将迎刃而解。事实上,出版界拥抱变化的行动已经开始。兰登书屋开始了按章卖书的探索,教材市场上Cengage公司(原Thomson)开始通过iChapters平台让学生定制教材,O’Reilly公司除了这两种方式之外,还利用维基让读者参与图书的写作。正如畅销书作家DouglasRushkoff所说的:“互联网不是交互媒介,而是人际媒介,出版本身就是一种社交媒介。人们买了一本书或者一张唱片之后,并不是仅仅为了自己阅读或者倾听,他们想要得到的,是一个借口,可以邀请朋友一起阅读和倾听。而出版商为客户提供的正是这样的借口。”

本次专栏的下半部分,我们来说说C语言方面的图书。什么,C语言?有读者奇怪了。没错,这一次的主角就是诞生于1973年如今已经儿孙满堂的C语言。我们之所以要谈及C,不仅仅是因为它的影响深远,这完全可以从C系列语言家族的兴旺发达得到证明:C++、Java和C#以及ObjectiveC等C的子孙先后成为软件业或者各种操作系统上的主流语言,雄霸多年,至今不衰。我们的理由主要来自C语言自身的魅力。30多年之后,它并没有因为岁月的流逝而失色。无论是TIOBE这个编程语言风向标,还是图书市场的销售情况都表明,在儿女辈的C++甚至都略显疲态的今天,C竟然是仅次于Java的第二大语言。

C语言相关的图书虽然数量一直不少,但往往取材于相似的资料来源,总体质量不高。而从市场的销售数据来看,许多读者在选择C方面的图书时仍然比较盲目,存在一定劣币逐良币的情况,这在很大程度上已经成了许多软件开发人员基础不牢、坏毛病较多的病根之一。

经典

与其他主流语言中往往有几部著作堪称不可替代的经典不同,C语言的世界里只有一本书拥有这样无上的地位,它当然就是C语言之父DennisRitchie和另一位技术专家Kernighan合著的这部不朽之作:

C程序设计语言(第2版・新版)Brian W.Kernighan, Dennis M.Ritchie徐宝文李志译机械工业出版社30.00元

本书经常被人简称为“K&RC”(K和R分别是两位作者姓氏的头字母),它在程序设计语言图书中的地位几乎与C在程序设计语言中的地位相当。许多书开始用输出“HelloWorld!”作为第一个例子,就是从这里来的。有意思的是,最近又有人批评这一惯例容易使学生产生编程很容易的错觉,产生了许多后续问题。虽然也言之成理,但是总有些苛刻了。

本书具有许多贝尔实验室大师们作品的一致优点,篇幅很小,但是内容却非常丰富,而且叙述也非常清晰。与大部分father写的作品一样,它主要还是针对有一定编程经验的读者而写的,不是完全的入门读物。当然,这也为他人编写形形色色的入门教程留下了空间。对了,本书还有配套习题集《C程序设计语言(第2版・新版)习题解答》(机械工业出版社),也有影印版。

C标准库P.J.Plauger徐明亮等译人民邮电出版社(即将出版)

函数库是编程语言的重要组成部分。但是此前出版的所有C语言著作中,对函数库都缺乏非常全面深入的阐述。本书的出版,将很好地填补这一空白。作者是著名的C`C++专家,曾经担任标准化委员会主席和C`C++User’sJournal的主编。更重要的是,他本人是一位著名的函数库开发者,为许多主流的编译器厂家提供函数库实现。本书几乎做到了极致――完整给出了C标准库的实现源代码,并一一进行解说。这使它有了与K&RC并列的资格。

入门

我经常感到纳闷的是,其实C语言方面近年来已经出了不少优秀的入门书,但是为什么还是有很多读者和老师放着好书不用,仍然在选择那些已经不能适应现在要求的、问题很多的传统主流教材甚至翻抄滥造的书呢?

总的来看,目前比较好的入门图书有翻译自国外的,也有国内原创的。相对而言,这些优秀教材有一个共同的优点,就是能够紧密结合开发实战,是为用而教、而学,而不像有些国内教材,因为作者本身往往缺乏实际软件开发经验,只能为教学而教学。由此带来的特点包括:注重软件工程,注重读者正确编程习惯和风格的培养,从实战需要出发选择侧重点,而不是平面化地去讲述各个知识点。

C语言程序设计:现代方法K.N.King吕秀锋译人民邮电出版社55.00元

有人称赞本书为“近10年来最好的一部C语言著作”。已被全球200多所学校采用为教材,包括哈佛大学、麻省理工学院、斯坦福大学等诸多名校。书中对C语言主要知识点包括函数库的涵盖都很全面深入。有些遗憾的是,此书原版出版时间较早,无法纳入C99标准的新特性。

C程序设计经典教程:第4版Harvey M.Deitel,Paul J.Deitel聂雪军 贺军 译清华大学出版社43.00元

另一部大名鼎鼎的C语言著作,教材采用也很普遍。新版涵盖了C99。

C Primer Plus中文版(第五版)Stephen Prata人民邮电出版社60.00元

一本条理清晰、见解深刻的C语言教程。涵盖C99。内容很全面。

此外,还有StephenKochan《C语言编程(第三版)》(电子工业出版社)、EricRoberts《C语言的科学与艺术》(机械工业出版社)、Hanly和Koffman《C语言详解(第5版)》(人民邮电出版社)等都是比较优秀的入门教材。国内近年出版之中,哈工大苏小红等的《C语言大学实用教程(第2版)》(电子工业出版社)、四川大学陈良银等的《C语言程序设计(C99版)》(清华大学出版社)是其中的佼佼者。

进阶

C专家编程Peter Van Der Linden徐波译人民邮电出版社45.00元

C陷阱与缺陷Andrew Koenig高巍译人民邮电出版社30.00元

C语言没有Effective C这样的著作,其空白大概只有这两本书可以稍微填补,它们都属于不朽经典之列。最近中文版再次出版,反响热烈。

此外David Hanson的《C语言接口与实现:创建可重用软件的技术》是lcc作者之一的呕心之作,本来价值极高,但是毁在了翻译上,无法推荐了。

实战

C语言解惑Alan R.Feuer杨涛 译人民邮电出版社29.00元

本书内容最初是贝尔实验室的内部培训资料。作为C语言学习的辅导书,非常有用。C语言名题精选百则:技巧篇冼镜光编机械工业出版社44.00元

本书作者是密歇根技术大学的教授,选材较精,而且代码质量也比较高。

参考

C语言核心技术Peter Prinz; Tony Craw ford O’Reilly Taiwan公司 译机械工业出版社

C语言参考手册(英文影印版)(第5版)Samuel P.Harbison, Guy L. Steele人民邮电出版社55.00元

两本书都是优秀的查询手册,而且都涵盖了C99。可惜的是,前者中文版没有索引,废去一半武功;后者中文版翻译欠佳,只能推荐影印了。

C语言目前应用仍然非常广泛,按道理还应该包括嵌入式系统编程和单片机编程方面的图书,但是一时竟找不到合适推荐的,只能空缺。读者如果有所发现,请告我为盼。

邮件是:liuj at turingbookdotcom。

手机光明网

光明网版权所有

光明日报社概况 | 关于光明网 | 报网动态 | 联系我们 | 法律声明 | 光明网邮箱 | 网站地图

光明网版权所有