All products featured on WIRED are independently selected by our editors. However, we may receive compensation from retailers and/or from purchases of products through these links.
As multimedia-driven web application platforms go, Flash is king. Adobe's interactive presentation technology is used for everything from streaming video and audio to browser-based games and colorful mash-ups. But since Flash is a proprietary platform, developers need to know how to speak Flash's language in order to make it truly interactive.
It's this weakness that Microsoft is preying upon with its release of Silverlight. On the surface, the technology is basically Flash by another name -- it's a rich platform for presenting graphics, audio and video in the browser. Like Flash, it requires a browser plug-in to use. However, because Microsoft made key parts of its developer toolbox for Silverlight available under a shared-source license, programmers can conceivably code up a webapp for the platform using any programming language.
To show off a bit of what Silverlight can do, Microsoft has launched a little bit of a virtual playground in a webapp called Popfly.
Popfly, currently an invitation-only alpha, is an authoring tool that lets users build simple data mash-ups inside a cute, game-like interface. It's a bit like Pipes, the mash-up creation service Yahoo debuted in February. People were a little confused when Pipes came out, but Popfly is even simpler. Data services appear as floating cubes. You string the cubes together, tell them how to talk to each other and -- voil??? -- you've got a mash-up.
Eager to see what Silverlight is all about, I played with PopFly for a couple of hours. While it definitely benefits from its rich user experience and its creators' strong understanding of how non-developers approach common programming problems, I found it not quite as easy to use as I had hoped. I also encountered a few bugs with the Silverlight platform itself that indicate it has some toughening up to do if it's going to seriously challenge Flash.
The Page Editor -- MyPopFlySpace
You start out by building a page. Each Popfly user gets a dedicated folder for hosting projects. Users are encouraged to build public web pages to show off the mash-ups they create.
Popfly has a built-in page building tool that runs in the browser. It has the basic functionality one would expect from a simple WYSIWYG web page editor. You can format text, drop in images and drag page elements around on a blank template. For dressing up the page a little more, there are dozens of custom themes on offer. All of them utilize some cheesy-looking stock photography and rather garish color schemes, but (matters of taste aside) there are default themes for every interest. Themes for travel, computers, sports, business and health are all represented.
The Mashup Creator -- A Series of Cubes
To use Popfly's mashup creator, you first need to make sure you have the Silverlight beta installed. This is the rendering environment that will display Silverlight's rich media content. Think of how the Flash plug-in lets you view Flash content -- it's the same idea. The plug-in is a small download for Windows and Mac OS X users.
Once you've restarted your browser, you can start building mash-ups. The creation tool shows a list of "blocks" down the left side of the page, some of them created by Microsoft and some of them created and published by other Popfly users. Each block performs one basic data function. One grabs photos from Flickr, one loads Digg stories and another brings up a search dialog for the Seattle Public Library. There are a few dozen to choose from.
To build mash-ups using different services, you just drag blocks from the list onto the workspace in the middle of the screen. Each block has parameters you can set. For example, you can tell the Digg block to pull in 15 headlines or 5, or tell it to display upcoming stories rather than top stories. Each block's settings are dependent on the flexibility of its service's API.
Everything is drag-and-drop, and the visual programming interface is so simple to use, it feels like a video game. To pass data from one block to another, you connect the two of them by drawing a line between them with your mouse. Then you set up the second block by telling it how to handle the data you're passing to it.
This is where I got stuck. Some of the data handlers -- all of which are accessible via drop-down menus in the blocks -- had me scratching my head. My confusion probably stems from the fact that the data services I was trying to mash didn't have parameters that matched easily. A developer familiar with APIs could figure some of them out, but Popfly is supposed to be a tool that's accessible to non-developers. The Popfly team does provide some tutorials that walk you through the mash-up creation process, but at first hack, the experience is intimidating.
After some trial and error, I succeeded in generating a three-block mash-up. I took a feed of Digg's top stories, pulled out the story title and number of diggs, then plotted the number of diggs on a speedometer-type widget using a block called "Gauge." Feeling quite pleased, I spent a few minutes watching the needle jump up and down as the top stories rolled in.
I used a couple of the simpler blocks in the system to dress up my profile page. I grabbed an RSS news feed for Craigslist's listings of bikes for sale and put it into a reader widget. I took another feed for all of my images on Flickr tagged with "bike" and put them into a scrolling display frame. In the end, I had a very simple, dynamic page that took about five minutes to build.
Silverlight Is A Little Too Light
During my experimentation with Popfly, my browser crashed several times. I experienced three crashes while navigating the Popfly mash-up creator, one while viewing a demo mash-up, and one while loading Popfly's built-in "Wack-a-Mole" game. Since all of these parts of the site utilize Silverlight's animation engine, I can only guess that it was the Silverlight plug-in that was causing these problems with my browser.
Aside from that instability, I also found that Silverlight has some latency issues. The interface for the mash-up builder, with all of its sliding menus and zoomable elements, felt slow and sluggish -- noticeably slower than an equally heavy Flash UI. My mouse pointer jerked around to keep up with the movement of my hand at times. Popfly is supposed to be a playground for showing off Silverlight's might, but I found the experience flawed. You could chalk it up to either my 1.5-year-old hardware or the platform's youth, but it's my assessment that Silverlight could benefit from some performance optimization.
As a web app platform, Silverlight offers a user experience that is nearly indistinguishable from Flash. Slower and a little less stable, but basically the same: 3-D graphic elements you can click on and drag around. If Microsoft is going to gain any ground on Flash's dominance, it will have to bring something truly stunning to the table in the near future.
Silverlight supposedly has some robust streaming video capability using the patented VC-1 codec, but it's not on display here. And the mash-up creator is relatively easy to use and shows off some of Silverlight's interactive mojo. But really, it's just a start.
*Note: For these tests, I used a Dual-G5 PowerPC with 1GB of RAM running Firefox. I still have yet to test Silverlight's stability or speed on my quad-core Intel Xeon Mac Pro, but I'll update this post with my results once I do. UPDATE: Silverlight saw some substantial speed improvements on the dual Xeon Mac Pro machine. Though there were still a few sluggish moments, the experience was much faster. I still encountered three crashes inside of 15 minutes, however, leaving the stability issues mentioned above unresolved.
*