[Python-ideas] Python 3.9.9 - The 'I Have A Dream' Version
Steven D'Aprano
steve at pearwood.info
Tue Apr 14 15:01:05 CEST 2015
On Tue, Apr 14, 2015 at 01:14:55PM +0100, Simon Kennedy wrote:
> Call me a fool, but in the vein of the finest of half baked ideas, I
> present to you an idea that hasn't even decided on the shape of the tin yet.
Well, you've certainly been meticulous :-)
[...]
> * Removing the notion of 'virtual' environments. Everything's just an
> environment.
What's the difference?
> * Splitting the standard library in twain. stdlib = 'baselib' + 'extlib'.
> - baselib = Enough to start up a Python environment / install pip.
> - extlib = The rest of the current stdlib. Changes more frequently than
> the baselib.
Hmmm. That would have consequences. Are you okay with abandoning large
parts of the corporate, government and education sectors?
The thing is, one of the reasons that Python is so successful is that it
is *batteries included*. That's been a selling point for 20 years. This
means that using only the standard library, you can be productive and
get real work done. This is important for people using a standard
operating environment, or in restricted networks with no access to the
internet, or in any scenario where people have to get approval before
they can use a particular software package. Not everyone is able to just
download arbitrary packages from the Internet and use them on the spur
of the moment.
With Python, they only need to get *one* package approved: "Can I
download Python and use it?" It might take six weeks to get approval,
but once you do, you have not just the core language, but a good 150+
solid, useful, powerful libraries (and a few not so good ones).
With your Python 3.9.9, they get the core language, and a mechanism for
downloading from PyPI, which they are not allowed to do without
approval, on pain of dismissal. Or not able to do, because the corporate
network blocks it. And don't even think about sneaking it in via USB key
from home... So each and every package that needs to be downloaded from
PyPI could take six weeks to get approval before they can run "pip
install os".
The thing is, the broader Python ecosystem is not just hackers on Linux
with control over their own machines. It includes people in schools
using locked-down SOEs, corporate users with restricted network access
or paranoid legal/IT departments, people in developing nations with
unreliable internet access, and more.
> * A new tool called pippin to manage the extlib
Does this actually exist, or have you picked it because the name is
cool? (It is a cool name.)
(There is already a pippin on PyPI and github. I don't know if they are
the same project. The one of github claims to be experimental. Remember
that most experiments fail.)
> * Formalising what a package index is
What do you mean?
> * Addressing a Python project's lifecycle.
Surely that will be different for every project?
> * Configuration handling
What about it?
> * Removing the use of 'lib' suffixes from almost all packages.
Why?
> * Claiming any name in PyPi starting with 'py'
That's going to be *really unpopular*. What is the purpose behind that?
--
Steve
More information about the Python-ideas
mailing list