I want to share my simulation online to users with different machines (Windows, MacBooks, Linux), etc., without them having to download Julia. Is there a clear, simple way to do so right now?
The 2 things that I have in mind are:
-
I can create a Web app. Create maybe an embeddable, or some file that I can run through JavaScript on my website, and that people can interact with, play around, and have to install nothing. I don’t know if a browser would natively be able to do this, or I would have to have a server running that hosts my simulation on the website, and only then can this be possible (if it even is)
- I see a few names around this idea: WGLMakie.jl, Bonito.jl, WebAssemblyCompiler.jl, Genie.jl. What is the best, simplest way to do things here that is most compatible, and where I don’t end up rewriting most of my work in JavaScript or C/C++ itself?
- Interactions · Bonito is the closest thing I’ve seen to what I want. But again, you have to write part of your non-static elements code in JS here; it also does NOT seem to work on mobiles (which is fine, I guess). Can someone point me to how to, from scratch, deploy such interactive “apps” on a website in a simple, concise, step-by-step manner (the documentation was a little confusing to me)?
- WGLMakie | Makie is a little bit of a mess, precisely none of the examples work for me so I do think there needs to be a clear example of how Bonito and WGLMakie work together.
- There is also Pluto.jl that I am unsure of about whether it can run interactive windows such as those generated by Makie.jl or not when running on devices without a Julia executable installed.
-
On the other hand, I would love to know about a simple way to create an executable file that is complete on its own. I can just download it on any machine, and it will most likely run.
- PackageCompiler.jl is the key name here (StaticCompiler.jl is also there, but I am unsure of whether it is still under development or not).
- Again, any simple step-by-step examples from beginning to end how how I can write some simple code, compile it, send it to another user, and run that on another machine?
- Something that I have read on this is how the size of the executable can (could?) have been huge, but JuliaC.jl seems to be a native solution that the Julia Community and Developers are looking forward to. Again, simple explanatory examples?
- Sysimages, Apps, Libraries, which one do I create for myself, and which one do I deploy/share with others?
- As something adjacent, with the executable sharing out of the way, what is a very simple explanation of a workflow in order to compile some code natively in Julia to boost the workflow output for the code, each time you boot things up? I am tired of having to wait sometimes an upward of 2-5 minutes for loading my packages, and sample code runs to even begin doing my work for the day. Anything to speed up such initial load times for a workflow? Are there any problems with this? Any simple example and explanation again?
I’ve seen some of these things here, but I would still like the experts to put down their notes here, for I feel it is really hard for beginners who are not proficient in dealing with computer languages and the system for 10 years to get started with Julia and read all the fancy documentation. Even though some of this might be repetitive, I would love to again have this one place where all this information is present in a clear and simple manner.
I apologize if you think this is not a good post, and I should spend more time digging into examples and documentation myself.
Thank you so much.