Juliaup: a modest suggestion

I just want to second having GUI install options. Teaching classes that use Julia it is quite a leap for some students to tell them to run something from the command line. Many have no idea about what a terminal even is on Mac/Windows (and few students use Linux on their personal computers in my experience). So I end up just having them download the non-Juliaup binaries. This is a place where a Juliaup GUI installer would be very helpful to have (and more generally, having a GUI for managing it too would be nice, i.e. for selecting the active release and updating).

5 Likes

Certainly would be nice, and there also needs to be a GUI for pkg.instantiate(), Pkg.generate() and Pkg.dev() etc., if one really wants to avoid the command line. Until there’s a full GUI wrapper for everything, you can only delay the inevitable eventual task of learning to use the command line.

However, for devil’s advocate, I’d argue that basic familiarity with Bash and Git is more important than learning any programming language, Julia included.

3 Likes

Delaying the inevitable can make a lot of sense sometimes, professional pilots do eventually need to fly a real airplane with passengers in it, but it makes sense to start their training in a flight simulator. I trust that @isaacsas has made a similar judgement about when to expose his students to the commandline.

2 Likes

Delaying makes sense when the potential consequences are very, very bad. Usually, the command line of a personal computer is comparatively low risk.

Nothing against GUIs, mind you.

1 Like

“Very, very bad consequences” is another way of saying “very, very high costs”. In general, the sequence in which things are taught should be done in such a way as to either reduce the cost or increase the quality or some combination of these. I can easily see a GUI installer being an advantage in this context.

1 Like

And there is unlikely to be a GUI wrapper for everything, or even the majority of tasks, since GUIs are orders of magnitude more expensive to write and maintain than command line tools. It is not an accident that innovation happens in the command line and GUI wrappers usually arrive for mature tools only, sometimes years later.

I honestly can’t imagine a use scenario for Julia where, at the same time, the programmer can avoid the command line altogether.

An exception may be learning Julia as part of a course on programming. But then a TA or university IT should be able to help students set it up on their own computer if necessary.

4 Likes

For a new user of Julia the difficulties are not over when Julia is installed. They have only just begun!

So, no, I don’t think it is critical to have a GUI installer. There should be an installer that works no matter what administrative privileges the user has and no matter where the Julia folder and the depot should be. I think we have that for all OSs. IMO, that is all we need right now.

2 Likes

I use Julia in VS-Code on Windows. I think the only time I ever use the command line at work is for juliaup.

6 Likes

Learning Git and bash and package creation/management are indeed exceptionally useful skills, but not needed for many classes, where Julia may only be used to explore mathematical or scientific concepts via notebooks. This is a different use case than writing scripts or packages, for which I certainly agree knowing such skills is important. But one only has so much time in a given semester, and spending time in a science-focused class teaching about programming dev practices can mean having to not cover more core class material. Thankfully julialang.org still distributes stand alone GUI installers that students can be pointed to, and package management can be completely abstracted away from students by using Pluto (or writing some package loading code in a Jupyter notebook and just telling students to run it).

Also, none of those function calls above are “command line” shell-based interactions that require the usage of a terminal. They are just normal function calls within Julia. (And as I said, I usually give such code anyways in notebooks, so students don’t really need to understand it.)

4 Likes

Couldn´t the VSCode extension provide an interface for installing julia(up) ?

5 Likes

Aleluia. Let’s just hope that never goes away.

Doesn’t it already?

I’ve never heard of it.

The closest thing to “the right” solution, at least for Mac and Linux, is to use Devbox with a project-specific dependency on the specific version of Julia the project needs (julia@1.10 or julia@1.11). The nixpkgs versions of Julia (that Devbox uses) seems to work for me (so far…). This approach has the considerable virtue of unifying dependency management for other tools and languages. Having a different tool like rustup and juliaup managing individual toolchains for every language gets unwieldy. Combined with direnv and an appropriate editor plugin, path setup becomes a nonissue: each project just sets itself up.

This definitely doesn’t help with the problem of students, or Windows users…

1 Like

I can easily imagine such a scenario. A lot of people use notebooks as the primary/the only way of writing code, and for both jupyter (+vscode) and pluto one doesn’t typically need to reach for command line.

2 Likes

Really? Please show me how to setup a Pluto server without using command line.

runpluto.jl :

#!/usr/bin/env julia

import Pkg
Pkg.add(“Pluto”)

import Pluto
Pluto.run()

Assuming jl files are associated with an installed julia if running on windows :slight_smile:

That being said, assuming personal devices where installing software is not an issue, how hard and scary is it to run a couple of commands in the terminal for students who are about to spend ~50 hours in class and likely at least the same amount at home, on a science class?

It’s not that different from typing into the browser (or browser ide like vscode). The terminal is also a gui application after all.

I am not against command line. On the contrary, in my course teaching Julia, the first thing I want students to learn is the command line.

I am specially reply to this quote

To use Pluto, command line is inevitable.

1 Like

How so? See @slumpy’s post above, it doesn’t require typing anything in the terminal.

I generally agree! Was surprised myself when I saw that typing anything in the terminal is perceived very differently from typing code in a script file or in a notebook – by a significant number of people. Somehow the terminal is considered scary and low-level :slight_smile:

1 Like

Obviously, to run the script, you have to type a command in a command line.