Nice work!
The question everyone is probably asking: why another Genie.jl?
Could you please compare the features of the two frameworks?
Nice work!
The question everyone is probably asking: why another Genie.jl?
Could you please compare the features of the two frameworks?
Thanks for the question!
They are very different, and most of their differences arise from their different execution models.
Genie adopts a reactive component model, similar to React’s component model.
These characteristics makes Genie very flexible, giving the developer a lot of control on how things look and behave, which makes Genie suitable for developing any kind of web app really. But they also make implementing simple interactivity that goes beyond UI updates less straightforward, especially because of the hard separation between the UI placement and the UI behavior (which resembles the separation between HTML and Javascript).
Lit adopts a top-to-bottom rerun model, like Streamlit.
button() and text() in the order you want them to appear.These characteristics make Lit more approachable for scientists and researchers who want to quickly turn Julia scripts into interactive web apps, without needing to learn web development concepts like callbacks, reactive programming, or the separation between UI and behavior. But since each UI event triggers a rerun of the script and a rebuild of the page layout, Lit’s execution model can also make interactions feel less responsive for expensive reruns (although it provides mechanisms like fragments that can help with that).
Hope that helps!