星期一, 2月 19, 2007

[link] PyPy 0.99.0 released !

http://codespeak.net/pypy/dist/pypy/doc/news.html

光看這個版本號就非常令人興奮. 沒想到1.0指日可待了 :)

PyPy一直是我非常關注的專案,
作者群裡面包含了Psyco的作者跟不少很有經驗的開發者,
加上有金主奧援, 可以看作是Scripting Language的指標專案之一.

專案的目標主要是用python來撰寫Python Interpreter,
PyPy的實作相對於其他如Cpython/Jython/Ironpython的好處是:

1. 讓Interpreter核心程式碼更容易懂:
使用Python而非傳統使用C或C++或java或C#

2.更容易移植
PyPy基本上顛覆了傳統撰寫Interpreter的方式,
PyPy並不是對特定平台而寫,而是寫出來之後低階與機器相關的部份透過"language specification"來翻譯.
所以實際上Interpreter的核心不論在哪個平台其實程式碼都是一樣的.
只有低階的部分由rpython撰寫並透過不同的翻譯器翻譯成目標平台的語言.

目前的svn code裡面的平台翻譯器有C/Java/.net/Common Lisp/Java script/squeak(small talk)/llvm. (翻成Javascript倒是挺有趣的, 這裡還示範了怎麼用pypy在django裡作ajax =.= 不過這麼前衛然後再加一層的技術目前我是不敢真的用在專案上的 除非pypy1.0之後有很多人採用 不然暫時我還是喜歡乖乖的寫我的javascript :P 不過有興趣而且不喜歡javascript的人倒是可以看這篇Developing web applications with PyPy)

3.更容易加入JIT compiler
官方宣稱透過"language specification"的方式可以作到傳統Interpreter作不到的事情,
例如替Interpreter加入JIT compiler,讓Interpreter也能達到接近native language的速度.
不過0.99版由於JIT尚未整合進Pypy核心, 所以還未放入,
所以實在是不知道未來PyPy到底能多快. (我對這個一向是抱持著看到才相信的態度 :P)
不過當初的秘密謠言(Rumors have it that the secret goal is being faster-than-C which is nonsense, isn't it?)...
對比現在的0.99版官方宣稱的overall 2-3 slower than CPython實在是無法令人滿意...
最主要是JIT的速度不如預期, 所以只能說請PyPy Team裡的高手多加加油了...

也希望快點有1.0出來囉也希望1.0文件多一點...
現在的文件數目對於我這種只是看著code流口水的EndUser來說實在是有點太少而且編排太亂...

ps: 剛看到reddit上也有人在討論 看起來像是rpython的使用範例.
範例中透過translatorshell.py翻譯Rpython成為C code可以比原先的pure python code快了70倍.
http://programming.reddit.com/info/152lr/comments/c156v0

沒有留言: