I&#x27;ve had the complete opposite experience with D3. It adds one layer of abstraction (data binding) that is a little hard to understand, but pays off reams once you &quot;get&quot; it.<p>It doesn&#x27;t do anything if you just desire to drop in your data - you need to build everything from scratch. On the other hand, if you start with good code or a good example and want to do something slightly different, it&#x27;s very easy to modify to do what you want.<p>The amount of code it would take to &quot;do everything yourself&quot; that D3 does would be an order of magnitude more.