Claude Code integration (other models work as well):
Over the last years, I’ve been trying to integrate Makie into Jupyter/Pluto, but there are some things that are simply impossible for a perfect integration when the platform just works too differently.
This has lead to me thinking about it and coming to the conclusion, that Bonito.jl is actually the perfect basis for a notebook platform, since it makes it possible to implement almost everything natively in Julia. With Bonito’s composable design optimized for creating dashboards, it’s also possible to re-use anything in BonitoBook outside the actual notebook, so it’s very simple to go from a notebook to a fully customized dashboard.
Read all about the advantages on the website and let me know what you think
I love the team behind Pluto and the attention to detail that has been put into it, but Pluto itselve has never appealed to me. The Pkg integration and reactive workflow isn’t working for me and that most of Pluto is implemented in Javascript instead of Julia doesn’t fit my approach of “ecosystem first, notebook second” which I imagine for BonitoBook.
The final issue is, that the Makie integration has stalled - you can use Makie in Pluto, but WGLMakie isn’t working as well as it could due to several reasons.
On the positive side, I think there’s lots to share, we’ve been wanting to create a shared websocket serialization implementation and it should actually be easy to bring Pluto’s reactive execution model to BonitoBook thanks to Pluto’s modular approach in that regard.
I read the website and found this point confusing! "It should actually be easy to bring Pluto’s reactive execution model to BonitoBook” makes it sounds like reactivity isn’t there yet. But the very top of the website says “Fast & Interactive Built on Bonito framework for real-time reactivity and smooth user experience” (emphasis mine)
So after reading the website I was unsure if reactivity is already there or a planned “shouldn’t be too hard” future feature.
Nice to see “Julia over JavaScript” in the comparison to Pluto!
I wonder if you have any plans regarding other neat features pioneered in Pluto? After getting used to, these features become extremely natural, and I miss them whenever I need to use a Jupyter notebook:
Reactivity (ofc; already mentioned)
Automatic environment management – just do using SomePackage and it’s there, fully reproducible
Interactive inspection of arbitrarily nested data structures
How does this compare to Genie.jl? Do you see Bonito book as becoming its own Dashboarding ecosystem?
Does this effectively “solve” some problems of Julia-WASM by fully allowing plotting with WGLMakie in the browser? What else do you see as needing WASM support?
Is R support possible via RCall.jl? Or is there another reason it was not supported?
I suppose it’s possible… But note, the license is proprietary, non-commercial license I’ve not encountered before, and that usually conflicts with the GPL (used by e.g. R). Or rather, the GPL does allow you to do whatever in private, but not distribute/convey with proprietary code.
Pricing for commercial is available by email, you couldn’t distribute such (notebooks) for commercial anyway, but maybe to non-commercial users…, sort of violating the GPL? Or not if you do not send the full code, assume they set it up before?
To install, currently (though note Bonito.jl it builds on if MIT/open source and registered):
It’s not registered, and may never be? I can’t see it waiting for registration, and I thought open sourse a precondition. We do though have e.g. MKL.jl to install proprietary (though freely distributable), so at least for wrappers ok, they are open source, themselves:
yeah this is a difficult point and not entirely thought through yet… Ideally, I don’t want to develop it for a big profit, and rather develop it just like Makie, but I really don’t want to hear from a company using my software “sorry, there is no way we can justify paying you for maintenance”… Which is the situation for Makie most of the time
Edit: it does have an open license for non commercial use and will be registered.
I’m pretty open for better ideas In the ideal world it would be 100% open source and everyone putting significant work into it would be paid by anyone getting significant profit out of it…
In any case, there is also fair use for commercial usage… I still need to figure out the best limitations and how to put them into the license, while allowing an open ecosystem to build… I’d definitely only want the biggest commercial users making a profit to pay for the maintenance