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.
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.