Why is juliaup emphasized as the installation mechanism?

I do not really understand all this emphasis on using juliaup to install Julia. I will give my two cents on this issue, but I should start with a disclaimer: I am a user, not a developer. I have been teaching a course using Julia and Pluto notebooks since early 2021, with more than 400 students each year across two semesters. The students are not from computer science; they are from economics, finance, and management, and their interaction with computation is very limited. Therefore, in this context, the installation procedure is a critical issue, and our experience may serve as a useful example for the Julia community.

In the first 6/7 semesters, students were told to install Julia manually, and we had no problems with those installations. Not a single one! Students just loved it: it takes less than 1 minute, is effortless, and requires no knowledge of computation (apart from the Linux case; in Windows, just click an executable and fill in a square to “Add Julia to PATH”; and in macOS, it is even more straightforward). Most students have Windows (around 75%), macOS represents the remaining majority, while Linux is a residual part of the distribution. Then, in one semester, following the Julia mainstream, we changed our strategy: we advised students that it was up to them to install Julia manually or using juliaup, but the latter was the “officially” recommended one. That proved to be ill-advised because we had some cases where the juliaup installations were broken. Moreover, those problems became unbearable because we could easily fix a manual Julia installation, but we had no clue how to do the same with a juliaup installation.

Understandably, we have since returned to the manual Julia installation policy. We have never had a single problem with this approach to installing Julia on an already large number of students’ computers (around 2500 by now), many of whom know very little about computers and computation. In fact, the only occasion we had problems with the Julia installation was when we recommended juliaup, and students followed our advice.

For some Julia users and developers, juliaup is a wonderful installation tool. But not for all users (most users, I believe), not compulsory alongside specific IDEs, and certainly not an acute problem in the present state of Julia development. Currently, my colleagues and students complain about Julia, but their concern is not the installation process itself, which they love because it is as easy and fast as it gets; it is about how long it takes to load a Pluto notebook compared with similar notebooks in other languages. For example, to load a standard notebook (reading some data files, importing some images, using some markdown code, performing some numerical computations, and producing some plots), it takes around four times longer in Pluto than in a marimo notebook (marimo notebooks are the Python counterparts of our Pluto notebooks). Yes, the exact same content in the two notebooks produces such absurd differences, considering that Julia is advertised as a fast language. And the point is that this situation seems to be getting worse with the new Julia versions, not better.

12 Likes

I’ve split this from the VSCode default setting topic; if you have concrete examples of where Juliaup was failing you and your students, it’d be hugely beneficial!

A good answer to the core of your question is here:

I also love the simple standalone install. In my experience, the standalone installer works great for the first version the first time. It gets more complicated and unwieldy as you keep using the language and start updating and managing multiple versions. But, yes, that’s a different case than a course where you don’t want folks to update!

It’s also worth noting that a graphical installer/manager for juliaup is something that has been talked about at length in the past — and I’m guessing that’d helpful for your audience.

5 Likes

In order to improve juliaup, it would be useful to know how they were broken. If you have not already done so, please open an issue.

In a nutshell: Julia is a rapidly developing language, with releases every 4 months or so. Each new release brings a lot of improvements; moreover, a lot of packages end up using the new features so they only support one or two latest minor releases, and/or the LTS. In order to get the best out of Julia in the medium run, having a mechanism to seamlessly upgrade it is crucial.

As the name gives it away, juliaup is not only a tool for installation, but also upgrading. And in some cases, downgrading: having access to earlier versions is also important in case one needs to investigate a problem.

Now, a semester course is a special case because most students will be using Julia only for a couple of months (though hopefully some of them will like it and continue using it after the course). For that, the standalone install is a good match.

6 Likes

The only juliaup installation issue I’ve run into at work was a couple of Windows machines where the Windows Store path was missing from PATH, for unknown reasons. It was quite ugly to debug but not really something juliaup can do much about.

On the anecdotal side of things we used to have frequent installation issues when users installed Julia on their own, especially when we needed/wanted to upgrade to a newer version of Julia. After switching to juliaup, this has gone down to zero.

2 Likes

Firstly, I must add that I did not intend to create a new thread in this forum, nor to start a new discussion on the best approach to install Julia. I provided some feedback about the juliaup installer in another thread, and @mbauman decided to create this thread and give it a title, adding my text as an introduction.

Therefore, what I initially wrote (the first entry above) may feel a bit dislocated here, because I have no complaint at all about the use of juliaup in general; I have used it myself on some computers, and not on others. I can do with it, and can do without. And I should congratulate and thank its main developers for providing something so handy to Julia users without receiving any financial contribution for their work.

However, from my understanding, it seems questionable whether the language itself should state that juliaup is “the recommended way to install Julia”. An installer must be completely free from any unexpected event when we install the language or when we start using it. Apparently, this is still not (or was not) the situation of juliaup. However, the manual installation satisfies those requirements entirely.

I do not want to go deeper into this issue because I do not feel equipped to do so. What I know is that the manual installer works very well on all the OS I have used (Windows, macOS, Linux), it has never given us any problems, and it is easy and fast to install. Regarding the problems we faced in the semester when we recommended JuliaUp, the number was not large, but the inconvenience was very disturbing for two reasons: we felt embarrassed when this happened in such contexts, and we did not know what the solution was.

Regarding specific cases where juliaup did not work as expected, I cannot recall them now because time has passed, and I did not take notes for future reference. However, I remember that the juliaup/issues proved useful at the time but not in all cases.

There have been discussions in this forum about whether a better installer/manager for Julia versions would improve the adoption of the language itself. Please do not let us mislead ourselves: the potential problems with wider adoption are not related to any significant issues with the Julia installation. This works fantastically well. The problems should be found somewhere else, and I mentioned one of them above.

6 Likes

Just as a moderator’s note here, I split this out because it’s good general feedback, but it’s pretty unrelated to the behavior change in the VS Code plugin that prompted the original topic. I’d love to resolve concrete issues with juliaup if possible, and it’s helpful to know in which contexts juliaup isn’t working well.

I know elevating a post to a new topic is often jarring and unexpected, but your post was well-written and I thought deserving of (and likely to receive) responses unrelated to the VS Code plugin. I did have two other choices (hiding it as off-topic or leaving it be), but I thought this was the best way to honor your time here. Perhaps I should’ve grabbed some of the earlier general remarks to split out as well, but this seemed like a good entry-point to the more general juliaup discussion.

12 Likes

No problem, @mbauman. I understand your situation. I just added another entry to this thread, not to complain about your decision, but to avoid the possibility that someone who comes in might be misled into thinking I wanted to raise this issue explicitly here. That was not my main intention at all. The other thread was about problems installing Julia with juliaup, and I thought my experience would be closely related to that topic.

1 Like

My experience is quite the opposite though. Before juliaup era, students in my group frequently encountered issues with Julia versions and package versions and their interactions with vs code. After switching to juliaup, this never happens again. I’d say juliaup is a remarkable tool!

7 Likes

Same here; juliaup has worked wonderfully for me on desktops and servers, but the repo has almost 200 open issues, so not everyone has a smooth experience yet. Installing and updating software reliably in diverse environments is a nontrivial problem.

That said, I think that having software — any software — running consistently (so everyone is on the same page) and reliably (so that it always works) in a course with 400 students is itself a very difficult problem, and in my experience requires a person to support it, usually a TA. In an ideal scenario, 90% students manage it, 8% require a bit of help, and 2% have some weird issue that needs digging into.

7 Likes

Not in our case. Our students have to take only two simple steps in the installation of software: (i) install Julia, (ii) add a Julia package (Pluto). Nothing else, because Pluto will install all the required packages for each notebook.

As far as the Julia installation is concerned, using the manual installer, zero problems. The manual installer is simple and works very well, and if students have doubts about the installation process, we provide detailed information on our course website.

We have had small problems in every semester with launching Pluto because students have all sorts of antivirus software on Windows that blocks the browser from opening. Once these problems with the antivirus are solved, everything runs smoothly.

1 Like

For courses with many students, a JupyterHub setup (plus containerised JupyterLab + code-server + Julia) could also be considered.

Cross references:

See also:

3 Likes

A Linux server that provides web access to Julia and an IDE is also the right choice if employees are not allowed to install software on their corporate PCs/laptops.

1 Like

Those are all valid and at the same time, it adds to the overhead. I tried to do it but encountered more concepts than I’m comfortable with (e.g., reverse proxy, volume, data migration, authentication, certificates, etc).

That means a) ensure it runs continually by not breaking stuff, and b) fixing issues as they arise. This is difficult for those who only wants to provide hands-on programming experience to teach domain knowledge. This setup will require an IT admin.

2 Likes

After this discussion, I still don’t know which manual installer you are talking about. There isn’t a single one. On Windows, there is an executable click-though installer, and a “portable” one you unzip, on OS X there is a dmg file you can drag and drop (but note the path setting), on Linux there is a binary you can extract.

All of these can go wrong, especially for inexperienced users. Probably the most user friendly is the Windows click-through installer. Are you students using Windows exclusively?

Did you try asking eg here, or on some other forums?

1 Like

I don’t think it is. All we learn is that some mystery event happened with juliaup, and so someone dislikes it. There is reference to “the manual installer”, as if there was a single one. We don’t even know the OS. Even with the best of intentions, this feedback does not lead to anything actionable (other than abandoning juliaup and going back to the manual installer); we cannot use it to improve juliaup.

4 Likes

Well, here we are in the world of love or hate: it is more common on this forum than we wished for. That is why I initially felt not very excited about having one set of my own words used to start a new thread in this forum. In the meantime, what I said has been distorted, and the facts I provided in good faith have been labeled as “mysterious”, while there is plenty of undeniable evidence in the Julia community (not mine) that those mysteries have been a large part of reality itself.

So, let us see if I can clarify some of @Tamas_Papp 's statements.

  1. I never said that I “dislike” juliaup. In fact, I consider it a very useful tool for the Julia community, in particular, for a subset of Julia users and developers.
  2. What I explicitly said is that juliaup should not be presented as it is on the Julia language website as the “recommended way to install Julia”.
  3. No, I never said that our students have only Windows machines. I was quite explicit in my rather long text above (long to make it as clear and objective as possible) that the vast majority use Windows, then macOS, and finally Linux for a residual set of users. If someone is curious, the instructions for our students to install in all three OS can be found here Installing Julia & Pluto – Modern Macro.
  4. One installer per OS. To ensure students download the correct installer, we send them the installer link. The Julia “Manual Downloads” website should be better organized, as most people who download Julia lack basic knowledge, e.g., of the differences between the standard macOS installer package (dmg) and the compressed tarball version (tar.gz). What is the insurmountable problem for a macOS user to (i) download the dmg installer, (ii) drag it to the Applications folder, (iii) click on the Julia icon, and … Julia running. That simplicity does not look like a big problem? Does it?
  5. The embarrassment of a teacher. When we teach a course, there are two main issues that we must make sure of: (i) that we know very well what we are doing; (ii) that the tools we are using work without failures. Students expect that we know what we are teaching and the tools we are using! If any of those fail, even marginally, it is a major embarrassment to us and a major source of jokes to the students. Obviously, we had to fix the problems with the Julia installations that weren’t working well, and the juliaup/issues were useful for that task. But that job was not very nice to us: we did not seek it out.
  6. Motivation. I have been using Julia in my teaching since version 1.0. Firstly, with Jupyter (a small number of students) and, since 2021, with Pluto (big numbers). What could be my motivation for trying to discredit juliup within the Julia community? Do I gain anything by doing it? Am I involved in any alternative installation process? No! Am I just producing my arguments out of thin air? No! It looks like just bad judgment or irrationality to think that I may have a hidden motivation, because I am a rational and perfectly normal person: I may benefit from having a tool I can use, and I do not pay a penny for it. Why should I be critical of juliaup “by default”, by disliking it?

A final word of mine about this thread. I did not intend to have one, and I did not create it myself. I will not spend one more minute on this discussion. I gave my two cents in the hope of providing some help with a particular issue in the Julia community. If everything is working fine and I misguided my efforts, sorry, and let’s move things forward. As far as I am concerned, if some moderator erases this thread entirely, I would be fine.

14 Likes

Thanks for responding. I did not intend to distort your words, I see now that you mentioned the OSs above. But we still don’t know which installer had the problem.

What I find frustrating is the following: clearly there was a significant problem with juliaup, but since don’t know what it was, we can only hope that someone else reported the issue in the repo.

2 Likes

Currently the reference to the manual installers is not very visible on the julialang page and sounds a bit like it’s a case you’re not really expected to need often

If you need to manually download and install specific Julia versions, see the Manual Downloadspage.

Maybe a simple way to improve is to clearly state that there are two ways to install, one manually and one via juliaup. That the juliaup way requires some familiarity with the command line (which many people lack completely) but that it allows easily handling multiple julia versions in exchange. Then people should know which one is better for them.

3 Likes

As far as I remember, installing from DMG on Mac requires setting the path, which is IMO an even more complicated command line operation.

2 Likes

No, it does not! Your recollection is wrong.