4 ms·
> it's not d3 based. ... I'm curious if any other graphing libs will build on echarts internals in the future and if the current rise in popularity will one day
by couchand 3y ago
> it's not d3 based. ... I'm curious if any other graphing libs will build on echarts internals in the future and if the current rise in popularity will one day be seen as the end of d3.
I think your history is a bit muddled here, and it shows when you suggest "generalized" means "at least 8 charts".
The reason D3 has the adoption it does is due to not being a charting library. Charting libraries like Echarts come and go. Some have more or fewer of this or that, but they all suffer the same design limitation: because they don't provide a visual grammar that you can recombine at will, you're forever limited by the scope of the charts provided by your library.
Going from D3 to Echarts is like going from Rust to Excel: it's a good move if your team is more productive in that environment, but you need to have a sober understanding of what you're giving up.
- lelanthran 3y ago> The reason D3 has the adoption it does is due to not being a charting library. Okay, then what is it? A more general tool/framework to implement actual charts?
- couchand 3y agoIt's a programming language for working in the domain of interactive data visualization.
- Octoth0rpe 3y agoI think my original description - a foundational lib for generalized graphing libs - is more accurate than this. I mean, d3 is literally not a programming language. It's written in js, and used in js (ignoring ts/coffeescript, etc). It's a library that provides a large toolbox of useful functions for drawing, and for the kinds of math one needs when implementing a broad array of charts. One builds on top of it, and IME it is _rarely_ directly used. d3 describes itself as '[a] JavaScript library for bespoke data visualization'.
- couchand 3y ago> d3 is literally not a programming language In what ways is it, though? For instance, D3 offers looping constructs and facilities for control flow, so I'd conjecture it's Turing-complete. > It's written in js It's a slim minority of programming environments that are self-hosted. Most are in fact implemented in another language. > used in js This is a technique called "deep embedding" in the DSL literature. > provides a large toolbox of useful functions To put it simply, that's not the point of D3 at all. D3 provides a mental model for data applications that enables a developer to raise the level of abstraction. This is a new way of thinking about data flow in visual applications. Oh, and it also has some helpful maths included. > One builds on top of it, and IME it is _rarely_ directly used. I take issue with this comment from several angles. Facially it's untrue, there's clearly lots of examples of D3 development. And the implication that something is defined by the output of some of its users rather than the tools it offers them all seems a bit strange. The difference between your "generalized graphing libs" and D3 is orders of magnitude larger than the difference between those libraries and one that only offers a single chart type.
- bobbylarrybobby 3y agoD3 is a library that 1. lets one elegantly and concisely bind data to DOM elements 2. use elements’ data to control their appearance. This ends up being sufficient to be able to draw plots, but is much more general (you wouldn't call a `<ol></ol>` a chart, but D3 can add and remove `<li>`s from it with ease).