Comparison to python-Shiny? #711
-
Hi all, Really cool work. I was wondering if there might be users here who could help me understand some of the differences between python-Shiny and Solara, especially as pertains to what can be developed/maintained, app-wise. I couldn't find any other discussions in my searches, but if this exists some where, links would be appreciated, too! Thanks! |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
Hi, good question. In shiny, the state handling is separated from the UI/component/visuals. Some people prefer that, but for instance in their TODO app you see that the state handling code needs to also modify the UI, so this separation doesn't seem to work that well in practice (although vue has done it, but it requires logic in the UI layer: loops, if). Solara is built on top of ipywidgets, so we render natively on Jupyter platforms. I don't think shiny can do that. Also, we are strong in typing, our reactive variables (state) is typed, as well as our components, such that if you try to bind a string reactive variable to a component that expects an integer, you'll get a warning from mypy or other type checkers. Also, we don't use so-called "stringly" typing, where "strings"/"ids" in the UI need to match other strings in the state handling. In solara, we use variables and arguments, if they don't match, it does not pass silently, you will get an exception, but also the linter/type checker will warn before you leave your editor. I hope this helps, let me know if you agree/disagree. Regards, Maarten |
Beta Was this translation helpful? Give feedback.
Hi,
good question.
I think there are similarities in how we work with state. Both are reactive, where you don't have to manually add event handers.
In shiny, the state handling is separated from the UI/component/visuals. Some people prefer that, but for instance in their TODO app you see that the state handling code needs to also modify the UI, so this separation doesn't seem to work that well in practice (although vue has done it, but it requires logic in the UI layer: loops, if).
Solara is built on top of ipywidgets, so we render natively on Jupyter platforms. I don't think shiny can do that.
Also, we are strong in typing, our reactive variables (state) is typed, as well as our componen…