How to create standalone applications for Windows with a [G]UI in Julia 1.11 or 1.12

You can make extremely visual dashboards with Pluto (or potentially other solutions) that completely hide the code from the “end user”. Of course, this still means that these users have to install Julia, but that might not nearly be as problematic as you think it is. If you look at the Interactivity notebook from the Pluto docs, click on the “Edit or run this notebook” button in the top right, the instructions under point 2 would be what is relevant to your users. I find it hard to imagine that professional engineers would not be willing or able to get this running (barring hurdles from corporate policies of “cannot install anything”).

I’m pretty sure 99% of Julia users do not deliver binaries. They deliver libraries, Jupyter/Pluto notebooks, Web dashboards, reports, etc. As a computational scientist, even when I was working with fully compiled languages such as Fortran, I’d still be “shipping” code and expect the “user” to be running make to compile it.

What you are asking for is at the very bleeding edge of Julia development, and is not a typical use case. There is no question that Julia would benefit from the work that is currently undergoing with juliac (e.g., to improve deployability of Julia in embedded systems, or to reasonably have development tools that don’t have to be written in Rust). But right now, your only options are solutions like PackageCompiler that produce extremely large binaries due to packaging the entire Julia runtime, or the extremely experimental juliac. Even the former one is not exactly mainstream, and I would be highly skeptical of the second one being stable enough for “deployment to customers” (but I haven’t tried it).

I wish you the best of luck in trying to figure out a solution, but it may not be possible with the current state of things. Personally, if I had to ship a GUI application, I would still be looking at a non-Julia frontend, maybe talking to a Julia backend. Or a web application / dashboard. That’s not to say that your desire to wrap existing Julia code in an easily shippable GUI is unreasonable. But my impression is that we’re still several years away from this really being something that can be done entirely in Julia. But maybe the people involved in the Herculean efforts towards that goal will assure me that the timeline might be sooner than “several years”; I was certainly pleasantly surprised by the juliac prototype, which I had thought to be near-impossible.

9 Likes