I've been trying to teach myself Python recently, with mixed success. (Recently, I have been a little seduced by the availability of resources and community around Ruby, since my interest is mostly in doing things on the web - so e.g. Rails vs. Django, even though I conceptually like the later, for some logistical reasons I am finding the former to be a little tempting to experiment with more.)
However, a principal question I still have concerns the different versions of Python. [http://wiki.python.org/moin/Python2orPython3]
I have read the Wiki and understand some of the differences, or lack-of-differences, but am still unclear. For example, I know some servers or services (eg Google App Engine) are at one version, while others are at another. Should I be concerned about any of this? Is there any reason to try to use Python 3 at present? Etc?
Thanks for any insights here!
What most developers do to support both Python 2 and 3 is to write the code in as-portable-as-possible Python 2 and convert it using the '2to3' tool (or similar, more intelligent tools, do a search) before each deployment/release.
Portable means "use no modules that are deprecated in 3.0", using modules that simply have another name is OK. Language constructs are (usually) simply converted. In that case you have to test in both Python 2 and 3.