Wednesday, April 18, 2007

Google, Silverlight and Apollo

So, as predicted, Google have announced online presentation software, and it's done using SVG and VML. You can see a sneak preview at http://ajaxian.com/archives/tonicpoint-ajax-powerpoint-with-svgvml

This makes the race for graphics plugins - Microsoft's Silverlight and Adobe's Apollo - hard to understand. If they're not needed for the highest profile web graphics application, then what are they for?

Well, they'll both play videos and audio. It makes sense to treat these as plug-ins, because they rarely have to interact much with the rest of the page.

Mixing Vector Graphics with HTML
But for vector graphics - circles, lines, shading, rotations - plug-ins are a red herring. You need the browser to handle vector graphics directly, because you need it to be seamlessly mixed in the same document as HTML. That way, you can:

  • mix and match HTML elements (e.g. fonts, bulletpoints, linebreaks etc) with additional graphical elements (circles, lines, shading, coordinate transformations) to enabler richer web applications
  • share the events model - to seamlessly respond to user events (e.g. an SVG slider controlling an HTML form)
  • share javascript and DOMs - adding, modifying and deleting nodes, or using Ajax, to create interactivity between any elements on the page
  • share CSS, to style your site consistently

No plugin could ever satisfy these demands, all of which are required to produce web presentation software.

The web graphics market
Funnily enough, I think management at Adobe accepts these arguments. It's just that they don't have a browser, so they have to rely on plug-ins (which are quickly become very similar to a browser) until they find something else - likely improved designer tools for creating SVG / VML websites.

Microsoft have tried the other route - of replacing SVG / VML and HTML with a new language, XAML. But even an all-powerful monopolist won't be able to fight against the internet.

It's a myth that vector graphics in the browser are weak. They're good enough to produce presentation software, and they're getting better - SVG support is getting even better in Firefox, Opera and mobile devices, and Safari is gaining SVG support in the next release.

SVG / VML is the future
If you're considering writing a web application that requires vector graphics, you shouldn't worry about Apollo, Silverlight, or Flash. Just mix some SVG and VML in with your HTML. The technology already exists, it works fine, it provides the best possible integration with websites, and it won't go away.

2 comments:

nkast said...

The problem with svg/vml is that they are not supported universally.
What is missing is a tool that translates one (say:SVG) into the other (->VML) depenting on the client's browser. Perhaps a set of ASP.NET controls might do the job. But on the other hand, VS is not the favorite tool for web designers!

Not to mention that design tools for SVG were too late, as were support by Mozilla. I had a hope that Adobe might migrade flash to SVG (remember Adobe's SVG control?) but soon became clear that was not the case.

There are no tools to help a webdeveloper use a SVG/VML senario and most of us don't have the resources to develop in-house tools.

nkast said...

Hey, I just found this:
"In-Line Cross-Browser SVG/VML ASP.NET Control"
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=5559&lngWId=10#zip

Let's see what we can do with it!