On Sat, Aug 3, 2019 at 9:48 AM Steven D'Aprano <steve@pearwood.info> wrote:
On Fri, Aug 02, 2019 at 07:52:37AM +1000, Chris Angelico wrote:
Maybe there needs to be a second-tier recommendation, where a list of packages can be given that aren't category killers, but have been given the blessing of the Python devs as "this is a good-quality, well-maintained package, and can be depended on"?
Which of the core devs will have the responsibility for checking that something which is a good-quality, well-maintained, dependable package today remains so a year from now?
Nobody. The recommendation would simply be "this is good NOW". Anything can change in the future, and if someone sees something saying "as of 2012, that was a good package", it's up to them to see if it's still good. Of course, any core dev can go tag something and say "still good".
There are third-party libraries like numpy, nltk etc which are too specialised, big and complex for anyone to duplicate in their own code.
And it's "common knowledge" that numpy, ntlk, etc are all well-respected pieces of software, but how is that common knowledge to be acquired?
But I think that anyone who pip installs more-itertools *solely* to avoid copying and pasting the "grouper" receipe from the docs is doing themselves, and the users of their software, a disservice. It's three lines of code. Adding a third-party dependency of 2000+ sloc to avoid a three liner is not as bad as the Node.js LeftPad debarcle, but it's heading into the same ballpark.
This is true, but only because we're talking about a single three-line function...
(Of course the calculus changes if you are a heavy consumer of iterators, and the extra tools in more-itertools are useful for you.)
... and the best way to BECOME a heavy consumer of iterators is to flip through itertools and more-itertools, find that this is way easier than what you were doing previously, and start using more of the functions. So even if you start out by getting more-itertools as an alternative to copying and pasting a three-line function, you may find that you end up using a lot more of it. But there's still a *huge* difference between "import itertools" and "import some-package-nobody-knows-of". I just want to narrow that gap a little by giving recognition to those packages which are dependable and high quality. I did a PyPI search for "itertools" and this was what came up first: https://pypi.org/project/itertools-s/ It must be good, because it's the very first search result, right? I'll just pip-install it and start using it. Or should I look somewhere else for an enhanced itertools? How would I know? With a published list of known-excellent packages, there could be three or four itertoolses, not ten pages of search results, and you could know for sure that each and every one of them is worthy of at least a bit of a look. ChrisA