What version of python do you plan on supporting?
I'm reading some stuff for python 3.0, and I've read that its going to be backward incompatible with any earlier verison. This is how they plan get rid of some problems plagueing the lanuage for a while.
Here is my source:
http://docs.python.org/3.0/whatsnew/3.0.html
I'm also playing around with Python3 in my hobby projects because it's more fun, while I only have 2.6 at work (which is fine). Actually there aren't many gotchas, mostly:
- print function and division, both of which can already be used in Python2.6 ( from future import division, print_function )
- synctatic sugar: set literals etc
- no more distinction between string and unicode (you can read csv data using csv module without any additional workarounds...)
- new style classes (optional in python2.6)
- abstract base classes
My point being: unless you depend on some large code written in 2.6, it's really easy to switch to Python 3 or back.
--------------
I like Python3 a lot, but I think going with Python 3 right now might not be the best idea. While it's stable, some wrinkles are still being ironed out. It's also about 10% slower than 2.6, but that's to be expected, optimisations are added later. Hopefully switching from 2.6 to 3.0 won't be a problem for Elemental if it's sufficiently modular and well designed.
For those concerned about performance, Google (which now employs Guido van Rossum, Python creator) started a project called Unladen Swallow. They have plans to speed Python up 5 times within a year, using LLVM (Low Level Virtual Machine). No changes to code necessary, full compatibility is to be kept. Q1 2009 release is already out, and it already provides speedups of up to 25% One year may be too long to be viable for Elemental, but, again, if Elemental is modular enough it shouldn't be a problem to switch later. I hope.
http://code.google.com/p/unladen-swallow/
The conventional wisdom that interpreted languages must be slow by definition crumbles. There's a lot of research and modern concepts proven effective in practive (check out Unladen Swallow RelevantPapers section). Psyco already speeds up Python code about 6x on average (but unlike Unladen Swallow, it needs some extra stuff put into code, and there won't be versions for Python3 ). PyPy is an implementation of Python written in Python for research purposes. Parrot is a virtual machine tailored for the needs of dynamic languages, in contrast to Java virtual machine which is made for static ones. Parrot promises some crazy stuff, like writing a class in Perl, subclassing it in Python and creating an instance in TCL, or was it TK...
This progress is not exclusve to Python. CrossTwine supposedly speeds up Ruby 4x. http://crosstwine.com/linker/ruby.html