Here's what's really going on, and what I think the observable team should have said:<p>d3 was born ~10 years ago, before the rise of vue and react. Today, the community is split into two groups that we shall call "data viz" and "software engineers". The crux of that whole comment thread is that large portions of the d3 API have now been superseded by React/Vue/Svelte, for the software engineering crowd.<p>You can even see Mike Bostock and the Observable team in places recommending the book and blog post of Amelia Wattenberger. But look at her blog post on using d3 with react: <a href="https://wattenberger.com/blog/react-and-d3" rel="nofollow">https://wattenberger.com/blog/react-and-d3</a> If you read that you'll see that the Tl:DR is basically<p>> Don't use d3 any longer for anything other than the axis objects: use react/vue to build and update the SVG elements.<p>I suspect that Mike Bostock's (radical) decision to move d3 entirely into the Observable world was a completely rational decision explicitly addressing the fact that he knows that, when it comes to building and updating the DOM, d3 has now been replaced by component-based libraries with HTML-like JSX syntax, i.e. Vue/React etc. At least for software engineers; there is still a community of dataviz people with their center of gravity more in academia and data science who don't use Vue/React and for whom it makes sense to use the entire d3 API (DOM updates as well as utilities like axis functions etc)<p>I think that it would help if the Observable team just stood up and said that explicitly. Maybe even say on the d3 README:<p>> If you are a software engineer, bear in mind that things have moved on from 8 years ago and that you may in fact be best served by using utilities from d3 but using React or Vue for your DOM building.<p>Also, I think that the Observable team did themselves no favours by their slightly evangelical insistance on encouraging people to try Observable because they'll find that they like it once they try. I am a software engineer. I am open minded. I have tried Jupyter many times and I have tried Observable. I cannot use those tools for one simple reason: I use git to navigate my code state. If I am debugging, I make small commits, and use stash and revert and cherry-pick etc to experiment with different code states. I think in git and I work in git. Observable (and Jupyter) are completely antithetical to Git. So I also think that the Observable team would do better to say:<p>> Look. If you're a professional software engineer who is used to working in a sophiisticated fashion with version control, then honestly this stuff might not be your cup of tea. I'm sure you can see what we're trying to do, and that it's really cool, but we understand if you just want to enter lines of code into a git repo using your text editor. And for you, here's a quick summary/pointer to docs on how to use d3 in that way, with Vue/React, and some pointers on how to make use of the Observable docs for non-Observable users.<p>Mike Bostock if there's any chance you read this, d3 is one of the most impressive open source libraries I've known and I have been a fan of yours for years! Observable looks amazing and very forward-thinking too and I think I understand that it's aiming to democratize javascript visualization. I hope the above comments came across as constructive. (It would be awesome to have more pointers in the future on ways to make use of portions of the d3 API with other DOM-building APIs such as Vue/React.)