[STORY-TIME] THE BDFL AND HIS PYTHON PETTING ZOO

Rick Johnson rantingrickjohnson at gmail.com
Mon Feb 15 21:02:10 EST 2016


On Friday, February 12, 2016 at 1:51:35 AM UTC-6, John Ladasky wrote:

Reguarding a migration from Python2 to Pyhton3, John said:
>  I had to wait until my favorite packages were ported
> (numpy, scipy, matplotlib, pandas).

WxPython is not ported either, much to my chagrin.

> But once that happened, I moved from Py2 to Py3 years ago
> with scarcely a bump, bruise, or scratch.

So you have no Python2.x code remaining in your repos? Are
you telling us that you moved *EVERYTHING* to Python3? If
so, i can't imagine how something like that would even be
possible, hmm, unless of course, you don't have much code to
move...?

I could imagine that *IF* someone's entire Python repo
consisted of a couple hundred (or less) small scripts, with
few, or no, dependencies, such a migration would be
relatively easy. But even though i've only been writing
Python code for a handful of years, my repo consists of
thousands of scripts, millions of lines of code, and many,
*MANY* dependencies -- because after all, DRY is very
important, yes?

(That reminds me, i need to write a script to compile some
statistics on these files...)

> I like lazy evaluation.

Well, it is a "Pythonic feature" no doubt. And I'll admit,
many of the changes are "good changes". But they are not
good enough to risk blowing up millions of lines of code,
John. And what will i gain if i did? Nothing. There are *NO*
new features to offer my users, and even the features that
*WOULD* improve my coding experiences, are not enough to
warrant the misery.Heck, almost all of these festures i
could implement myself.

What's easier: migrating millions of lines into a hostile
environment just so i can gain a few new functionalities, or
writing a few lines to bring the needed functionalities to
*ME*? I don't need, nor do i want, *EVERYTHING* that Python3
brings to the table.

> I think that Unicode handling is vastly improved (and yes,
> I'm fully aware that exactly two people in this newsgroup
> don't agree, they make sure we all know).  I have
> encountered few surprises, and nothing that makes my job
> harder.

Well John, not everyone is going to experience the same
"level of onerous" when they port their code over to
Python3. Perhaps your case is unique. And there is no way
for myself, or anyone one else, to make an objective
judgment, without looking at the breath and depth of the code
you had to migrate.

Perhaps you don't have a lot of dependencies. Perhaps you
have not engineered "feature-rich libraries". Perhaps you
have have not written code that is on the bleeding edge, or
pushed your mental power to it's extremes. Perhaps your code
style is to "play it safe". Perhaps you're scripts consist
mostly of simple maintenance and utilities.

So even if you "believe" that the migration from Python2.x
to Python3.x is smooth, you're only able to make that
judgment relative to own *PERSONAL* experience, with your
own *PERSONAL* library.

So even though there is only two people in this group who
don't care for Pyhton Unicode handling (hey, your stats, not
mine!), there is only *ONE* of you who can judge the level
of onerous required to migrate *YOUR* code! Until you make
the depth and breath of you repo publicly view-able, your
opinion is just that -- an *OPINION*!

As for me, I've written vast libraries over the top of
wxPython and Tkinter. I've extended existing functionality,
added new functionality, and created a more consistent and
intuitive API than either library could have dreamed. I've
spent many long hours debugging, testing, and perfecting
these libraries, and so far, they work very nicely. Heck, my
refactored Tkinter API, and IDLE editor, is leaps and bounds
ahead of anything Python3 could manage to do. And it's a
shame too, because these two libraries are among some of the
oldest and most neglected of all.

But now i'm faced with a tough choice: (1) I could attempt
to migrate all these libraries, and risk mountains of subtle bugs
echoing down the inheritance/dependency chains, or (2) I
could leave the code where it is, and milk-it until the
majority of OS's will no longer run Python2.

JUST FYI: I'M GOING WITH CHOICE NUMBER TWO!

Why? Because only a fool would risk "exception hell" on code
that has been stable for a reasonable amount of time. Ever
heard the expression: "if it ain't broke, don't fix it"?
Well my code ain't broke, and until it becomes broken, my
time would be better spent forging new paths, instead of
flogging the old ones like dead, quadrupedaled, "beasts of
burden"!

> To be sure, people who are entrenched in the Py2 way of
> doing things, with a lot of legacy code, have some work to
> do -- on their code, and possibly on their brains.

Your "veiled ad hominem" is not justified John.With that
statement, you've just insulted well over half of the Python
community -- and the "better half", i might add! You're
talking about people who have been coding python, and many
other languages, probably long before you were even born!
I'm not as "curmudgeonly" as some folks around here, but i'm
no "spring chicken" either. Hurling personal attack just
because people don't gush over your beloved Pyhton3 is a
low-blow.

> Keep Py2 if you want it, then.  You still have a few more
> years before the PSF stops maintaining it.  If you really
> like it that much, why not maintain it yourself?

I don't need Python3. And i reckon that by the time i do,
something more interesting will come along, or, i'll create
something more interesting myself. i've been drafting, and
dreaming, of a new language spec for over a year now.. And
the best thing about starting a new language, you can do
anything you want... no dependencies!


More information about the Python-list mailing list