By an order (or 2) of magnitude I would bet. A ~200 k LOC compiles to ~5 MB. I’m talking of Matlab 6.5 GUIs when Matlab had a true compiler.
I know about that but the limitation that code must all be type stable (or almost) is a killing condition.
By an order (or 2) of magnitude I would bet. A ~200 k LOC compiles to ~5 MB. I’m talking of Matlab 6.5 GUIs when Matlab had a true compiler.
I know about that but the limitation that code must all be type stable (or almost) is a killing condition.
Well, if you have a good solution that works for you then just stick to it.
Compiled MATLAB generally still requires the runtime which is several GB. There have been ways to customize an application specific runtime, or make a Docker. With 2024B they’ve supposedly introduced a new procedure to simplify the runtime, but you definitely still need one.
Matlab runtime info at https://www.mathworks.com/products/compiler/matlab-runtime.html
See the notes at the end of the page for downloadable runtimes vs. runtimes shipped with the compiler.
Unfortunately, in my experience, this is not an area (relocatable, executable app development) where Julia shines.
If you can I would use Electron. If you can do without Julia, you can use Quasar framework and seamlessly develop desktop and web apps in one code base. If you build in electron mode you can build an executable that is pretty small (few MB) and can be distributed easily to any platform. In my experience, even the most bare Julia app will be pretty large. But Stipple.jl would be the Julia pendant to it, it even uses Quasar. GLMakie.jl is also an option, if you “misuse” a figure as frontend. As of now, relocatability is a huge issue, since it is a per package responsibility.
Latest Matlab runtime is 4.5 GB of size. I do not think that Julia apps are much larger.
Where did you get this info from? I thought that relocatability of system images was implemented in Julia 1.11, independant of the packages that you are using.
You didn´t read what I said
See mirone, not a small thing. Compiled it boils to a 135 MB installer. Not 5 like I said but it includes a whole GMT with global coastlines at full resolution, plus GDAL, etc…
Sad that we could do this 15 years ago but now we need a multi-gigs, though and to be honest not all modern things could be done at that time, but most, yes.
No, it’s good but not good enough for what I would like.But has to be good because I have no replacement.
Edit: very old Mirone screenshots
Well, you must decide what you want:
You cannot have the cake and eat it, too, even tough this is the motto of the Julia developers. But it is not always realistic in practice.
Tell me, how many GUI apps do you know that were built with Julia? Any big one (not in size but in functionality)?
Twenty years ago I wrote this GUI application in Matlab. It has a main GUI that can open any number of plot windows based on the user’s actions. I would like to be able to implement something similar in Julia. Is this possible today, and what would be the best framework to use?
Not many, but Pluto is a big one. There are probably also proprietary ones like JuliaSim and PumasAI products.
Well, you can look at my own app, which is not a standalone app yet, but easy to install and pretty complex: GitHub - aenarete/KiteSimulators.jl: Simulators for kite power systems
This app is using Makie.jl and ControlPlots.jl. It also has a main window and can open any number of plot windows. QML.jl is more powerful, for example if you need a table editor and can also integrate Makie graphics. The size of the system image - including ModelingToolkit.jl - is 1.3 GB.
There are plans to implement some kind of helper in 1.12 but nothing more.
See: Relocatable Makie app
Welcome to our community @TinWallop .
Have you looked at Mousetrap.jl?
I’ve not tried it myself, but from the description, it looks like it fits your use-case.
The problem with Mousetrap.jl is that it is not registered and unmaintained.
I have looked at mousetrap but not fully assessed it yet
That’s a good point
I’ve done a bit more research. QML looks like a perfect option, it was partly based on XAML. However it is now associated with firm Qt which charges quite a lot for what it does. Even the Community edition only lasts for 10 days. There are some modules around based on Qt but they are retiring those spring 25.
For someone just trying to get started in Julia I will just put Qt on hold for now
If you are programming for yourself or doing open source development there is no reason whatsoever to avoid QT, there is no license problem. If you do commercial software development you have to look at the details. See also: Reddit - Dive into anything
But you do not need to install anything but the QML.jl package, everything else is optional.