Hi ho Silverlight
A good way to tell which way the wind is blowing in software development is to watch Microsoft: until recently, it’s been content to leave the client side of web applications to others. With Expression Web, it made a bid for the HTML authoring market previously monopolised by Adobe’s Dreamweaver, and now with Silverlight it’s trying to muscle in on the fledgling RIA (Rich Internet Application) sector. Adobe retaliated with a concerted effort to make Flash Player 9 the de facto client presentation technology, and it has a considerable head start given that Flash Player has been for many years. But, despite Flash’s ubiquity for online games and animations, it’s rarely used as a front-end for commercial web apps yet.
On the starting grid then are three main contenders: Silverlight, Flex 2 and Flash Professional 9. The latter two are from the same racing stable, but in many ways are quite different, and as regards production process and target audience Flex has more in common with Silverlight than it does with Flash. For a while, Java looked like a fourth contender, but it failed to break out of its technology niche (probably because of the heftiness of the Java runtime, although Sun’s JavaFX is worth keeping half an eye on).
Why is Microsoft suddenly so interested in this sector? Because, as Tom Arah discusses in his Digital Design column, rich interfaces will soon become a requirement for all web apps. And the key is the changing role of the browser. In a “traditional” web app, the browser is largely passive, displaying HTML that’s been dynamically generated by a server-side scripting language such as PHP. Interaction is limited, and submitting new information triggers a page refresh as the data is sent to the server and a new page generated reflecting the changes. RIA improves interaction by enabling server-side processing and presenting the results without needing a page refresh.
For example, say you’re creating a registration form for your website and require the user to select a unique user ID. Traditionally, you’d have the user complete a registration form and then, after they press Submit, check that username is unique. Using, say, Ajax it’s possible to have such a check take place as soon as the user tabs out of the username field, and for a message to appear within the same page if that ID is already taken. This may seem a small thing, but it results in a smoother response that feels more like a desktop application.
Such responsiveness can be achieved as easily with Ajax as Flash or Flex, but as users get more used to responsive web apps they’ll expect their online experience to feel like a desktop application, and this usability gap is what Flash, Flex and Silverlight are designed to address. Using PHP or ASP to generate new HTML pages on-the-fly makes creating a good-looking, effective interface a long and tedious job, since you’re essentially working blind, and there’s something inherently inefficient about using the same tool both to build the behind-the-scenes mechanism and to present the results. Flash-based apps have the advantage that, once invoked within a browser window, they do all the work without forcing the browser to refresh its display: data sending and fetching all take place invisibly to the user and the interface can be self-contained. Within the Flash object itself, you can create an experience similar to that of a desktop app.
In that case, you might expect Flash to be powering the majority of web apps, but that hasn’t happened – partly because Flash only became powerful enough to create sophisticated apps in the past couple of years, and partly because it’s only now that users are beginning to demand a better experience. Perhaps most important, though, is the fact that since its inception Flash has been seen as primarily a design and animation tool. Developers work in PHP, C#, Perl and Python and, while they may collaborate with people who use Flash, those people are likely to be graphic designers not programmers.