Silverlight versus Flash

Silverlight will enable advanced design, media handling and .NET control

Tom Arah gets to grips with Microsoft’s new Expression Studio and Silverlight platforms and wonders how they will fare against Adobe’s Flash.

Recently I looked at how Adobe is reworking Flash in preparation for the coming battle with Microsoft over the Rich Internet Application (RIA) space and, with it, the likely future of computer-based design...

In this article we finally get to see just what forces Microsoft has assembled – and its three staged launches at the MIX 07 conference in Las Vegas effectively amounted to a declaration of all-out war.

Expression Studio

First up was the official launch of Microsoft’s entirely new Expression Studio suite of design applications (see separate reviews) built around Expression Web for web page authoring and Expression Blend for application development. Blend 1.0 is particularly significant - and impressive – thanks to its use of XAML (eXtensible Application Markup Language). XAML is Microsoft’s new markup language for describing the presentational surface of an application based on its new Windows Presentation Foundation (WPF) technology. When brought together with the separately handled .NET based logic, the result is a compiled desktop EXE that can offer all of those rich design features that we have come to associate with Flash – vectors, bitmaps, audio, video, user interface (UI) components, live server-based data, interactivity and animation – along with some entirely new design capabilities that are all its own – 3D graphics, high-level formatting including video projections, and intelligent layouts that adapt to the screen space available to them.

Expression Blend’s WPF-based desktop applications push the envelope of rich design
Expression Blend’s WPF-based desktop applications push the envelope of rich

With Expression Blend 1.0’s extraordinary design capabilities Microsoft seizes the Rich Application high ground - but what about the “I” in RIA: the Internet? To truly compete with Flash in the RIA space, Microsoft needs to move beyond the desktop and into the browser. This is possible with Expression Blend 1.0 thanks to the ability to produce sandboxed browser-hosted XBAPs (XAML Browser Applications) as well as fully-installed standalone desktop EXEs. Simply type or click through to your XBAP’s URL and the design-rich, WPF-based XBAP application automatically loads into the browser window.
Crucially however, each XBAP remains a self-contained, full-blown executable rather than an integrated component of its hosting page. Even more significantly, each XBAP remains fully tied to WPF so can only be viewed under Vista or under XP systems with the .NET 3.0 runtime installed. As such, XBAPs represent a useful instant deployment option for managed organizations but they go against the two foundations on which the Web is built: the HTML-based web page and universal access. By contrast it is Flash’s lightweight integration into the web page and truly cross-platform playback that are the real secrets of its success. In particular it’s the simple integrated Flash Video (FLV) playback, as seen in YouTube’s pages, that has driven the spread of the Flash player and so provided the necessary platform on which more advanced RIAs can operate.

Flash’s lightweight and integrated web page components are the secret of its success
Flash’s lightweight and integrated web page components are the secret of its success

As such it was noticeable that, with the launch of Expression Studio, Microsoft was attempting to redefine the term RIA to mean “Rich Interactive Application”, and the reason is clear. With its WPF-based capabilities and its more comprehensive event model, Microsoft can certainly declare itself the winner in terms of design and interactive richness. Ultimately however the real battle is for territory; while “rich” is important, “reach” is paramount and here the standalone nature of XBAPs and their tie-in to WPF prevent Microsoft from moving far beyond its Windows desktop application stronghold. By contrast Flash’s true cross-platform, cross-browser web page integration has enabled its player to seize almost 99% of the vast web space. It looks as if the RIA war might be over before it’s even begun.

Microsoft’s Silverlight player will take the fight directly to Flash
Microsoft’s Silverlight player will take the fight directly to Flash

Silverlight 1.0

Except that this isn’t a one-off battle, it’s a long-term campaign - and one that Microsoft can’t afford to lose. As such, even more significant than the announcement of the Expression Studio tools was the launch of the beta “go-live” release of Microsoft’s Silverlight 1.0 technology (previously codenamed “WPF/Everywhere”). The beauty of Silverlight is that it uses a subset of XAML but not precompiled into EXEs or XBAPs but loose within the browser where it is parsed and then rendered by a browser-hosted player. Crucially this player is trivial to install at around 1.2MB and isn’t tied to the WPF platform as Microsoft is developing players not just for IE 6/7 and Firefox on the PC but for Firefox and Safari on the Mac and with cross-platform Opera support promised soon. This is the second phase of the war and is designed to take the fight directly to Flash in the browser.
But the obvious question is: why would end users actually want Silverlight? After all Flash already offers all those core design features - vector, bitmap, audio, video, live server data, interactivity and animation handling – that are necessary to provide today’s state-of-the-art rich web experience. Moreover, all those even more advanced design features that Expression Blend 1.0 enables, such as native 3D handling and adaptive layouts, are exactly those features which are tied to the WPF-optimised operating system and so not available to the cross-platform Silverlight. Silverlight needs to offer end users more than Flash or Microsoft’s battle plan will soon grind to a halt.
Interestingly Microsoft has identified Flash’s weak point when it comes to rich design and end user experience and it’s the area that most people would consider Flash’s greatest strength. As such Silverlight 1.0 is primarily targeted at handling video through its support for WMV files (audio can be handled through either MP3 or WMA). WMV9’s support for the industry standard VC-1 codec is especially important as it offers better quality / efficiency than the Flash FLV format and unlike FLV it scales well right the way from low bandwidth mobile delivery to the all-important high-bandwidth HD (High Definition). It’s quality and scalability that Silverlight highlights with its in-built ability to switch on-the-fly between on-page and full-screen playback.
Silverlight’s video handling isn’t only radically better for the end user but for the author too. This is immediately apparent in the copy of Expression Media Encoder included in the Expression Studio which offers a much more polished and powerful encoding environment than Adobe’s equivalent along with the option of a 15x speed boost through hardware-assisted encoding. Moreover, unlike the dead-end of FLV, Silverlight’s VC-1 based WMV files can be played back via Windows Media Player, Xbox 360 and all HD-DVD and Blu-ray DVD players and can also be used directly in further editing workflows. Most importantly, for sites built around video handling, Silverlight offers in-built Digital Rights Management (DRM), the ability to easily add overlays and insert advertising and a dramatically lower cost for video streaming. For more occasional use, progressive download is simple to set up and Microsoft is even offering up to 4GB of free streaming-based hosting up to a maximum of one million minutes a month.
Microsoft has decided that video handling is Flash’s weakpoint and its key to driving player penetration, but does Silverlight have its own Achilles heel? That’s certainly the word being put around by Adobe and its supporters and it strikes right to the heart of the technology. While Flash SWF files are single, compiled binary files designed for the sole purpose of web-efficient streaming, Silverlight XAML is an inefficient XML-based text format accompanied by multiple media and script files that all need to be downloaded, assembled, parsed and rendered on the client. If this process takes more than a few seconds the accepted wisdom is that the end user will simply move on. This could literally prove a show stopper for Silverlight.

The question of efficient delivery is certainly a major issue and will need to be taken into account when Silverlight applications are designed. However some of the concern is misguided and some is scaremongering. Yes Silverlight projects involve multiple files and XAML is text-based but Silverlight provides the option of an elegant zip-based compression and downloading system that simultaneously solves the worst of both problems. And while the need for client-side processing does mean that available bandwidth and system performance are important to Silverlight, both these factors have moved on radically in the decade since Flash was devised - and are only going to improve in future, especially so as Silverlight has been optimized for multi-core CPUs.
Silverlight’s fundamentally text-based nature certainly has its downsides but it also offers advantages that should more than compensate. Crucially, unlike the closed, binary black box of a Flash SWF, XAML’s XML is open and easily readable. This means that the end user will be able to see how Silverlight projects are built and adapt them to their own use, a capability which was one of the major driving forces in the take-up of HTML. More importantly, the XAML code is machine-readable. Flash’s greatest weakness is the fact that its content is closed to Google and the other search engines so depriving Flash-heavy sites of the greatest source of traffic. With XAML this shouldn’t be a problem.
Silverlight’s text-based nature doesn’t just make it easy to read, it makes it simple to write as shown by the number of third-party XAML authoring packages and converters already available. Perhaps even more importantly, XAML is easy to edit. If you want to change a colour in a Flash SWF you have to open its associated FLA file, laboriously dig through all layers and symbols to find the place where you can manually apply the formatting change and then republish – it’s an inefficient bottleneck and a major disincentive to fine-tuning a project once it’s up and running. To do the same in a Silverlight project you’d just load the XAML, edit the text and save.
XAML’s markup nature also makes it a natural partner to HTML and means that it can be integrated directly into the web page whenever the designer wants to move beyond the design capabilities of CSS. To do this the XAML code isn’t simply included in the HTML stream as was the case with SVG, instead you need to add some core script files and then create a control that links to an external XAML file. It’s slightly awkward to begin with but clearly keeping the XAML separate offers CSS-style benefits of efficiency and consistency and it will soon become second nature, especially with the next release of Expression Web which will no doubt add extensive XAML support and so add some extraordinary design power to the web page creation process. Even better, XAML’s markup nature means that it will be possible to use ASP.NET or indeed PHP to automatically generate advanced design components such as customised navigation bars and share price charts to include alongside the page’s generated HTML.
This integration between Silverlight and its hosting web page goes even deeper. Where Flash web page components currently act as embedded standalones, Silverlight extends the HTML Document Object Model (DOM) with its own Silverlight Object Model (SOM) so allowing both HTML and XAML objects to fully interact with each under the control of the hosting browser’s JavaScript implementation. This is hugely significant as it blurs the distinction between browser and player enabling the HTML/XAML web page to become a fully integrated whole. However while relying on the hosting browser’s JavaScript handling for managing interactivity and integrating XAML and HTML makes sense, it’s far too slow and underpowered to act as the logic control of a true RIA. Silverlight 1.0 is effectively brain-dead and concentrates on design and media handling for good reason – that’s really all it’s good for.

Silverlight 1.1 will enable advanced .NET control and execution and take RIAs to a new level
Silverlight 1.1 will enable advanced .NET control and execution and take RIAs to a new level

Silverlight 1.1

This looks like another potential show stopper, but Microsoft already has the solution in place as it again showed at MIX 07 with its launch of an alpha version of the next version of Silverlight. When Silverlight 1.1 is officially released, presumably in 2008, it will act as the third and most powerful phase of Microsoft’s assault on Flash. Key here is the addition of a cross-platform version of the .NET CLR (Common Language Runtime) providing features such as JIT compiling, automatic memory management and garbage collection and supporting a subset of the current .NET Framework class library. In addition Silverlight 1.1 will also include a new Dynamic Language Runtime (DLR) and ship with a set of rich UI controls.
So what does this actually mean? The implications are enormous. Through Silverlight 1.1 Microsoft’s army of existing developers will be able to move beyond the Windows desktop to produce advanced RIAs targeting the vast new market of the cross-platform Web. Crucially they will be able to do so using their existing Visual Studio and Expression Studio tools and their existing .NET language skills in VB.NET and especially C#. Thanks to the DLR the same will be true for developers wanting to use Ruby, Python, JavaScript and Microsoft’s own upcoming Dynamic VBx. And whichever language, or combination of languages, the programmer uses the Silverlight 1.1 CLR will offer code execution orders of magnitude faster than anything previously available – performance that Microsoft demonstrated at MIX 07 with an online chess application where the C# player was over 250 times faster than its interpreted JavaScript rival. In short, Silverlight 1.1 will graft a super brain onto version 1.0’s design-centred core.
By now the case for Microsoft’s RIA strategy is looking compelling. With the next releases of its Expression Studio and Visual Studio suites Microsoft will provide state-of-the-art tools enabling both designer and programmer - ideally working together – to produce rich applications for both desktop and browser-based delivery. Most impressively, with its Silverlight technology it promises to enrich the HTML-based Web first with XAML-based rich presentation and then with .NET-based advanced logic. Best of all, and deeply ironic considering Microsoft’s reputation, Silverlight is a much more open solution than the closed binary black box that Flash provides: open for reading, writing, editing and generating; open to full integration with the browser’s HTML and JavaScript handling; and open to a much wider range of more powerful internal programming solutions.

On paper there’s no doubt that Silverlight’s combination of XAML and .NET provides a more modern, more powerful, more open and more attractive solution than Flash’s SWF and ActionScript. Add in Microsoft’s huge resources, its dominant position in terms of the most popular operating system and most popular browser, the huge army of developers that it commands and its absolute need to succeed and it would be unwise to bet against the company. Indeed, if Adobe did nothing to respond, there’s a real possibility that Flash could be quickly swept away as yesterday’s technology.
However there’s a huge difference between on paper and out in the real world. Flash is a mature and established technology with near total cross-platform support while Silverlight isn’t even out of beta and must build its platform from scratch. Moreover critics will be circling and any problems with issues such as latency, security, missing .NET functionality or cross-platform performance could prove fatal. And Silverlight needs to succeed brilliantly or it doesn’t succeed at all. It’s the old Catch-22: the average designer won’t want to use Silverlight until its near-universal and it won’t become near-universal until enough designers use it. And Microsoft has an especial mountain to climb of its own making. Silverlight stands or falls by its cross-platform credentials and that requires winning over Mac users. Based on past experience, and immediate reactions, that’s going to be a very hard sell.
In the meantime, as we saw last month, Adobe is certainly not standing idly by. The list of recent and impending changes to Flash is comprehensive: the introduction of the MXML presentational markup language and the developer-friendly Flex Builder authoring package; the shift to the more powerful ActionScript 3 programming language and its associated new Virtual Machine (AVM2); better integration with the hosting page through improved DOM and JavaScript support; the increasing collaboration with Mozilla and the open sourcing of Flex; the move to out-of-browser desktop application delivery via the new Apollo runtime; and the integration of DRM and the release of the Adobe Media Player to make better use of FLV’s popularity. It’s clear that each new capability is a direct response to the threats posed by Microsoft and mean that, by the time that Silverlight 1.1 is ready to do battle, the Flash that it faces will be stronger than ever.
It’s far too early then to pick the likely winner and loser. More to the point this really isn’t a sensible question. Yes, this is an all-out war with Adobe and Microsoft directly pitching their tools and technologies against each other, matching each other blow for blow and with each determined to seize as much territory as possible. Crucially however it’s unlikely to be a war to the death. Unlike the operating system, office suite and browser wars, this is a war about competing players which means there’s nothing to stop end users using both – and of course this is by far the most likely scenario.
The good news for Microsoft and Adobe is that this is a war in which both parties can and should win. Moreover, with the vast and ever-increasing prize of the combined desktop and web space to play for, there’s more than enough territory to keep both camps happy and thriving. This in turn is great news for designers and designer-developers. Especially so as they will now have two well-matched and powerful solutions to choose between along with some serious competition to ensure that it stays that way. Ultimately the biggest winner of all should be the end user who, having installed Microsoft’s and Adobe’s latest runtimes, will be blithely unaware of the role they play but will benefit from richer, more integrated, more engaging computing experiences across both desktop and browser.

PostScript: Rich, Reach… Retch: The design rich platforms that Flash, WPF and Silverlight provide will undoubtedly raise the bar when it comes to the best end user experience possible on the computer. Good design will get better – but bad design is about to get a whole lot worse. It’s time to prepare yourself for an avalanche of flashy and entirely pointless multimedia extravaganzas. There’s relatively little that Adobe or Microsoft can do about it - but “Less is More” splash screens and a self-imposed ban on spherical videos would at least show willing.

Recommended Further Reading

Below is further reading on the subject, as recommended by amazon.com users.

Click here to find similar recommendations from amazon.co.uk

To search directly please use these links: amazon.com and amazon.co.uk




Tom ArahTom Arah is the webmaster of designer-info.com. He has been a professional designer working with computer software since 1987. He also offers training and consultancy and since 1997 has been the contributing editor covering design issues for PC Pro, the UK's biggest-selling (and best) computer monthly.

Home | Web Design | Publishing | Bitmap (Photo) | Vector Drawing | 3D
Site Info | Site Map | Search | Contact | Guestbook |

For older content (over 300 reviews and articles) please click here

To support the site please shop via these links: Amazon.com & Amazon.co.uk