5 ms·
Guido is a good dude, through-and-through, despite his perhaps bad behavior here. Amber is nothing short of an open source hero, having brought Twisted, one of
by jMyles 7y ago
Guido is a good dude, through-and-through, despite his perhaps bad behavior here.
Amber is nothing short of an open source hero, having brought Twisted, one of the best open source projects in the world, to new heights. Her insights are as important as anyone in the python community, and after six consecutive PyCons sprinting at the Twisted table (including literally in a chair with Amber to my left and Glyph to my right earlier this month), I consider Amber's voice to be one of the truest and clearest among the leadership of the language into the future.
Amber and Guido are both beautiful human beings.
In the dispute that is the topic of this blog post, Amber is basically totally right. Moreover, the distinction has less to do with any kind of nagging python 2 holdover than this article suggests. The standard lib's role as a place where code goes to die is a view that is widely held and accurate for many cases.
The following question went unanswered during the Steering Council Q&A:
"Every feature request has a constituency of people who want it. Is there a constituency for conservatism and minimalism?"
...and that's really what this whole thing is about.
- alexdong 7y agoThe problem with rants is it stings and it divides. When it comes to constructive criticism, I think Amber did a good job with her criticism but can do better at the constructive front. Her problem statement was spot on and I agree that the direction she proposed is a good one. However, to separate the standard library from the core is probably even more dramatic than the Python 2 to 3 migration. Is that what the community can afford at the moment? What's needed to make the transition? What's the opportunity costs? i.e. what other developments we can do for a bigger impact? What are the pros and cons?
- tptacek 7y agoIs "embrace PyPI and move things like asyncio there" not a constructive suggestion, or is she sort of being penalized because the most reasonable solution to the problem can be described in less than half a sentence so it's seems like there's more complaint than solution?
- alexdong 7y agoYup. Totally agree with you on that. And yes this one is a constructive proposal. My problem is on the like part. Where shall we draw the line and how do we decide? To me this is a far more interesting discussion. (Maybe it has happened. I don’t go to many conferences these days so I might be missing something here. ) She mentioned http.client vs requests, datetime vs. moments etc, which are also quite correct to me. How about the cgilibs? Or pickle? Or the collections? Or unittest? Stay or go? Lastly, the title of the talk can be tempered a bit. No? We all know what a leaking battery mean right? Toxic.
- dragonwriter 7y ago> Where shall we draw the line and how do we decide? Why does there need to be a line? As long as the package manager is part of the core distribution (even if it is itself an upgradable package) why not moving everything into packages, even if some are maintained by the core team and have the stable version at time of distribution release included with the core distribution—but perhaps installed only on demand?
- peteradio 7y agoHow would you get standards like unittest? pip install unitest? Oops I spelled it wrong wonder what I just installed?
- jp_sc 7y agopip install pytest Kidding aside, most of the problem with the fake libraries could be solved if pypi namespace them per author, like GitHub does for repos.
- dragonwriter 7y ago> How would you get standards like unittest? “have the stable version at time of distribution release included with the core distribution” Ruby, for instance has both “default” and “bundled” gems with the core distribution. https://stdgems.org/ https://stdgems.org/
- geofft 7y agoAs mentioned in the article, this has already been explored with the "ensurepip" approach. And it wasn't the only thing at the language summit that proposed expanding that approach: there was a discussion of carrying time zone updates in the same way, by shipping something with the interpreter that works but allowing updates from PyPI. http://pyfound.blogspot.com/2019/05/paul-ganssle-time-zones-in-standard.html http://pyfound.blogspot.com/2019/05/paul-ganssle-time-zones-... So I think the development community / target audience at the language summit already understands the pros and cons of the suggested approach and the technical route to get there. (For an end user, my guess is the experience will be that anything in the Python 3.x standard library today will still be in the Python 3.x standard library, but you'll have to `pip install` a newer version if you want more features, and you get the benefit of being able to `pip install` something from the standard library where you previously couldn't.)
- smitty1e 7y agoIs there a limit to how constructive the feedback can be? What do we know? Software configuration management is a heinous problem. Python gets it more correct than most. Let us rejoice, be patient, and respect everyone's good-faith efforts.
- mjw1007 7y agoAren't conservatism and minimalism pulling in opposite directions here? Amber wants to remove asyncio from the standard library. That's minimalism but not conservatism.
- geofft 7y agoI think "gracefully correcting mistakes" is in the usual definition of conservatism: political conservatives who say that recently-recognized rights aren't actually rights or who wish to shut down recently-instituted programs that depend on government spending are no less conservative simply because they want a change to the status quo. Also note that one way of interpreting her proposal is "generalizing the 'ensurepip' model" to keep things already in the standard library in the standard library, but move feature development externally and make it easy to upgrade packages in the standard library. (Then Twisted, which is also installed externally, can simply depend on a fixed version of a standard-library package.)
- pfranz 7y agoI'm only going from this article. But I don't think the "ranting" was constructive and I feel like it obscured her point. A lot of comments here thought the goal was to include more (less crufty) packages in the standard library. Which is the opposite of her intention. I agree with a lot of her arguments. I never understood why tkinter was included (I could see why it might have been added years ago, but before Python3 came along it felt obsolete and unused). I've had to support old versions of Python along with their bugs, and it sucks. But languages are about choices. Python's syntax and decision to use whitespace is a strong choice--so is their stdlib. I've been on projects that saw performance problems with etree, moved to lxml, then had to go back to etree because of missing features. I've spent a lot of time looking over arrow, dateutil, and moment because datetime seemed inadequate. But I like that there is a thoughtful default that serves many needs. A lot of these examples, like requests, are built right on top of stdlibs--so both would be needed even if it was shipped along with stdlib. I'm ok if code goes there to die because I would hope that due diligence was taken when it was included. I kind of agree with Guido for a lot of this. I can't wait to move from Python 2 and have looked a lot of the new stdlib and looked for backports. I've looked at twisted and alternatives and I'm so happy something is built in even if its far from perfect.
- coldtea 7y ago>Amber and Guido are both beautiful human beings. Perhaps, but Guido's response was shitty here (and purposefully refusing to get the point), whether one think Amber was right or not. I deal constantly with the shitshot that is Python packaging (and lack-luster default packages) and I happen to think she is 100% on the spot.