Hacker News new | ask | show | jobs
by crabbone 1206 days ago
There's so much wishful thinking in what you write...

No, and no, and no.

Nobody cares what Python documentation defines: it's not a standard. Python doesn't have a standard. It's convenient to not have a standard, especially if you don't know what you are doing (and I don't use this pejoratively). This makes things more flexible. This, particularly, benefits you if you only ever have one implementation, because it creates a lot of room for experiments.

This, of course, hampers community contribution. If you don't have standards, you cannot have competing compilers or interpreters: there will always be a flagship and those trailing far, far behind. Standards also ensure that come what may, in the future, you will be able to reproduce you work, if you followed the standard. Otherwise, well, you have Python. Today, you can no longer build Python 3.6 on a modern Linux (I might be wrong, and it's 3.5, don't take my word for it, but it's surprisingly recent), and the current version of Python will not run code written for 3.6. So, you end up with useless code. And, since we are talking about Python, the volume of useless code is astounding.

Compare this to, eg. Linux kernel which is written in C89. Python didn't even exist when this standard was created. Consider what will happen if you try to run code written for Python 2.0 (I think this was the first public release?) today? -- This is how you know the difference between having a standard and not having it.

----

PS. And of course, you chose to link to something irrelevant. However, this is what you "forgot" to link to:

> The Python installers for the Windows platform usually include the entire standard library and often also include many additional components. For Unix-like operating systems Python is normally provided as a collection of packages, so it may be necessary to use the packaging tools provided with the operating system to obtain some or all of the optional components.

Taken from https://docs.python.org/3/library/index.html

I couldn't find where Python documentation defines what's "optional" in its "standard" library. So, there's no reason to believe that "venv" is in "standard" library or not. Even the authors aren't sure, but, ironically, the authors don't have the authority to tell one way or the other.