3 ms·
in terms of being the only charting library to update based on diffs, this might be true for julia but javascript charting libraries have been doing this for a
by twobitshifter 3y ago
in terms of being the only charting library to update based on diffs, this might be true for julia but javascript charting libraries have been doing this for a while. my favorite is echarts.
- krumbie 3y agoI don't think we claim we are the only library that uses something like Observables, as you say there are others that do. VegaLite also uses a signal mechanism for interactivity, for example. Makie has been inspired by many libraries that came before (although I can't say that I knew echarts, specifically :) ) Every plotting library has something to offer, there are so many choices to make when building one that you can't cover everything. I envy the pure javascript libraries a little for their easy embedding in websites. But when you already do data work in Julia, especially with custom types and such, it's nice not having to move across a language barrier, and instead make use of Julia's multiple dispatch some more by using a native plotting library.
- nsajko 3y agoTangential: No Grammar to Rule Them All: A Survey of JSON-style DSLs for Visualization https://arxiv.org/abs/2207.07998 https://arxiv.org/abs/2207.07998 Both Vega and Echarts are covered, among others.
- twobitshifter 3y agoThanks, I was looking at the quote from Alex Gardner under the discussion of observables. It might be I’m misinterpreting what was meant by that.
- simondanisch 3y agoWe're not using diffing! Diffing has a pretty big overhead for calculating the shadow dom and going through all values and seeing if they're the same, which can be very expensive for huge plots. We use signals that get wired through from the user up to the gpu, so if the user changes something, it gets immediately and directly changed on the gpu too! that's very different from diffing and much faster.. We're surely also not the only ones doing something like that, but Alex is referring to the whole package of Makie offering the ui, performance, simplicity and visuals to do this easily
- twobitshifter 3y agook, that’s interesting. The other libraries don’t diff the dom either (so many different diffs in this world) but compare the chart configuration and use this to determine what’s changed. And when you provide a partial configuration the existing stuff is implicitly left unchanged, so only new data is compared.