On Fri, 30 Nov 2018 at 00:17, Steven D'Aprano email@example.com wrote:
On Thu, Nov 29, 2018 at 01:30:28PM -0800, Nathaniel Smith wrote:
Yeah, I draw two conclusions from the list above:
- Paul expressed uncertainty about how many people are in his position
of needing a single download with all the batteries included, but obviously he's not alone. So many people want a single-box-of-batteries that whole businesses are being built on fulfilling that need.
I think that's inaccurate: at least some of those are not "box of batteries" but "nuclear reactor" distros, aimed at adding significant value to above and beyond anything that the stdlib can practically include. Things like numpy/scipy, or a powerful IDE.
Of those listed above I have used Canopy, Anaconda and Python-xy. All three fulfil the same need from my perspective which is that they include the missing batteries needed even for basic scientific computing. In the past I've generally solved that problem for myself by using Linux and having e.g. apt install the other pieces. Since I can't expect my students to do the same I've always recommended for them to use something like Anaconda which we/they can for free.
They do include much more than we need so I'd agree that Anaconda is a nuclear reactor. The things I want from it are not though. Numpy is not a nuclear reactor: at it's core it's just providing a multidimensional array. Some form of multidimensional array is included as standard in many programming languages. In large part numpy is the most frequency cited dependency on PyPI because of this omission from the stdlib.
Another nuclear reactor is packaging itself. Despite pip, installing third-party packages is still enough of a burden and annoyance that some people are willing to pay money to have a third-party deal with the installation hassles. That's a data point going against the "just get it from PyPI" mindset.
Not really. Each of those distributions predates the point where pip was usable for installing basic extension modules like numpy. They arose out of necessity because particularly on Windows it would be very difficult (impossible for a novice) for someone to compile the various packages themselves.
There have been significant improvements in pip, pypi and the whole packaging ecosystem in recent years thanks to the efforts of many including Paul. I've been pushing students and others to Anaconda simply because I knew that at minimum they would need numpy, scipy and matplotlib and that pip would fail to install those. That has changed in the last year or two: it is now possible to pip install binaries for those packages and many others on the 3 major OSes. I don't see any reason to recommend Anaconda to my students now.
It's not a huge problem for my students but I think an important thing missing from all of this is a GUI for pip. The situation Paul described is that you can instruct someone to install Python using the python.org installer but cannot then instruct them to use pip from a terminal and I can certainly relate to that. If installing Python gave you a GUI from the programs menu that could install the other pieces that would be a significant improvement.