I might suggest that juliaup not be the recommended way to install julia and manage julia installations.
Before the cognoscenti jump on me, let me explain why and, then, propose a compromise position, if indeed any easy compromise that is really a “best of both worlds” position.
juliaup primarily meets the scenario of “multiplexing” julia, which is to provide an easy way to have multiple versions of julia installed; to easily switch from using one version to another and to remove versions that are no longer needed.
It may be my extreme misunderstanding but this scenario is mostly (but, not exclusively) a benefit to the brilliant original developers and other equally generous and capable current maintainers of Julia. Similarly, this scenario is crucial for maintainers of broadly used (or any) packages that reasonably target more than one recent release of Julia. juliaup dramatically simplifies this important work.
At the same time, this scenario is of less (not no) benefit for ordinary “users” of Julia: subject matter experts focusing on simple .jl files to do their work or packages that serve the function of being “applications,” as defined in the Pkg documentation. Note: I use subject matter experts here casually, meaning anyone who wants to do their work in Julia, or learn Julia or simply experiment. It is not that such folk might not also see benefit in having concurrent access to multiple versions of Julia: only that this need is perhaps less urgent for them.
Of course, it is a choice of whether or not to use juliaup. So, there must be some reason to not recommend juliaup as the preferred installation of Julia:
- juliaup is arguably a more technical install the first time than Julia itself;
- It helps further adoption of Julia to have a default installation that is simple and native to each platform Julia runs on.
- Juliaup installations have a couple of difficulties. The only one I have encountered is setting up SublimeText with julia language server support. That is arguably (ok, a really good argument) the fault of those SublimeText package developers, but as truly awesome as the VS Code support for Julia is (my personal number 1 for lots of things!), I find some benefit in having a quicker, lighter editor. Others might like emacs (!!???!!!).
- The uninstall method recommend for juliaup effectively breaks the completed installation because all paths to running julia lead through juliaup. Now, in 3 minutes I easily moved julia; fixed the path setting in .zhrc by moving the complete julia installation out of juliaup; commented out the juliaup portion of .zhrc (until I could verify that my changes all worked); created a symlink to the julia binary in /usr/local/bin, and manually edited the json of one jupyter kernel. oooh, sort of a longish list. But, easy enough once one realizes it is just a matter of moving a directory and finding every path set to it. Still, not something everyone could (or more likely, wants) to do. What was important here was preserving my current nicely working Julia installation and saving the work of a full install (easy enough without juliaup) and more importantly the package management (a scenario juliaup does NOT enable–which is arguably a benefit for more of Julia’s users).
- We should want to encourage Julia maintainers to provide platform specific, very simple installations that are easy and reliable and not fall back on juliaup for all users, which might encourage new trials and future adoption of Julia.
The net is to suggest no longer recommending juliaup as the preferred installation. The compromise, and an easy one I think regardless of one’s preference, is to suggest either the platform specific installation or juliaup with a brief explanation of the benefits and slight disadvantages of each:
- platform specific: path setting consistent with most other command line tools on said platform and a simpler 1st time installation. Disadvantage: can’t readily switch between multiple versions, if installed. [Note that Julia already cleanly allowed multiple concurrent versions to be installed, but users would need to be clear about how to identify appropriate versions and manage paths.]. The difficulty of multiple concurrent versions regardless of the method chosen is installing and managing packages for each version (though installation is required, using environments properly simplifies this considerably–but might be a more advanced thing for those just starting with Julia). Better support for non-Julia tools (jupyter, Sublimetext being the only ones I have direct experience with).
- juliaup: a one time install that is a little more technical and then absolute ease to install and be able to quickly enable/disable specific versions, with emphasis on working with packages (especially as a developer/maintainer) across versions. Acknowledging switching back from juliaup (currently) requires reinstallation of everything Julia.
So, it really is a best of both worlds. My only point is that there are two worlds and noobs, while not garnering a lot of respect, occupy an important world. We–or at least “I”–started as noobs and some of us struggle to climb up above noob-hood.
Sorry, this is so long: I anticipated many objections and wanted to pre-respond if I could. There are certainly things I don’t understand. There is also the potential for juliaup to evolve and be preferred in both worlds. Thanks for considering this position.