5 ms·
The 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
by alexdong 7y ago
The 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/
- pvg 7y agoLastly, the title of the talk can be tempered a bit. No? We all know what a leaking battery mean right? Toxic. Come on. Python has had the 'batteries' metaphor for decades and this is a straightforward and obvious play on it. You're bringing 'toxic' into this which I suppose is technically and biochemically correct (both, surely, the best kinds of correct) but has far, far more negative connotations than the title warrants. You're having to work really hard to make a generic thing sound dreadful.
- jsmeaton 7y agoI thought the title was very clever. I associated the leaking with “leaky abstraction” more than anything.
- ma2rten 7y agoActually I feel like asyncio is the one thing that should be part of the standard library. It even introduces special syntax. To be honest, I think she might be biased here given that she maintains a competing package.
- jMyles 7y ago> To be honest, I think she might be biased here given that she maintains a competing package. I hope that you take time to reconsider this view. We're not talking about competition in the same sense as in a capitalist system, between two companies. Prior to asyncio, Twisted maintained the only viable flow control for serious asynchrony in python. Put another way, python had no standard flow control for serious asynchronous abstractions in the standard language (and standard library) before asyncio (and `await/async def`, etc) landed. Nobody is saying that the syntactical changes to python belong in a separate package on PyPI (cue Gary Bernhardt's Pretzel Colon). These things are fine. But `asyncio.Future`? Yeah, I see a very reasonable argument for that stuff (ie, the asyncio namespace) being in a separate package. But OK - looking again at the "competing package" narrative: now that these things have landed, Twisted has done an amazing job of using them alongside all the other tooling that Twisted also provides, most notably its test infrastructure. Amber doesn't stand to personally benefit from asyncio failing. To the contrary, having the flow control taken care of so that Twisted doesn't have to be its sole brainparent gives her much less free work to feel obligated to do.
- rafacm 7y ago> cue Gary Bernhardt's Pretzel Colon Could you provide a reference/explanation for this? Thanks in advance!
- mos_basik 7y agoNot GP, but Gary Bernhardt is the guy who gave the classic "Wat" [0] and "Birth and Death of JavaScript" [1] talks, and some searching turns up "pretzel colon" as the "&:" operator in Ruby [2]. I assume he's mentioned it in a screencast or something, but I wasn't able to find it. [0] https://www.destroyallsoftware.com/talks/wat https://www.destroyallsoftware.com/talks/wat [1] https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript https://www.destroyallsoftware.com/talks/the-birth-and-death... [2] https://technology.customink.com/blog/2015/06/08/ruby-pretzels/ https://technology.customink.com/blog/2015/06/08/ruby-pretze...
- DonHopkins 7y agoMaybe Python should upgrade from toxic leaking alkaline batteries to explosive overheating lithium batteries!
- 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.