最近在网上看到这个《Python源码剖析》系列,写得很好,赞一下顺便帮着宣传http://blog.donews.com/lemur/,呵呵
顺着看下来,发现Python的实现的确有够糟糕。又引用计数来维护对象进行垃圾回收,每当一个对象的引用计数减到零时就进行回收――我怎么也觉得这是十年以前的技术了。
另外比如对于int和string类型(都是经常被大量创建和销毁的对象)使用了两种不同的缓存机制来加速。但是对于int来说,只有一定区间内(官方版本里是[-5,100)之中)的整数才能被缓存,而区间之外的整数来说都会被创建多个不同的副本。而对于string则是虽然被缓存再利用但是缓存之前字符串一定要被创建一次――也就是说这个机制只能帮助只是帮助比较操作(估计是没说清楚:-p)。本能上觉得应该有更好的做法,但也未必,因为我实际上也就看过这一种实现。
再有的发现就是一个PyPy项目http://codespeak.net/pypy/dist/pypy/doc/news.html,用Python来实现Python。从用Lisp实现Lisp开始,我就没有搞清楚这里的逻辑关系,抽空要把这个项目看一看。
我们现在要编写一本Python的图书。不知道你是否有兴趣编写。如果有兴趣,请与我联系。我的QQ是707915974。