Hello Thomas,
MathSource doesn't actually exist anymore as it did before. It was merged into the "Wolfram Library Archive", which as b3m2a1 said, is suboptimal ... To be honest, I do not think it does much good to submit there. Most of the hits to my packages do not come from there.
Just to name a few problems:
- Difficult and slow to update packages
- Full of old packages, most of which do not work anymore with the latest M version. Part of the problem is of course that it is hard for authors to update them there.
- Most items are not packages at all. Many of the "packages" are just presentations about packages, or mentions of packages, but the package is nowhere to be found, either on the Library Archive or elsewhere. I can recall even very recent instances where a package was publicly lauded yet it is still not accessible anywhere ...
- The search is just bad. Usually it doesn't give relevant result.
Some of these faults are remedied in part by http://packagedata.net/
But that's not what b3m2a1 is asking for either.
Have you ever used some of the open source competitors to Mathematica such as Python or R? They have a much better package ecosystem and much much better package management capabilities. E.g. R has a central package repository, with some curation and quality control. Installing a package is as easy as install.packages('somepackage')
. It'll be automatically found online, downloaded, compiled if necessary, and installed. Loading it is as easy as library(somepackage)
. There are standards for packages, so they all work the same way. Most come with documentation, which integrated into the main system. Package authors can find plenty of resources on how to create packages that fit in and follow standards. CRAN will automatically create binaries for several platforms for packages that have binary components. There's a dependency system: when you install a package, its dependencies will also get downloaded. And so on.
Python is even better with its excellent package management systems (pip) things like anaconda, and virtual environments for managing collections of different packages and package versions.
Now compare Mathematica:
- There are relatively few packages, probably because package authors get little training and resources from Wolfram
- If you need a package for something, you need to google ... there's no central repository
- If you were lucky enough to find a package, it will likely have no indication about which M version it works with. Often it won't work with the latest.
- In many many cases, the "package" follows no standard. It might come as notebooks (why? that's not even a package!), as a plain .m file, or as something else ... The installation procedure will differ from package to package, and sometimes so will the loading procedure. Oftentimes, it won't even come with installation instructions. Package authors who want a better experience for their users will often create their own auto-install mechanisms which sometimes ends up not working so well at all
In the recent two years or so there was some indication from Wolfram that we are welcome to use Mathematica's paclet system for our own packages, even though it is still undocumented. This is a step in the right direction, but there's a lot more work to be done.
To sum up: the situation is currently a mess, and quite literally more than a decade behind the competition.