武汉博文官方博客http://blog.csdn.net/bvbook

技术凝聚实力 专业创新出版 与向上的心合作 共同成长!

原创 深刻揭示Python 与C/C++互动收藏

按:陈儒先生的《Python源码剖析--深度探索动态语言核心技术》已经上架销售,欢迎大家评论、样章试读和购买,点击下图免费试读:

 

Python源码剖析

今日最新排名已经杀入互动网销售前十,特截图留念,呵呵。

海猫MSN上问我:能否帮着写一篇《Python源码剖析》的书评?他给我发这条信息时,我正在聚精会神地敲一段超无聊的代码,我看到这话吓了一跳,脑子一激灵,手一颤抖,一个伟大的死循环就此诞生。

我知道,这都是上次写书评被人骂了之后留下的后遗症。教训深刻呀,它让我再次清醒地认识到,胡说八道是没好下场的,作孽总会遭报应,只不过有现世现报的,有来世再报的,也有子子孙孙无穷报的,总之不是不报而是时候未到的。

所以这次我学乖了,在决定写下以下的文字之前,我找海猫要了近一半的书稿内容,打算好好啃上十天半个月之后再码个三五万字的、足以让鲁迅先生汗颜的书评出来,灭灭那帮鄙视我的IT人的威风,并以此向他们证明一点,即老韩我在技术上菜是菜了一点,写出来的文字也是俗了一点,骂人骂得是没品位了一点,但百无一是之中总有一样是可取的,那就是:起码我挑错别字还是眼光毒辣的。

但事实证明我错了,拿到书稿之后,翻完第四篇我就开始后悔,不仅后悔,甚至悔得连自杀的念头都有。因为......理由嘛,就像现代社会女人口中的"爱"字一样,很难说出口。待我梳弄完百结千愁的郭敬明式的忧伤,浅吟低唱着向你道来--因为实在看不懂。  

这是个历史问题,其渊源可以追溯到Long Long Ago的好几年前,那时年少,风华正好,年轻的我有着年轻的心以及两弯水汪汪的大眼睛,那时我在自学一门语言叫做C语言,用的教材是谭浩强老师的《C语言程序设计》,数月后,自以为学有所得,甚是高兴,高兴之余便开始夸下海口说我要搞编程,抱着这种想法,挤进了IT圈。然而挤进门去之后却没高兴太久,因为慢慢的我发现,一般情况下的大部分时间里,不是我在搞程序,而是程序在搞我。究其原因,是因为谭老师显然是一个理论家而非实践家,在看他那伟大的《C语言程序设计》的时候,他书中的大部分例子对我而言只是起到了酒精的作用:看时感觉很High很懂,而事实上转天即忘。你知道,当一门伟大的语言堕落到只用于解答纯粹的数学问题而对解决实际问题百无一用的时候,学习者也容易堕入到自以为是的怪圈,即:自以为什么都懂了,而事实上什么都没懂。不幸的是,在IT圈也如同在娱乐圈一样,凡事也是要讲潜规则的:做为一个底层程序员,不是你能说会道资本家就会给你工资,做不出东西来只有一条路可选那就是卷铺盖走人--长得帅被老板娘看上的除外。

于是乎,满以为找到黄金宝藏的我时运不齐、命途多舛,刚刚挤进门就被赶了出来。被赶出来之后我就再也没有碰C这个东西。并转行做起了设计和责编(混饭吃),再后来的故事就有点俗套了:因生计故,最后被逼良为那什么成了一名PHP程序员并一路混到了今天。

当然,这段话和我要写的书评完全没有关系,按小说的逻辑来说可以算是个楔子,即交代完主人公的前世今生,下面才是正文。

从上面的介绍您应该可以看到,我其实是个菜鸟。那么,聪明的您、资深的您也许就要问了,这博文怎么回事?找一个这么没文化的菜鸟来写书评,海猫同学脑子进水了吧?--说得有道理,我估计也是,海猫嘛,在海上泡这么久的猫,脑子不进水那是神,或者机器猫。

而事实是,高手是不写书评的,高手都写序去了,比如为这本书写序的三位专家,那可是国内Python界如雷贯耳的名字(我还就用夸张的词,不怕你说我拍马屁,何况,他们本来不是马,你们鄙视不到我。):  

一、李迎辉(limodou,史称木头):Python-cn社区资深会员,貌似创始人之一?UliPad的作者。
二、黄冬:新浪邮件中心Leader,貌似在写一个开源的DNS服务器。
三、冯大辉:著名DBA,《Learning Python》(Python语言入门)第一版的译者之一,国内Python先行者之一,dbanotes.net站长。  

大家可以看到,大师们是不屑于写书评的。但这活总有人干呀对吧,所以,这就有我这等小角色的用武之地了。因为书评者,读者眼中事也。

言归正转,首先说,这是一本好书--无论你认同与否。或许你要说:扯吧你就,你帮别人写书评,你当然不会说这是一本不好的书呀。随便你怎么理解,但我要说,这真的是一本好书,理由是:它除了是一本好书还是一本好书。(有这么胡搅蛮缠的吗?)

我有我的理由: 

一、真正用Python或者PHP做过网站的都知道,脚本语言最大的不足就是效率问题,同样的一个处理,用C写的模块来处理,可能会比用脚本语言写出来的快上10倍甚至更多,而这也正是PHP Perl存在的理由以及诸多C写的python模块存在的理由。举一个最直接的例子,在我用python来解析JSON的时候,经测试,cjson的处理速度是py-json处理速度的9倍。而在我使用python-memcach模块的时候,也同样有这样的问题,C写的模块,其匹配key的效率基本上是py-memcache的4-5倍,尤其是对较长的字符key的匹配。这就说明,如果要写出高效率的脚本程序来,那么用C来写模块是必由之路,所谓算法优化之类的讨论完全是属于扯谈,程序员中没多少是很牛的数学家,如果你不能曲径通幽,那我劝你还是老老实实地把握好语言的优势,也可算是蹊径之一。而《Python源代码分析》正好为你提供了研究python核心代码的知识,让你成为Python高效率程序开发员成为可能。 

二、研究一门脚本语言,深入的去研究其运行机制是很重要的,因为这可以为你以后写出更高效率的代码打下基础,毫无疑问,一个懂得脚本程序运行机制的开发人员,写的程序无论是执行效率还是程序规范,都会比一个只会字符串操作的开发人员写出来的强的。这就如,一个懂得重力加速度以及人体脆弱部位的人与一个啥都不懂的人,在跳楼自杀的效率上总是前者高于后者一样(这什么破比喻呀)。  

三、纵观全书,作者对Python的对象机制、数据类型机制、编译机制、内存管理机制,分析得还是比较透彻的,这在一定程度上有助于从C阵营转过来的Python新手更快的理解Python。

四、这本书的作者陈儒老师文学功底很深,像个文人,纵观全书,诸多词汇信手拈来,行云流水。抛开其中一些晦涩的术语不谈,光文字就很精彩。比如下面这很有意思的一段:"列位看官,花开两朵,各表一枝。我们先把这个问题放一放,看一看在Python开始运行时,第一个PyListObject对象被创建时的情形。嗯,这有点像上帝创世纪,挺有趣的。"--是不是有点古龙或者金庸的味道?

当然,不能总是夸奖,也有不足,不足之处在于有些地方作者太过于注重语言表达而不是平铺直叙,我觉得这可能是作者忽略了技术书的使命的结果,或者也许是作者对自己文字水平太过自信的结果,无论如何,我们不得不承认的是,作者的优点也恰恰是其缺点。尽管书中太量的实例在一定程度上弥补了这种不足,但瑕不掩疵,终为诟病。

而需要说明的是,这书说实话并不适合Python初学者,尤其是没有C或者C++基础的初学者。  

以上为个人看了几篇样章之后的观感,不足成其为书评。只算是一家之言吧。如前面所言,本人技术水平不怎么样,不敢做更深层次的技术上的评判,但愿没有误导您。倘若误导成为了事实,欢迎你骂我,但请别带上我爸妈以及我的亲人--因为他们比我更不懂技术,这不是他们的错。

作者:搜狐老韩

更多推荐书评:

黄冬先生推荐序

冯大辉先生推荐序

Limodou先生推荐序

作者陈儒先生博客

发表于 @ 2008年07月21日 11:53:00|评论(loading...)|举报|收藏

新一篇: 《编程之美》读书笔记:2.1节“求二进制数中1的个数”扩展问题2 | 旧一篇: Web改变世界,我们以REST的方式创造Web

用户操作
[即时聊天] [发私信] [加为好友]
武汉博文视点
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
武汉博文视点的公告
参加读者调查,免费获取新书
博文视点,年底重磅原创
Web2.0好书推荐
文章分类
收藏
    博文视点合作伙伴
    01.《程序员》杂志
    02.CSDN读书频道
    03.51CTO读书频道
    04.博客园
    05.JavaEye技术网站
    06.中国互动出版网
    07.卓越亚马逊
    08.华储网
    09.新风雨网络书城
    10.当当网
    11.IT专家网Linux频道
    博文视点图书网站
    《RESTful Web Services中文版》官方网站
    《Silverlight 2完美征程》官方网站
    《代码大全》官方网站
    《移山之道》读者社区(RSS)
    《编程之美》“智慧碰撞”专栏
    《走出软件作坊》官方论坛
    《软件调试》官方网站
    博文视点团队博客
    策划营销团队博客
    编校团队博客
    设计团队博客
    博文视点专家博客
    DBA notes-冯大辉
    Delphi专家-李维
    GIS专家-蒋波涛
    InfoQ中文站主编-霍泰稳
    ITECN博客主编-盆盆
    LVS创始人--章文嵩
    MySQL专家-简朝阳
    OSGi先锋-林昊
    Python源码剖析-陈儒
    Silverlight 2完美征程-李会军
    Windbg专家-熊力(RSS)
    Windows系统技术研究-潘爱民
    冒号和他的学生们-郑晖
    大道至简-周爱民
    开源网格GIS实验田-高昂
    搜索专家-车东
    测试专家-陈绍英
    移山之道-邹欣
    系统架构师-张宴
    设计模式-王翔
    走出软件作坊-阿朱
    软件调试-张银奎
    轻轻松松自动化测试-朱少民
    存档
    Csdn Blog version 3.1a
    Copyright © 武汉博文视点