2008-10-14 18:56:23
来自: 松茸
(中华田园老公)
Python源码剖析——深度探索动态语言核心技术的评论



Python 是公认的优秀语言,而很多人可能并不知道,标准python实现,同样是非常优秀的C源码项目。它利用中立的标准C语言,洗练的实现了动态面向对象环境,使得Python语言的灵活和优雅得以充分体现。Python平台的C源码,本身就具体很高的学习价值。然而像其它成功的大型开源项目一样,庞大的代码规模,复杂的脉络和C相对艰涩的语法,给学习者带来了相当高的门槛,很多人因此望而却步。
多年前,Robert Chen 在 Python 中文社区开始发表他的系列文章,剖析python运行时环境的源码实现和运行机制,引起了极大的轰动。难能可贵的是,老陈将这个系列的文章坚持写了下去,并且始终保持了非常高的质量。甚至,随着Python的版本升级,陈儒也认真的将文章内容不断改版升级(这一直沿续到成书时的最新版本Python 2.5)。于是,大家开始鼓动他集结出书,我也是其中之一--当时我正在涉足网游开发,对于一个钟情Python的C++程序员,这将是一件多么令人开心的事啊!于是我三番五次向博文的编辑老师们推荐这些文章。
然则博文的编辑发短信给我,问我Robert Chen是不是本名陈儒时,我才惊觉,我和他几乎是完全陌生的,我那时甚至还不知道他的名字是什么。 这一点,其实直到我收到散发着油墨香气的《Python 源码剖析》之后,才确定下来。
不过,我想,接下来,我们还是谈谈这本书,而不是写一篇《我与陈儒--不得不说的故事》,毕竟我和他都是取向正常的老男人:)。
《Python 源码剖析》,是我近年来收入的所有专业书中,最喜欢的一本。陈儒的文字有一种从容朴实的力量。尽管我们不能强求工程师的文笔有如职业作家,然而,陈儒至少做到了用轻松易懂的语言把问题说清楚。这在IT专业著作中,已经是非常了不起的境界了。 需要说明的是,我不会向python语言的学习者推荐这本书,因为它不是一本python语言的教材。相反,作为分析Python运行时机制的专著,书中充斥着有关C、C++的讨论(我还读到了有用java做为比较的段落)。这不要求读者是专业的C/C++程序员,但是至少应该能够读懂C代码,最好知道 C++ STL是怎么回事。
值得称道的是,这本书中不仅是从C层面分析虚拟机的行为,还给出了很多宏观上的图例分析,以及 Python 虚 CPU 指令解析。自下而上,完整了带出了一个经典的动态语言环境如何从思想成为现实的过程。作者的从业经验,使得他可以从实际的角度给出很好的类比和解释。例如,在分析 Python List 对象的时候,就比较了它与 C++ STL Vector 和 STL List 的异同,以及类比的C++实现。CPython 的实现本身是非常重视面向对象思想的表达,大量运用PyObject *及其派生的数据结构容器,所以用这种方式介绍Python实现,达到了非常好的效果。
这本书,我想针对的主要人群应该是下列几种:
* 需要做C/C++与python互嵌入开发的程序员,例如使用Python的游戏开发人员;
* 对python运行机制感兴趣的学习者和使用者,特别是有C背景的程序员;
* 希望优化python虚拟机效率的专业人士,据我所知国内也有一些比较有实力的团队和个人在做这样的工作;
* C 语言学习者,希望从开源项目中学习知识,Python本身是非常优秀的C语言项目,被称作是现代动态语言的典范,而《Python 源码剖析》这本书,是学习研究Python源码的绝佳指南;
在这个领域,还从未见到系统的英文著作,只有散落在各个技术社区的一些零散的邮件讨论,以及在一些介绍python语言的教材中,有涉及python运行机制的讨论,却从来没有人能做到陈儒这样,系统,全面,深入。我坚信,这本优秀的著作,值得译为英文,向全世界的C/C++/Python程序员推荐。
阅读本书时,我向读者推荐Python官方文档 Python/C API(http://www.python.or g/doc/2.5.2/api/api. html) 和 Extending and Embedding(http://www.python.or g/doc/2.5.2/ext/ext. html) 作为本书的辅助读物,一定会使您事半功倍。
当前python的新最发布版本是Python2.6,但是本书成书时还是Python2.5,不过读者不必担心内容有落伍之处。因为python 2.6主要是作为python2.5到Python3.0的过渡版本出现,业界对它的实用并不是非常的积极和主动,大多是作为研究和探索可能性之用,当前 python的主流应用版本仍是Python 2.5,而且这一趋势相信会沿续较长时间:毕竟Python 3.0 对于整个Python社区来说,太过激进了。
Python源码剖析——深度探索动态语言核心技术的评论




Python 是公认的优秀语言,而很多人可能并不知道,标准python实现,同样是非常优秀的C源码项目。它利用中立的标准C语言,洗练的实现了动态面向对象环境,使得Python语言的灵活和优雅得以充分体现。Python平台的C源码,本身就具体很高的学习价值。然而像其它成功的大型开源项目一样,庞大的代码规模,复杂的脉络和C相对艰涩的语法,给学习者带来了相当高的门槛,很多人因此望而却步。
多年前,Robert Chen 在 Python 中文社区开始发表他的系列文章,剖析python运行时环境的源码实现和运行机制,引起了极大的轰动。难能可贵的是,老陈将这个系列的文章坚持写了下去,并且始终保持了非常高的质量。甚至,随着Python的版本升级,陈儒也认真的将文章内容不断改版升级(这一直沿续到成书时的最新版本Python 2.5)。于是,大家开始鼓动他集结出书,我也是其中之一--当时我正在涉足网游开发,对于一个钟情Python的C++程序员,这将是一件多么令人开心的事啊!于是我三番五次向博文的编辑老师们推荐这些文章。
然则博文的编辑发短信给我,问我Robert Chen是不是本名陈儒时,我才惊觉,我和他几乎是完全陌生的,我那时甚至还不知道他的名字是什么。 这一点,其实直到我收到散发着油墨香气的《Python 源码剖析》之后,才确定下来。
不过,我想,接下来,我们还是谈谈这本书,而不是写一篇《我与陈儒--不得不说的故事》,毕竟我和他都是取向正常的老男人:)。
《Python 源码剖析》,是我近年来收入的所有专业书中,最喜欢的一本。陈儒的文字有一种从容朴实的力量。尽管我们不能强求工程师的文笔有如职业作家,然而,陈儒至少做到了用轻松易懂的语言把问题说清楚。这在IT专业著作中,已经是非常了不起的境界了。 需要说明的是,我不会向python语言的学习者推荐这本书,因为它不是一本python语言的教材。相反,作为分析Python运行时机制的专著,书中充斥着有关C、C++的讨论(我还读到了有用java做为比较的段落)。这不要求读者是专业的C/C++程序员,但是至少应该能够读懂C代码,最好知道 C++ STL是怎么回事。
值得称道的是,这本书中不仅是从C层面分析虚拟机的行为,还给出了很多宏观上的图例分析,以及 Python 虚 CPU 指令解析。自下而上,完整了带出了一个经典的动态语言环境如何从思想成为现实的过程。作者的从业经验,使得他可以从实际的角度给出很好的类比和解释。例如,在分析 Python List 对象的时候,就比较了它与 C++ STL Vector 和 STL List 的异同,以及类比的C++实现。CPython 的实现本身是非常重视面向对象思想的表达,大量运用PyObject *及其派生的数据结构容器,所以用这种方式介绍Python实现,达到了非常好的效果。
这本书,我想针对的主要人群应该是下列几种:
* 需要做C/C++与python互嵌入开发的程序员,例如使用Python的游戏开发人员;
* 对python运行机制感兴趣的学习者和使用者,特别是有C背景的程序员;
* 希望优化python虚拟机效率的专业人士,据我所知国内也有一些比较有实力的团队和个人在做这样的工作;
* C 语言学习者,希望从开源项目中学习知识,Python本身是非常优秀的C语言项目,被称作是现代动态语言的典范,而《Python 源码剖析》这本书,是学习研究Python源码的绝佳指南;
在这个领域,还从未见到系统的英文著作,只有散落在各个技术社区的一些零散的邮件讨论,以及在一些介绍python语言的教材中,有涉及python运行机制的讨论,却从来没有人能做到陈儒这样,系统,全面,深入。我坚信,这本优秀的著作,值得译为英文,向全世界的C/C++/Python程序员推荐。
阅读本书时,我向读者推荐Python官方文档 Python/C API(http://www.python.or
当前python的新最发布版本是Python2.6,但是本书成书时还是Python2.5,不过读者不必担心内容有落伍之处。因为python 2.6主要是作为python2.5到Python3.0的过渡版本出现,业界对它的实用并不是非常的积极和主动,大多是作为研究和探索可能性之用,当前 python的主流应用版本仍是Python 2.5,而且这一趋势相信会沿续较长时间:毕竟Python 3.0 对于整个Python社区来说,太过激进了。
本评论版权属于作者松茸,并受法律保护。除非评论正文中另有声明,没有作者本人的书面许可任何人不得转载或使用整体或任何部分的内容。
在哪儿买这本书? · · · · · ·
松茸的其他评论 · · · · · ·
- (评天下第二)
- (评银河系漫游指南)
- (评小兵传奇(1)・银河禁锢)
- (评三更)

2008-10-14 19:08:48 hacker47
那么就是说不是给用py的人看的,而是给造py的人看的。2008-10-14 19:28:44 海盗
说的我心动。2008-10-15 10:24:43 LipingTaBaBa
我坚信,这本优秀的著作,值得译为英文,向全世界的C/C++/Python程序员推荐。-------------哈,这个评价可真高了,国内好像还没几本IT技术书译成英文吧,我是一本也没碰到过.
你说得这么好,我去买了,要是没你说的这么好,找你麻烦啊
2008-10-15 10:28:52 松茸
放心,我以RP保证(话说我是传说中的RP极度缺乏症患者啊)……2008-10-15 10:39:37 海猫
呵呵,踩一脚~2008-10-15 11:00:12 仨儿
果然是老师哪!这么好的推荐感言,为什么没有给印刷到书中呢?大家开始四处传播吧!
2008-10-15 13:31:19 leg·end
松茸大叔代言,先收藏之2008-10-15 15:27:56 自然之道@与专注一起归隐
松茸大叔代言,先收藏之2008-10-18 21:26:32 酸雨
目前正切喜研读中,,,2008-10-21 08:53:51 september_29
在读中,文字略感啰嗦。2008-10-23 13:12:13 胖胖的大头鱼
用py的人页可以翻翻,有利于理解代码优化2008-11-05 14:25:21 无情不怕
我盼了5年的PY经典啊2008-11-15 11:03:22 september_29
比较晕,居然称为“著作”就一本技术书而已,望楼主用词要准确
2008-11-15 19:41:26 松茸
摇头而过,楼上,只能说你我口味不同吧……2008-12-17 12:15:54 北京未名
关注Python有机会要学的
那个perl太多让人感觉不舒服的地方了
2009-05-06 00:13:44 星点@坚持正义的垂耳兔
蘑菇大叔到底在哪个公司呢?做网游,又py...除了网易就是kingsoft吧....这本书我收了,最近没读过啥养眼的技术书籍。正好找工作,充电吧
2009-05-06 00:19:59 松茸
网游是过去式,现在是一鸡尾酒程序员,什么都写一点2009-05-06 00:26:34 星点@坚持正义的垂耳兔
。。。level真高,仰视....话说大叔你的书有签名么?
2009-05-06 00:47:12 松茸
没有,掩面……2009-06-18 21:29:08 Berger
呵呵,对于python我还未算入门,本来是phper 但对于php的运行机制,资料感觉很少,就manul 上那段 who knows don't say who says don't know ,后来发现这本书,至于那里面的理论我是不能领会的,但对于我 理解php 虚机,确实启发很多。2009-10-22 18:27:22 亚麻纤维
学习python的下一本书就是它2009-11-12 17:43:59 23号
准备再看一遍。2009-11-13 20:13:10 小丽
万众期待,嘿嘿,我也期待2009-11-15 18:16:00 hetang
我买了一本,就是书中有若干处错别字,编辑没有发现。2009-12-09 19:20:05 空
最近准备看一下,好像不错> 我来回应