4 ms·
I was in this exact same situation a year ago. Learning d3 had always been on my list of things to do but I never got around to it. When I finally found some ti
by borrowcheckfml 5y ago
I was in this exact same situation a year ago. Learning d3 had always been on my list of things to do but I never got around to it. When I finally found some time I realized that all their resources and tutorials had moved to this heavy interactive thing called "observable" - I was furious because I spent hours trying to find old tutorials. Maybe Observable is a good product for some use cases, but I don't want to deal with it. I want to have plain HTML with plain JS so that I can actually understand what's going on. No layers upon layers of magic. Eventually I gave up.
We need to stop forcing all this unnecessary complexity upon users.
- alisonkisk 5y agoAre you sure it's unnecessary complexity? To someone else, HTML and JavaScript may be "unnecessary" complexity and they want to see the plain C/C++ code of how to render a web page with dynamic animation.
- dgb23 5y agoBut then again, you could just not use d3 in the first place and write a thin translation from your data structures to svg strings. Maybe use a template engine. You don’t need to cover the whole spec for your use case.
- borrowcheckfml 5y agoYes, I ended up not using d3 and using something else instead. But it's a shame because I thought d3 is a great project and a good fit for my use case. I just didn't want to waste my time and energy dealing with Observable.
- pmontra 5y agoWhat did you use and was it up to the task?
- nitrogen 5y agoSVG seems really intimidating at first, but for simple (especially non-work) use cases where you only need to do one thing, it's actually really fast and easy to generate minimal SVG directly from data. The learning curve is no steeper than learning a does-everything plotting library, again for simple unchanging usecases. Prerequisites: knowing how to scale numbers from one range (data range) to another (SVG coordinate range) using multiplication and addition.
- aseipp 5y agoFor the lower-tech people Observable is targeting (who are in the linked thread), I suspect that having to write tons of Javascript/HTML is actually the "unnecessary complexity" they precisely want to avoid entirely. So Observable is not unnecessary complexity: it's actually a solution to the complex problem they already have. This kind of discussion you're pointing towards isn't actually a discussion about difficult ideas like "unnecessary complexity," or what is and isn't "complex", or "software magic", as if that was a singular ontological property or category, waiting to be applied. The discussion you're trying to have is ultimately about words, even if you don't think so. If you don't agree on the words with someone else, then trying to have a discussion of ideas, ideas like "unnecessary complexity", is less like a discussion and more like two cars flying past each other on a highway. Your point is just falling on deaf ears, except for everyone who was driving to the same destination already. Rather than having discussions about that stuff, I think the much more obvious answer pointed at elsewhere -- that Observable provides money for the developers, and D3 does not -- is much more useful as a starting point. And frankly, I think much more plausible. It's a significantly more difficult topic to discuss social issues like monetary support for other people in our nerd culture, than it is to discuss "Is this software complex" -- a thing nerds love to opine over endlessly to avoid actual difficult discussions, as if it had any crisp definition. But it's also significantly more honest and a better reflection of the underlying motives, the words behind the discussion, than zooming 60mph past someone on a completely different topic going the other direction. I suspect Observable does in fact make money, while D3 doesn't, and so it's understandable that things play out this way, if my assumption were correct. It sucks for highly technical people like myself, or you, who also may not want Observable and are perfectly fine on our own. But talking about software complexity is a red herring; it comes across more as an attempt to fit the world in a neat box of rules, rather than handle it as it is. And that will never leave you satisfied, and always leave you feeling alienated.
- j-pb 5y agoDon't worry, you wouldn't have "understood" D3 anyways, even without the support wheels that observable provides. It's not a chart library, it's a modular system to solve common visualisation problems, often times interacting in extremely magical ways (e.g. zoom and drag). Since you were too enraged to jump over your own shadow and invest the 5 minutes to learn a tool that I've literally used to teach children in rural Africa how to program, you probably wouldn't have been frustration resistant enough to learn D3, which has a steeper learning curve than emacs.
- mirekrusin 5y agod3 and observable is closer to the essence of KISS than "unnecessary complexity".