[Python-Dev] Relative Package Imports

Tim Peters tim_one@email.msn.com
Sat, 18 Sep 1999 23:18:52 -0400


[MAL]
> ...
> Seems that we're a bit too healthy (see MarkH's post) sometimes,
> i.e. there isn't all that much room for experiments.

The odds of a change making it into Python radically decreased when 1.0 hit
the net, and have continued to decline (although slowly) since then.  In
recent years, Guido appears to me to have gotten ever more reluctant to
entertain even 100% compatible changes to the internals, if they affect a
delicate area of the implementation (ceval.c is the most obvious one there).

But that's "normal & healthy" <wink> too.  Languages & implementations get
brittle with age, and it's eventually better to start over -- if Guido
didn't have Python2 plans in mind, he'd be the first language designer ever
to stop where he started!

> Just think of cool developments like Chris' stackless python. Experience
> shows that these kind of things will never make it into the distribution.

Unfortunately, circumstances piled up and Chris got distracted from that,
while nobody else made time to push it in his absence.  Large changes have
gone in, and even more may make it into the Python1 line, but it generally
takes a large or "strategic" user base, and much persistence.  GregS
mentioned his massive work on threads (still not all in), and I'll add the
NumPy extensions (which I wouldn't be surprised to see "mainstreamed"),
BarryW's string methods, and DavidA's rich comparisons.

> Unfortunately, maintaing patches to the dist across releases a real
> pain and much work, so these ideas will just sit there unused and
> untested. Much the same happened to gcc ... in the end corporate
> strength made egcs possible. Perhaps we need such a branch too ?

Don't tell, but I've always been surprised at how few people have tried to
release a variant Python!  The Alice version (case-insensitive names, and
1/2==0.5) is the only one that comes to mind, and the primary effect that
had on today's Python is that raw expressions no longer print their value in
non-interactive mode (before Alice,

    1 + 2

on a line by itself caused "3" to get printed even in batch scripts; this
interfered with the Alice team's favored

    object.method1().method2().method3()

coding style, and Guido endured much pain to change "the real" Python to
avoid a code split at that early stage of Python's life; ultimately futile,
but then Alice Python didn't catch on anyway).

So there's very little Python-related history to go on here.  I don't mind
seeing variants, but have to predict they won't get very far.  Just picture
what Python 1.6V would look like if its feature set were drawn from a
consensus among you, me, Christian, Greg Ewing, John Skaller and Tom
Christiansen <wink>.

the-value-of-a-benevolent-dictator-is-easy-to-underestimate-ly y'rs - tim