就在两天前的晚上,我彻夜不眠地将《永生之酒》这部动画看完了。
这部作品叙事的方式很独特:一般的作品,通常叙事都是以一条时间线、单角色的角度进行的,而《永生》则将一个故事拆散,用三四条时间线分别错开,每条时间线上还有多个角色分别叙述自己的故事。
这样大胆的叙事方式,很明显产生的结果是,如果你不将整部作品看完的话,你根本不明白发生了什么事情——你看完前两三集,发现自己连故事背景都没搞清楚,因为它根本就没交代!挣扎着地将整部作品看了一半之后,你才开始对故事有些眉目,但还是不能总揽全局;忍无可忍看到最后一集,看着原本错开的几条时间线逐渐相交成一点,而分散的各路人马也最终汇集在一起,整个故事才圆满收尾。
这时你才明白导演在编剧方面的良苦用心,你发现之前让你痛苦不堪的叙事手法,到最后反而让整个故事变得更有味道。
当然,遗憾的是,并不是每个人都有机会看到这个故事的结局,也许刚开始,有一半人被特别的叙事手法吓跑了;而故事进行到一半的时候,也许另外一半人又因为忍受不了慢热的剧情而离开了,而剩下的那些人,才最终看到了整个完整的故事。
这种感觉有点像是在黑夜中前行一样——你的前方、路的尽头,有一丝微弱的光线,你知道方向就是这样,路就这一条,但你不知道还要走多久,还要走多远,你唯一能做的,就是耐着性子,一步一个脚印向前迈进。
---
某种程度上,阅读这本《Practical Common Lisp》(后称PCL)的过程也是如此。
正如作者在第三章所言的那样,这本《PCL》并不是以一般的语言书籍作为模板的,那些循规蹈矩的语言教程总是先教你定义变量,了解语法结构,告诉你如何定义函数、对象、包,从开始到结尾,难度逐渐加大。
而这本《PCL》则更符合实用原则,提倡在实践中学习——只介绍最少的理论,最少的API,然后,剩下的就是边编程边学习了:在这本书的正式开始部分,第三章,它在介绍了少量必要语法知识的前提下就用一个数据库的例子介绍了Lisp的列表操作以及文件的读写,在最后还直接了当地引入了Lisp的大杀器——宏,一点不废话,然后,在第三章之后,才开始花了几章的边幅,介绍第三章所用到的技术,在这之后,章节的编排基本就和一般的教程没有什么两样了。(其实,如果你读过pragmatic programmer的书,你可能早就适应这本书的风格了。)
当然,作者偏向实践性的写作方式和章节编排,并不是为了文学创作需要或者故意刁难读者,而是,一方面,函数式编程作为一个长期被误解为“学院派”的方向,急需一些“实用型”的书籍来为普罗大众解毒;另一方面,如果一开始就长篇大论介绍函数式编程的细节和理论(lambda、eval。。。),然后才开始讲common lisp,恐怕最后反而会吓怕更多人。
译者在序言中说这本书可以让新手入门common lisp,我对此并不(太)反对,但由于这本书趋向实践性的编排方式,一些理论介绍得比较简单,而如果缺少对一些关键理论的理解,就会给Lisp的学习带来困难,所以我个人感觉从这本书入门并无不可,只是难度偏高,你得有一定的耐心,将书读透才行。
当然,这个过程可能是不太容易的,我猜在第三章之后,一半人放弃了,然后在第七到第九章之间,在宏的折磨下,又一半人放弃了,然后剩下的人,才有机会最终一窥Lisp之美。
就像看动画一样,通常只有“熬”到最后的人,才有机会遇见美好的结局。
---
最后,看到有一些人评论者抱怨这本书翻译质量不好,对此我比较难以理解:靠着一些《SICP》的经验,这本书我看得很快,只分两次就读完了,24章之后挑了两三章来看,因为没接触过宏,在宏的章节遇到了点麻烦,但没有停留太久。
我个人认为这本书的整体阅读体验还是很流畅的,整本书从内容和翻译上来说都算得上佳作——我觉得读者们应该庆幸,这本书是由一个真正的Lisp程序员来翻译,而不是一个JAVA程序员或者外语系的三年级生。
如果你在阅读这本书的过程中觉得举步维艰、晦涩难懂,比起怀疑翻译质量,也许更合理的做法是补充一下自己的基础知识,如果你也这么认为的话(嗯,另外一部分人也许不愿意承认这个),那么《SICP》的课程视频和书本,以及paul graham的文章,比如《root of lisp》都应该是你的好帮手。
嗯,大概就那么多了,各位加油,我们在终点再会。
---
传说中的脚注:
程序员修炼之道,check list 26,"select" isn't broken
root of lisp(中文):
http://daiyuwen.freeshell.org/gb/rol/roots_of_lisp.html
sicp视频(youtube的有英文字幕):
http://www.youtube.com/results?search_query=sicp&aq=f
http://www.youku.com/playlist_show/id_3967477.html
在黑夜中前行
对“在黑夜中前行”的回应
《实用Common Lisp编程》热门书评
-
在黑夜中前行
58有用 3无用 黄健宏 2011-10-31
就在两天前的晚上,我彻夜不眠地将《永生之酒》这部动画看完了。这部作品叙事的方式很独特:一般的作品,通常叙事都是以一条时间线、单角色的角度进行的,而《永生》则将一个故事拆散,用三四条时间线分别错开,每条时间线上还有多个角色分别叙述自己的故事。这样大胆的叙事方式,很明显产生的结果是,如果你不将整部作品看...
-
是我心太浮躁还是翻译的晦涩
10有用 6无用 Neckau 2011-10-20
我知道这样说对辛苦翻译的作者很不公平,但我还是要客观地说出我的看法。我看到第十七章时实在是无法忍了。本身自己之前积累的LISP基础也就包括了基本的语法使用,此书前些的章节,不通顺的语句凑合着自己的理解也就读懂了。但是实在是乏力啊... ...靠着老本终有倒下的一天。看书的目的毕竟是学习而不是复习。不...
-
这本书是怎么被翻译烂的
9有用 4无用 祯 2013-03-19
首先我要说明的是,我非常尊重那些将外文技术书籍和技术文章翻译为中文的人。这是一件有点吃力不讨好的事情,翻译的好,大多数人会认为是原作者书写的好。如果翻译的差,就要被人抨击 "这本书被拙劣的翻译毁掉了"。因为我后来自己翻译了《practical clojure》这本书,了解到这背后...
-
不得不说实在翻译得让人失望
9有用 0无用 psychehao 2013-06-27
书是本好书,出版前就在当当第一个预定了。结果是比较失望的,学习到第18章,实在是受不了了,才找来英文版重新来过。现在已经把整本书学习了一边,回头再看看翻译的这版,才知道翻译的有多么糟糕,不知道那些觉得翻译的还不错的人...
-
学习一门能够改变思想的语言
7有用 1无用 kraft 2011-10-26
Lisp 作为经典的黑客语言,日久弥新。对lisp 我想补充几点,1 应该是lisp中首先提出垃圾回收机制;2 lisp 的java 平台版本clojure也很火;3 作为函数编程语言鼻祖 影响深远,尤其在现在硬件高度发达的情况下优点非常突出。 lisp 关注者相对于其他语言确...
书名: 实用Common Lisp编程
作者: [美] Peter Seibel
出版社: 人民邮电出版社
原作名: Practical Common Lisp
译者: 田春
出版年: 2011-10
页数: 417
定价: 89.00元
装帧: 平装
ISBN: 9787115263742