Jan Danielsson wrote: > But then it occured to me.. I started writing my program in Java > pre-1.5. Then came 1.5, I upgraded, and my program would still compile > and run, though I did get three warnings. The language had changed a > little bit; I had to assign a type to three arrays. That wasn't so bad. > > However, when I look at the various Python modules/libraries, I see > that there are several versions of them, for different versions of > python. I've seen everything from "for python 1.5" up to "for python > 2.4" with all versions in between. This scares me a little bit. I assume > that the reason for the different versions is because of new language > features?
Python is generally backwards compatible * pure Python modules will work unchanged when used with a newer version of Python (so it's almost always: for Python 1.5 and later). You might get some deprecation warnings and these appear one every run (compared to Java, where they appear only when compiling). But they can be disabled. * Python extension modules written in C can mostly be recompiled from source with the new headers and will work as well * binary extensions generally won't work with newer Python, that's why you often see several downloads for a specific module. On Unix, binary compatibility worked pretty well up to 2.2 (Meaning I could use modules compiled for 1.5 with Python 2.2), but that was just a coincidence and I wouldn't rely on it for future versions. Summary: If you are able to compile all your needed extensions yourself, then new Python versions aren't really a problem. Daniel -- http://mail.python.org/mailman/listinfo/python-list