Compiling SVG: How and Why

Michael Levy, Quetzalcoatl Bradley and Calin Somosan, NewHeights Software Corporation 1006 Government Street, Victoria, BC, V8W1X7


One of the less discussed effects of web applications is the liberation of interface design from the constraining shackles of "human interface guidelines". What were revolutionary manifestos are now ossified collections of constraints. In the first place, metaphors that were relevant in a period where humans were to be persuaded that their (real) desktops could be automated must be seen as irrelevant to generations who are only likely to see file folders and filing cabinets in museums. But, more importantly, the mechanisms of enforcement, namely the class libraries required to realize these guidelines are so complex that they necessarily put the power in the relationship between software architect and industrial designer in the hands of the software architect. This is precisely where it does not belong. The job of today's software architect is to design and guide the development of a product that reflects a projection of a customer's product or service offering in the manner considered to be most appropriate by the customer.

Because HTML form tags are hopelessly primitive, and because it is self evident that programming talent and graphic design talent are generally not co-resident, successful Web applications have relied on graphic designers to design the look-and-feel of their Web applications. The lack of a sound technological underpinning for graphics is one of the reasons why SVG is going to be at the heart of a dominant development paradigm for Web applications.

Our interest, however, lies on the desktop. As advantageous as Web applications are, they cannot compete with traditional rich-client applications in responsiveness. Humans are continuous, not transactional. Good desktop applications must appear to behave continuously, however they are delivered.

Our company, NewHeights Software Corporation, has developed an OEM product for Mitel Networks. Mitel Networks manufactures PBXs and telephones. Their most recent product lines include a range of Voice-over-IP telephones and PBXs. The product we developed for them is called "Mitel Network's 6600 Your Assistant". The development of this product has followed a path that is significantly different from the usual applications developed in the telephony world. The product is a desktop application that manages contacts and calls. It shows caller id information for incoming calls, allows its users to initiate outgoing calls, maintains call logs, and so on. In fact, the full product is feature rich - way beyond the capability of a Web application. Nevertheless, as is outlined in this article, the application has more in common with Web applications than desktop applications. The reason why this approach was taken is the main point of the article: the product design occurred in the industrial design laboratory, not in the software development shop. The people who designed the look-and-feel of the product also design telephones. Their computer tools are Adobe Illustrator, not Microsoft's Visual Studio. Our challenge was to take the illustrator images and accompanying behavioural specifications and implement them. We claim that this is not only a "disruptive" approach to software design, but it is an approach better suited to the modern world of convergence between the desktop PC, networked services and intelligent devices

The paper will present a brief evaluation of the product. One of the conclusions of this evaluation has led to our interest in compiling SVG, by which we mean the translation of SVG to a set of C++ or C# classes that use the Microsoft GDI+ library. We will describe our approach and discuss the major challenge, which is to find an alternative to DOM manipulation for generating dynamic, interactive graphics.