Working in financial services, it's no surprise that charts almost always form some part of the apps I create. Unfortunately, using charting libraries to implement UX designs invariably follows the Pareto principle. An implementation which matches 80% of the design takes 20% of the development time, conversely, matching the final 20% of the design consumes the other 80% of the development time. In many ways it's back to the dark old days of thick abstractions like YUI, Ext and friends.

By now I can hear you screaming D3! It's often called out as the solution to all things charting; the jQuery of SVG. In that case: why does a quick Google throw up so many charting libraries built on top of D3? Many claim to enhance D3 without removing its awesome power, yet all that I have found result in the usual API bloat and a return to 80/20.

Based on first hand experience, I'll talk you through the logical leaps and the painful doubling-backs of building on D3.