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).
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.
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.
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.
â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.
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.
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.
I use Julia in VS-Code on Windows. I think the only time I ever use the command line at work is for juliaup.
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.)
Couldn´t the VSCode extension provide an interface for installing julia(up) ?
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âŚ
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.
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
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.
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
Obviously, to run the script, you have to type a command in a command line.