
Plotly Dash and OmniSciDB for real-time data visualization - randyzwitch
https://www.omnisci.com/blog/plotly-dash-and-omniscidb-for-real-time-data-visualization
======
boarnoah
I used Dash pretty extensively in 2018 (so bear in mind things have changed
some since then).

It's a great tool but has some downsides compared to using d3, a chart library
or even PlotlyJS directly.

* There is no good path to invert Dash and Flask relationship so that you can embed Dashboards into the larger context of a Flask application. Which really limits it for single standalone dashboards.

* The JSON serialization and dash components are hard to extend or customize as an end-user (without making changes to the library directly). So you'll quickly run into a barrier when extending for anything custom.

So it's a great tool, you can build responsive dashboards (that work with
great Python libs such as Pandas for the processing) very quickly, but IMO its
not suitable for embedding dashboards into other applications (which TBF isn't
their goal).

~~~
jclay
I've created a few projects with Dash in the past and it's amazing how quick
it is to get something interactive up in about 20 minutes. It definitely has a
narrow set of use cases, but I had that Rails ah-ha moment for the first time
in a while where 80% of what I was trying to do worked out of the box with no
configuration. Compare this with creating a Flask backend server and React
frontend with webpacker, etc.

~~~
randyzwitch
OP

Definitely agree with you both. I chose Dash because I knew Python, but
JavaScript is just something that never seems to click with me. They
definitely make it easy for the pandas-using, wants-one-screen-and-a-few-
dropdowns type of person to get started.

------
ad404b8a372f2b9
I've used Dash professionally for the past few years and I think it's mostly
terrible. It's really easy to pick up and you can get an interactive dashboard
going quickly but past that it's useless. The API is completely undocumented,
all you get is a few examples which you can't generalize to your use-case
because none of their functions' parameters are described anywhere, on top of
that they introduce breaking changes seemingly every version. Some plots are
only discoverable through obscure forum posts by random users. Unless you plan
to reverse engineer the library don't bother for long or medium term projects.
In the end I was so frustrated I dumped it and made a custom dashboarding
library which serves Matplotlib figures from a http server (everyone says
their documentation is terrible but I think it's alright: it's complete and
it's mature).

~~~
Osmium
I wouldn't say it's terrible. There's a distinction between Dash itself (very
general/customizable framework) and Plotly charts (agreed, some chart types
are poorly documented).

Dash >= 1.0 has been pretty stable and well-documented without many breaking
changes imo.

