It seems to me that PlutoDesktop would be the simplest way to get people using Julia without all the normal setup friction and a silver bullet for Julia adoption. Pluto is already being used very successfully for teaching online courses. Simplifying access to that environment sounds like a big win. Just double click a .jl file or launch the application from your OS to immediately start performing some persistent, reactive Julia analysis. It would certainly be a much friendlier UI and setup process than VSCode, which is the currently recommended way to interface with Julia. Unfortunately, the PlutoDesktop project has been “On Hold” without any pre-releases since 2022. What are the roadblocks to getting this functional and fully released?
Hi Nathan, thanks for your interest!
I agree that PlutoDesktop is a really important project!
We got a $6000 NumFocus Small Development Grant around 2024 to finish the project, but the Pluto developer who the grant was for, disappeared, probably working on other projects now. We recently found a new developer to continue the work, but the grant was not enough to get the project finished – there was already a lot of work involved in bringing everything up to date after 3 years and learning new skills. So the project has been updated recently and it’s close, but not ready yet.
The issue is that the project is technically complex: you need some level of understanding of Pluto’s architecture (Julia+JS, complex full-stack app), and a good understanding of NodeJS, Electron, Julia multiprocessing, CI build systems, app distribution and auto-updating to work on PlutoDesktop. This combination of skills is very rare (and expensive), so it will be hard to find another contributor and a grant to pay them.
I’m also worried about the future maintenance – electron apps bundle a very large amount software, and the platform is evolving a lot. So once it’s built, it requires maintenance (it’s a security-sensitive application). It’s near-impossible to find FOSS maintainers, and to get grants for maintaining existing work. I looked into alternatives using tauri and electrobun, which are more lightweight and might require less maintenance, but these have their own challenges (Rust, new-and-evolving platforms, missing functionality).
If you want to contribute and you have time/resources available, get in touch!