It wasn’t too long ago that creating a chart on the web was essentially impossible. In Not So Distant History, the horribly resistant path of least resistance was to use the .NET Framework to render a chart on the server, and return a static image via an interpreter layer.
You read that right: a static image.
The only way to have interactive charts in Not So Distant History was to force users to leave the browser and open Excel. Users were stuck looking at a JPEG of a chart, and it was virtually impossible to draw any meaning out of the data other than by actually looking at it without interacting with it, because the visualizations were simply images—there was no semantic markup embedded within them.
While images were a simple way of visualizing data, developers also turned to Java Applets and Flash. These were plugins that could render beautiful complex information loaded from external sources. Just as with web design as a whole, Flash seemed to dominate the market for a long time, as it removed the limitations of working strictly with the DOM.
However, that freedom ultimately caused their failure—they were so removed from any semantic concepts, and so heavy to implement, that better standards began to crop up. Flash is now mainly used to serve streaming media, ads, and interactive multimedia content on the web, and even those are moving toward native video implementations.
Thankfully, things have gotten better. Microsoft introduced Vector Markup Language (VML), originally for their Office Suite, as an XML-based file format to represent two-dimensional vector graphics. Although this standard didn’t last, it did give birth (more accurately, was a fraternal twin) to Scalable Vector Graphics (SVG).