Battle of the Python Dashboarding Giants: Streamlit vs. Dash vs. Voilà vs. Panel
medium.datadriveninvestor.comWhat a mountain of buzzwords! I miss Java Applets, which did many things better than the nonsense pushed today.
Java integration with the DOM was actually very nice. Thread support in Java was (and is) light years ahead of Python.
When writing a Java Applet, you had the feeling that you understood the entire app. No one knows what is going on in these new frameworks, which may explain the increase in data leaks.
Except that Java Applets were an absolute security nightmares in and of themselves.
They also looked very ugly and were extraordinarily slow, especially to startup.
But the biggest difference between them and these frameworks are that writing Java Applets were aimed at real developers, while many of these frameworks are designed to be used by less technically experienced people, like data scientists or analysts learning to code.
Therefore it's often easy to get started and create a simple dashboard, but the limits of the frameworks become evident after a while.
> But the biggest difference between them and these frameworks are that writing Java Applets were aimed at real developers
I'd say the biggest difference is that applets are a client side piece of a solution, while these are server-side frameworks that generate the client (HTML/CSS/JS) and handle client-server interaction as well.
It’s true that they tend to be data analysis focussed (because “dashboarding”), but that seems to manifest more in focus on integrating with data analysis libraries and tools (with which the target audience is already coding).
Oh yeah, I really loved debugging Java installations on clients PCs so our applets would work correctly.
> Dash: Enterprise-grade, one-framework-fits all solution. Unlimitied design flexibility & great scalability.
This is hilarious because the official documentation[0] suggests that you use hidden divs to store data as json if you need to share it between callbacks (which is more common than they would have you believe). And good luck serializing data structures with complex types in them.
Python frameworks are all fun and dandy untill you look under the hood or try to push the envelope.
Personally for all my dashboard needs I have found R's Shiny to be the best.
Yeah we need to update that page: there is a replacement called the Store component that uses local storage or non-DOM memory now. https://dash.plotly.com/dash-core-components/store
This is a documentation issue not a framework issue. For a long time you do client side storing of data with dcc.Store: https://dash.plotly.com/dash-core-components/store
For server side storing of data you should use a simple DB store like Redis.
Dash has really matured in the last 2 years and you can actually push the envelope in a lot of places now without having to do incredibly hacky things. The documentation though still isn't great...
We've finally (!) gotten around to updating this page, thanks to your gentle nudge ;)