A graphical Julia installer for Windows

As Windows user I need a graphical installer where I can select at least:

  • the Julia version I want to install
  • the install location

All larger projects I know provide a graphical installer for Windows and a way to use it without the Microsoft store. And that’s why I chose the graphical installer for Julia.

I cannot understand to hear in this thread that just because I need a graphical installer I made a mistake.

As I wrote installers for 2 lager projects (lyx.org and freecad.org) with over the time surely a million of installations, I could also write one for Julia but I have the feeling that there is not much interest.

4 Likes

Absolutely.

4 Likes

I think definitely there is and such a contribution would be enormously appreciated.

At the same time, to become an officially recommended way to install it, the commitment of a group of people is necessary to keep the tool up to date and working, and that is the hardest part.

5 Likes

Don’t sell this idea short! I would absolutely use a Windows GUI installer for juliaup if it were an option on the official JuliaLang install page. And I’m not alone it seems…

So there are three people just from this thread! :smile:

As @lmiq mentioned, the only “problem” is be that you would (at least initially) be responsible for maintaining the installer and would need to consider if you want to make that time commitment. But, would people use it? For sure. :100:

2 Likes

OK, I can give it a try. But I will need your help, see below and I will take the existing installer of FreeCAD as base because for this I know it works for may thousands of installations. That means it will be an installer made with on NSIS.

It will have these functionalities:

  • install for current user (default) but also for all users of a system (not for the admin user, but for all users directly)
  • detecting existing older Julia installations
  • ending up with either a parallel installation of a new Julia version (default) or installing over an existing Julia installation
  • option to install VS Code and there already the Julia extension (I hope at least this is possible). I think this feature is key because those who prefer a graphical install will probably prefer an IDE over the REPL (For me as new users VS Code made me stay while the REPL does not suit me, like a command-line does not suit me.)
  • proper uninstaller (no registry traces after uninstallation)
  • only basic command line functionality for admins (comes automatically with NSIS) to not to interfere with juliaup
  • translation to different languages

For the translation I need your help. The installer has several strings to be translated. Of course I can use AI for that but the context is important, thus a human has to look over the translation and send corrections.

I will do so. My experience is that once it is set up and settled, there is not much maintenance so I will be able to handle that.


As I want to support Free OpenSource I started to use Codeberg instead of Github. Would it be OK to initially host it at Codeberg? If not, no problem, I can do it in GitHub.

For the translations, the easiest way is to use Codeberg’s or GitHubs Wiki functionality. So people can directly create or edit a Wiki page to post issues. No PRs necessary.


So if that would be OK, I can give it a try.

7 Likes

How would that be related to juliaup ?

a. not at all
b. optionally
c. juliaup would always be installed and in the path

1 Like

You might appreciate the context in which juliaup was created. See this announcement presentation at JuliaCon:

Spoiler: it was actually Windows-only at its initial creation. David (and many other enthusiasts) then made it cross-platform and socialized its unofficial adoption throughout the community. Once it gathered enough community support, it was recommended as the official installer on the official website.

You’d probably also be interested in this open issue:

3 Likes

I think the idea is to have a graphical installer/uninstaller for managing juliaup that does not require the Microsoft store. Some people may want to to avoid the Store out of principle, and many organizations (like mine) remove the Store completely from their enterprise versions of Windows. Just checked, I can’t even use winget.

If the Microsoft store app is blocked by your organisation, you may still be able to install apps from the MS store website via a browser.

I had the impression that the installers in Download Julia are also made with NSIS.

Hmm, I thought that it would replace entirely the above installers.

I’m very confused. I thought we already had that. From the Juliaup README:

If the Windows Store is blocked on a system, we have an alternative MSIX App Installer based setup. Note that this is currently experimental, please report back successes and failures here. To use the App Installer version, download this file and open it by double clicking on it.

If neither the Windows Store nor the App Installer version work on your Windows system, you can also use a MSI based installer. Note that this installation methods comes with serious limitations and is generally not recommended unless no other method works. For example, there is no automatic update mechanism for Juliaup with this installation method. The 64 bit version of the MSI installer can be downloaded from here and the 32 bit version from here. By default the install will be a per-user install that does not require elevation.

I don’t know who’s maintaining those installers, but if there are any issues with them, the best thing to do is probably to try contributing to their maintenance (or at least, report bugs under the above links).

1 Like

You are only allowed to do this work and create a release of such an installer if you build and test it on all supported platforms with complete feature parity.

I kid! That’s not serious at all. You really don’t need to ask permission to do anything around here. Just do it if you want to do it. It’d start as a speculative experiment, which is pretty much how juliaup started. Build the thing, get folks to try it, make it robust, and build enough confidence and support for it to be marked official. Even that final step, though, is simply a proposed change to the website: Recommend juliaup by IanButterworth · Pull Request #1969 · JuliaLang/www.julialang.org · GitHub.

You’ll likely find the most success at building a community around the thing if you build it where the community is or work within the context of existing efforts.

7 Likes

Surely I was not pretending that it would jump immediately to the stars, but given the aggressive (not my words) official recommendation in Install Julia it’s quite hard that anything else has a chance to get known/used. And, c’mon, we are talking of an installer. Nothing so hard to test. It could start to have visibility if used to install the nightly version only, which is used only(?) by developers.

Not related at all. Of course it is possible to install juliaup with the graphical installer. However, juliaup is a command-line tool therefore there might not be many who install with a graphical installer and later on use a command-line tool.

except use the julia logo or its colors :eyes:

I am a bit confused. In the development policy discussion I learned that not the community decides but the Julia team leaders and the Julia creators have more decision powers. Now I hear I can just do things. Fine, but who steers the boat “Julia” and where does he gets the direction to drive to?

I mean there is a graphical Julia installer available. It has some bugs and missing features. I used it and got the info I should not. Now I offer to make a new installer so there must be a governing body that decides about the Windows installer. I mean it is not good to have e.g. 2 or more graphical installers side by side. As a new user I want exactly ONE graphical installer, the official one, a reliable one that does not force me to know much about Julia in advance. I mean a new user does not know e.g. anything about the version scheme, IDEs, REPLs. And having choices is also confusing because why do I have to chose and based on what should I decide?

2 Likes

you may be interested in a few of the responses in this thread Development resources for Julia ecosystem?

although that thread did end up being a bit long-winded (and heated at times)

1 Like

The people working on a particular project make the decisions about that project. In the case of Julia (GitHub - JuliaLang/julia: The Julia Programming Language, that is), that’s the core developers; a very loosely defined group of people that anyone could join, in principle. They don’t make decision for any other projects, like other packages in the ecosystem, or third-party installers that someone decides to make.

And other people have decided to make alternative installers, like the JuliaWin that was recommended before. As I pointed out at the time, that doesn’t always seem to work out very well. But you can certainly make an installer that fits your needs, or the needs of your colleagues or customers.

Nobody in particular, really. Or, maybe the groups described in the Julia Governance document I linked earlier. Or the consensus of the many people driving particular aspects of the Julia ecosystem forwards, loosely organized here, at JuliaCon, on Slack, and other venues. The community is much more diffuse and consensus-driven than you seem to be comfortable with, or willing to accept.

Not really. The way it works is how Matt described how juliaup got adopted: Someone just made juliaup, and then, after it got a lot of traction, someone made a PR to add it to the website, and at this point there’s a broad consensus that juliaup is the supported way to install Julia.

I would agree, so it’s probably better to figure out who to talk to about the existing installer(s) and fix those. But ultimately, you can still start from scratch and make your own. If it gets adoption, it can then replace the existing installer.

Sorry, but I don’t think we really have what you’re looking for, and there’s nobody who’s exactly in charge of giving you the “one graphical installer” that you desire. It has to be made by someone with a business need or some other intrinsic motivation to create it. And it may be a need of the core developers, since they obviously want people to be able to install Julia. But you or some other user wanting a graphical installer with particular features does little to bring it into existence.

Maybe Julia will develop in ways that will make it much more accessible to a wider audience of less-technical users. Removing unnecessary technical hurdles is always a laudable goal. But let’s not kid ourselves. It’s a programming language. It caters to developers. Knowledge of version schemes, IDEs, REPLs, and, for that matter, Git/GitHub and the command line are pretty much table stakes.

Unfortunately, this multi-thread discussion with you seems to be going in endless circles. Quite honestly, I’m not sure if Julia is really a good fit for you. I’m not saying that to dismiss your concerns, many of which are absolutely valid. At some point (can’t find the link anymore) you listed the technical requirements for your project. Based on those requirements, I would not have recommended Julia as the best solution. Don’t get me wrong, Julia is probably my favorite language, but there’s a great many things where I wouldn’t reach for Julia as the best tool for the job. Of course, stretching a language to solving technical problems that it’s not quite ready for can be a lot of fun (with a certain pain-resistance), and is the only way to really push the language forward. But then on top of that you seem to have a lot of very firmly held opinions about how software should be developed that just don’t mesh with the realities of the Julia ecosystem. That’s not a recipe for happiness. I hope I’m wrong!

3 Likes

First, disclaimer - my opinion, just as (almost) every opinion here, is just that - a private opinion, not representing that semi-mythical community.

@uwestoehr, it looks like you are starting 4½ quite large projects at once:

  1. Learning Julia, it’s ecosystem and tools (Terminal, CLI tools, git, GitHub, packages etc.).
  2. Creating your specific application as a part of a commercial product.
  3. Establishing a workflow to integrate Lazarus GUI with Julia in a compiled executable or library.
  4. Creating a GUI installer for Windows from the scratch.
  • And teaching the Julia community (whatever it is) how to organize the development processes.

It’s quite a lot, and in open source biting too much to swallow would regularly result in wasted effort and abandoned projects.

Now, let me tell what I think of your nos. 3 and 4.

Having an established way to integrate a Julia backend with some GUI in a shippable package is what is your actual need (in no.2), and it may find a lot of similar applications.

But as concerning a graphical installer for Windows - I mostly agree with the said in the post above:

I’d only add one more pre-requisite which is the knowledge of English language (as you mentioned translations).

I do not think there is a real need in one more installer. juliaup does it’s job. Unfortunately, MS Store is not accessible to everyone, and the juliaup MSIX App Installer has been reported to have some issues. Still I assume getting that installer to work should be much easier than to write a Julia version manager from the scratch.

Furthermore, should you even get your installer working, it will be not an easy thing to get it accepted. Though one can easily experiment with one or another Julia package, I’d definitely be reluctant to experiment with a Julia installer. I have juliaup on all my computers, and I’m not going to risk an alternative installer messing up my system. Futhermore, juliaup usage is the same on all OSes, whereas you probably lack resources and experience to get it work on macOS and Linux.

Probably you could help the juliaup people to find out what is wrong with their installer? That would be great!