But even if you already develop web apps that handle lots of data, you may still think of complex visualization as a thin skin on top of the DOM.
Well, not so thin with Mike Bostock's D3.js in town. ('D3' = 'Data-Driven Documents'.)
In the abstract, D3's idea is simple:
D3 allows you to bind arbitrary data to a Document Object Model (DOM), and then apply data-driven transformations to the document. As a trivial example, you can use D3 to generate a basic HTML table from an array of numbers. Or, use the same data to create an interactive SVG bar chart with smooth transitions and interaction.
But the design details and syntax get pretty weird pretty quick, at least to the dev-eye still habituated to the notion that 'visualization is a thin skin'.
So, for instance, when I first ran into D3, I felt an immediate surge of excitement, followed by a quick back-burnering, sensing that programming with D3 would require a bit of a brain-paradigm shift.
But if you think data-driven documents sound cool,and want to learn more quickly, check out this talk by Mike Dewar (from a recent New York Open Statistical Programming Meetup):
Mike hacks an impressively systematic, extremely clear path straight from JSON data through a prettily-formatted document. Well worth the 56 minutes (especially with all Mike's code samples on github).
Tons of fun, and potentially extremely useful tool. Enjoy!