You are currently viewing a snapshot of taken on April 21, 2008. Most of this content is highly out of date (some pages haven't been updated since the project began in 1998) and exists for historical purposes only. If there are any pages on this archive site that you think should be added back to, please file a bug.

blue sky: extension

what's our vector victor?
June 8th
Submitted by Michael Bayne <> to Extension.

We've got text markup and we've got the IMG tag and if we want to get really screen blinky, we've even got Java. However, there are elements of presentation that can't nicely be accomplished with a bit-mapped image and don't really merit paying someone seventy five dollars an hour to write in Java.

Enter the vector graphic formats. With the ability to scale-independently render text, images, polygons and curves, animate a thing or two, and in some cases synchronize audio samples, a whole world of compelling presentation is opened up to the enterprising web developer.

A number of avenues are available that fulfill the realities of useful vector graphics, and each has their pros and cons. What needs to happen is for a small group of individuals to get behind one of these initiatives and write an open source implementation. Doing it in the scope of the Mozilla project allows that group to take advantage of the cross-platform development environment fostered by Mozilla so that the code can be easily ported to all available platforms.

Now, on to the contenders.

Vector Markup Language (VML)
VML tries to leverage as much as possible of the mental investment that people have already made in HTML and other web development technologies. It is an XML based markup language that provides for the description of polygon and curved shapes, images, text and various coloring and fill methods.

It uses CSS2 and the visual rendering model described therein to effect positioning and layout of the vector graphics.

Of the three choices described, it is the least sophisticated (read least complicated) and definitively the easiest to implement. It is an intuitive extension of the facilities provided by HTML for text markup. It provides what would likely amount to 90% of the functionality really needed by web designers and it is the only one that can feasibly be authored in a plain old text editor (although an editor for VML would be significantly less complicated than an editor for the other two contenders).

Macromedia's Flash (SWF)
Flash is a vector graphics rendering and animation format. I call it a format because it's not a hand-editable language the likes of HTML or VML but is in fact a binary file format. This has it's benefits and it's drawbacks. Since the file size savings between a vector graphic and a bit-mapped image are often in the neighborhood of five to ten kilobytes, a binary format allows for simple vector graphics that are less than a kilobyte where a more verbose text format might weigh in at a couple of kilobytes for the same graphic. The down side is that you can't do anything with Flash unless you have a special editor.

Flash is significantly more expansive in scope than VML. In addition to polygon and curve-based shapes, text and bit-mapped images, it supports animation, synchronized (bit-mapped) sound as well as font description (a big plus in a web where you don't know what fonts the user has installed).

If an open source cross-platform implementation of the Flash viewer was available (instead of only Macromedia's Win95 specific plug-in), the fact that Macromedia was the sole provider of authoring software wouldn't be such a thorn in the side. Since Flash provides such a rich array of multimedia presentation primitives, it's capabilities may ultimately outweigh the drawbacks of it's proprietary heritage.

Precision Graphics Markup Language (PGML)
PGML is in many ways the most sophisticated of the three formats because it is essentially the intersection of PostScript and PDF with a few goodies thrown in that make sense on the web. Anyone who knows anything about PostScript and PDF will know that saying that implementing a viewer for this format will be no small task is a vast understatement. However, if we're going to take the time to make sophisticated web presentation a reality, one could argue that we might as well go all the way.

PGML re-realizes PostScript in an XML based syntax. Being a derivative of PostScript, it provides a feature-rich imaging model and adds to that simple animation capabilities along with hooks for scripting and more complicated animation control. It also has the interesting characteristic of being nearly one to one mappable to the Java 2D graphics API which provides for some two birds with one stone action.

Like VML, PGML can actually be authored with a plain old text editor, although you'd be crazy to think you could begin to touch the scope of it's capabilities by hand unless you're a proficient programmer. The real merit of PGML is that it provides a sensible exit strategy from the half-baked world of HTML as page layout language. Oh, and leave the terminal-independent display holy war at the door please. PGML addresses the need to extract the content from the layout information for searching and non-graphical layout purposes.

So there you have it. Pick your poison and get writing. All three specifications are pretty fully developed and ripe for implementation.