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!
I think Genie, as well, tries to be simple for simple tasks. (I am biased
) All callbacks on the client side are automatic and hidden from the user. The user has to define a button variable and write a callback on the backend, but that doesn’t look very different from the Lit-code, to be honest.
Add block: Latest developments are precompilable apps via packaging and startup times from shell to the functional webpage of 4s.
Moreover, these days AI tools can easily write a Vue-based UI that can be directly hooked into Genie.
Thanks for the balancing comment, because I’m also biased ![]()
On another topic, I’ll soon change the name of the package so I can register it. I was wondering if I should “reannounce” the package with the new name, since I can’t edit neither the title nor the original post, or just comment here on the name change.
What do you guys think?
I (and other users with at least “Regular” status) can edit the title. So adding a comment to this thread is definitely an option
pkg> add Magiclifetime argument togen_resource_path().CHANGELOG.md for details.Can a Regular+ discourse member do a Lit => Magic search-and-replace in my first post, please? Thanks!
Editing posts is not something a regular can do but I fixed the title. Can’t you edit your own posts? Or does that stop after some time has passed?
Thanks! Yes, I can’t edit after a while.