Hi Josh, Josh Gilbert wrote: > > ## References > I've found a comment on LtU suggesting that it is extremely hard to > learn, yet a valuable skill if you can cut it: > http://lambda-the-ultimate.org/node/1260#comment-13972 >
I'm not sure I said it is 'extremely hard' or it is a 'valuable skill' - but i definitely said: """ Python is a subset of Python. The rules as to what the subset is vague indeed, but in short writing code without using dynamic language features post import time (ie the static-ness is based on code objects not python code) should be enough. These rules are fairly well documented and unlikely to change significantly in the future. The problem (IMHO) of promoting it is a language is that the tool chain is extremely non-user friendly and it is necessary to have a good understanding of how the flow graphs are created and how the several annotation passes work. All you will get is a stack trace in some obscure area of the annotation code for a compile error. :-) If one takes the time to learn how the above works then you have pretty useful language at your disposal. """ Well I wrote that many moons ago. And is more or less still true - except I understood pypy's tool chain better than I do now. After spending about 4-5 months rewriting a quite large application from python to rpython - I can say this about having a 'pretty useful language at your disposal': (a) the translated rpython code was faster than python (b) some parts were pretty much a copy and paste of the original python code and just a few tweaks to make it compile (c) some parts were a complete rewrite (d) the time taken for (b) and (c) was no less than it would of taken to write the code in say java or c++. (e) the end result is still some nice python code that was still readable and easy to modify. (f) a lot of niceties of using python go out the window such as no long waits for compiles, nice stack traces, run time introspection, no segmentation faults, etc etc (a), (b) and (e) are advantages (c), (d) and (f) are disadvantages. Of course if your application is interpretative and can make use of say the jit (and similar arguments for other features like the stackless transformation), then (d) would be a massive (colossal) effort that you get for free via pypy. (f) does also have the advantage than rpython is python and during development one can run with some interpreter. YMMV Cheers - Richard _______________________________________________ [email protected] http://codespeak.net/mailman/listinfo/pypy-dev
