I really think the power of D3.js is within the ability to do "view source" or "inspect element" and look into exactly how things are rendered and being able to change things dynamically to reproduce your needed behavior. You really don't have this power with other charting libraries/tools/frameworks.
You can't do this with <canvas /> and that's why I think it falls a bit short. With the virtual DOM it also gets harder "changing stuff from the console", but I guess there are extensions that allow you to do that as well.
But anyway, the DOM seems like a great abstraction, not just for doing UI, but also for building complex dataviz. But not because of performance, or because it's on "the Web". Simply because it's transparent and allows for copy-paste viral effect. We should keep this in mind when building future platforms.
Albeit, you can also work witch canvas, when using D3.js. This is especially useful, when you want to max out performance, wich is not the very best when using svg.
Being someone who has never used D3.js, every time I see a story about D3 I think of Blizzard's Diablo 3 title. My thought on this headline was "Hey, that's cool... Someone wrote a hack that allows you to scroll around D3 maps!" I was thoroughly disappointed. :(
You can't do this with <canvas /> and that's why I think it falls a bit short. With the virtual DOM it also gets harder "changing stuff from the console", but I guess there are extensions that allow you to do that as well.
But anyway, the DOM seems like a great abstraction, not just for doing UI, but also for building complex dataviz. But not because of performance, or because it's on "the Web". Simply because it's transparent and allows for copy-paste viral effect. We should keep this in mind when building future platforms.