Seen in Las Vegas
Since my last column, I’ve had the pleasure of attending the Microsoft Mix08 conference in Las Vegas, and while I most firmly deny the accusations from friends and family that I had a Microsoft brain-implant fitted over there (because of my unconcealed excitement at what I saw), there’s no doubting that Microsoft showed some very powerful and exciting new technologies it has under development. As you’ll read below, though, a significant number of them really are still very much in development, and getting them to work for real-world applications will be tricky for some time to come.
The main push from Microsoft at the show was the latest version of Silverlight, which unlike its predecessor is far more than just a video player. Version 2 has the capability and the development tools to become a platform for full Rich Internet Applications (RIA). Microsoft Expression Blend, Silverlight’s web design tool, is just fantastic for laying out UI components, with visual prompts not only for alignment to other controls on the page, but also a visual prompt whenever two controls are spaced by a chosen distance, so that with very little effort you can build applications that are pleasant to look at. It’s obvious that great designers such as Jon Harris, formerly of Macromedia and now senior product manager for Expression Suite, had a lot of input into the production of one of the nicest UI design tools I’ve seen for a while. This emphasis on the importance of design has also been followed through to Visual Studio, where the Design View of web projects now employs the excellent rendering engine from Expressions Web.
At this point, I’m going to take a small diversion from the Mix08 story to mount a favourite soapbox of mine – the rendering engines in popular web design tools. Many of these design tools use their own proprietary engine to render your HTML into a view that approximates the view each browser would show. I deliberately said “approximates”, because we all know that even the major browsers don’t do everything right, so what chance does a piece of code written specially for one web design tool have?
Way back in the early days of the web, when the most popular browser was Netscape’s Navigator, Netscape produced a web-page editor called Netscape Gold that used the same rendering engine as the browser itself and was rather good. Then along came IE and cast us all out of web design paradise forever. This isn’t a dig at IE or any other browser in particular: it would be great if they’d all render a web page the same, but currently they just don’t. Certainly, we have defined standards, but if you look at these they contain phrases such as “User Agents [browsers] may use any algorithm they wish to do so, and are free to prefer rendering speed over precision” (www.w3.org/TR/REC-CSS2/tables.html). When the standards themselves are open to variable interpretations, what chance do we have that browsers from different development teams in competing companies will behave in exactly the same way?
If we’re to continue using HTML (and there are powerful arguments against doing so) then we need a web-development tool whose “design view” can accurately emulate different browsers. The reason these design tools contain their own rendering engines, so I’m told, is so they can offer the developer debugging, context-sensitive help and various other integrated services, all of which are useful at times. But wouldn’t it be great to be able to tell your design application to use a different rendering engine so that you can see a truly accurate view of your web page, not merely an approximation?