Chinaunix首页 | 论坛 | 博客
  • 博客访问: 467230
  • 博文数量: 55
  • 博客积分: 2603
  • 博客等级: 少校
  • 技术积分: 750
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-31 02:30
文章分类

全部博文(55)

文章存档

2011年(1)

2010年(22)

2009年(17)

2008年(15)

我的朋友

分类: C/C++

2008-10-15 10:57:08

  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() 和 Extending and Embedding() 作为本书的辅助读物,一定会使您事半功倍。
  
  当前python的新最发布版本是Python2.6,但是本书成书时还是Python2.5,不过读者不必担心内容有落伍之处。因为 python 2.6主要是作为python2.5到Python3.0的过渡版本出现,业界对它的实用并不是非常的积极和主动,大多是作为研究和探索可能性之用,当前 python的主流应用版本仍是Python 2.5,而且这一趋势相信会沿续较长时间:毕竟Python 3.0 对于整个Python社区来说,太过激进了。
阅读(2327) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~