3 ms·
It's a programming language for working in the domain of interactive data visualization.
by couchand 3y ago
It'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.