----- Original Message -----
On Tue, 2013-07-23 at 02:40 -0400, Bohuslav Kabrda wrote:
python2 and python3 are separate languages. There is a lot of
similarity
between the two and with recent enough versions of python2 (2.7) and
python3
(python3.4) and some external libraries (python-six) and by sticking
to some
specific coding styles ( http://python3porting.com/noconv.html ) and
by
sometimes resorting to having separate files for some
python2-specific
routines vs python3-specific routines you can write code that is
valid and
runs under either language. That does not mean that they are the
same
language.
The problem is that you're basically saying "my mental model is the right one", which is not necessarily true for everyone (and not necessarily true generally). Taking your arguments a bit further, Python 2.6 and 2.7 are different languages too, since there are some backward incompatible additions to Python 2.7.
Python 2.7 might not be backward compatible with 2.6 or 2.5 but 2.5 and 2.6 is forward compatible with 2.7, which is not true for python 2.* vs 3.*.
Good point, but not entirely true, IMHO. If you look at Python 2.7 release notes [1], you'll find out that e.g. float-int conversions round differently. So if you targeted your code for 2.6 working under the assumption that the rounding will have a certain result, your script will likely break (e.g. what you wrote for 2.6 may fail in 2.7).
That makes them more of different languages than 2.6 vs 2.7.
Pierre
[1] http://docs.python.org/dev/whatsnew/2.7.html