[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