[GTALUG] Python 2 vs python 3 debate

D. Hugh Redelmeier hugh at mimosa.com
Tue Dec 16 18:06:19 UTC 2014


| From: Lennart Sorensen <lsorense at csclub.uwaterloo.ca>
| 
| On Tue, Dec 16, 2014 at 10:31:04AM -0500, William Muriithi wrote:
| 
| Please no HTML crap.  Major demangling done by hand below:

Thanks.

| > Last week on Monday, Hugh listed a list of talks that were to take place
| > following Tuesday though that didn't happen.

"were to take place" is too strong.  I put forward some ideas to try
to make an empty spot more interesting (in no official capacity!).  It
turned out that the spot wasn't empty.  That's a good thing.

What was empty was the meeting announcement on the web page.  Not so
good.

| > I did note though he raised the issue of how entrenched python 2 is. I
| > am on python list and boy, that debate has been in the second week now.

I'm not much of a Python user.  I'm certainly not too aware of things
in its ecosystem.

I think that it is good that language powers-that-be consider
incompatible updates.  Otherwise mistakes are with us forever.  They
should be infrequent and probably batched.

It helps a lot if the incompatibility can be mechanically cleansed.
Second best: mechanically detected statically.  Third best:
mechanically detected dynamically.  Horrible: just behaving different
at runtime.

At some point, the community has to go cold turkey.  No new work on
libraries etc. for the old thing.  It's like taking off a bandaid: net
pain is less if the transition is quick.  Of course some kind of
synchronization would be useful.  What better use of a BDFL.


| > What I find odd is how some of the devs there misjudge the need of
| > distribution support. In most companies, installing two versions of
| > python is none starter, so don't see python 3 being widespread until
| > after two release of Redhat with python 3 native support. Two releases
| > as most people are still on RHEL5 and RHEL6 for example.
| > That may be around 2020 and hence a little early to invest in python
| > 3 scripts.

RHEL5 and RHEL6 have very long support cycles.  It is unreasonable to
claim those as requirements.  In fact, they are designed to be stable.
Doing new development on and for them is kind of a contradiction.
OK, I admit that until 7.1 is out, maybe 6 can be defended.

Fedora 20 seems to have Python 2.7.5 and 3.3.2.
Centos 6.6 only has python 2.6.6
Centos 5.11 only has Python 2.4.3

This speaks to how much RHEL values stability.

Perhaps Python routinely and frequently breaks compatibility and
that's why these old versions hang around.

BTW I consider the stability of RHEL (or Windows) a bit of a problem.
Perhaps our way out is virtual machines or containerization.  They
change coupling.  I don't really like that.

| It is rather annoying when languages stop supporting existing working
| code.  To me that pretty much means the language is immature and perhaps
| even badly managed.  Not that that has ever stopped a language from
| becoming popular.

There are so many language mistakes frozen in amber.

How long did C keep "int" is the default type if you neglect to
mention a type in a declaration?  This should have been a compile-time
diagnosed error decades ago.

How long did FORTRAN allow undeclared variables?

I don't understand what's so hard about the Python 2 => 3 transition.
Is it too big a step?  Are there not enough attractions?  Is the first 
step a lulu[1]?

[1] phrase is perhaps out of date but you can see it at the end of
<http://www.dailymotion.com/video/x48aud_merrie-melodies-jack-wabbit-and-the_shortfilms>


More information about the talk mailing list