I returned home from the Microsoft MIX06 conference in Las Vegas last Thursday (I meant to blog sooner, but I’ve been busy catching up after the trip). It was a good chance to take a look at what Microsoft is working on with Sparkle and their other interactive media (“Expression”) tools. It was also a great chance to hang out in Vegas (and play a lot of Halo) with friends from the Flash world.
A quick thanks to Lynda.com and Microsoft for getting everyone together, and exposing us to the new products. Thanks to Adobe for giving us somewhere to hang out in Vegas, and hooking up the XBoxes. Fragging Mike C, Mike D, Guy, Aral, Chafic, Erik, Beau, Danny, Hoss et al was a lot of fun. Coming in second in the Halo 2 tournament was even better – the final game with Guy was a real adrenaline rush!
Here’s my quick rundown on the products MS showed, my apologies if any of this is factually incorrect, I’m just going from my hasty notes and memories:
I think competition is a good thing. My one ongoing concern with the Adobe acquisition of Macomedia was that it would remove all (realistic) competition from the marketplace, and lead to a slow down in innovation. Microsoft looks ready to step right into the void and apply pressure to keep Adobe on its toes. That said, the new MS suite of products is generation one, and I honestly don’t see any real competition to Flash in this release.
Generally, the Expression products looked fairly well assembled for first generation software. This was without using them personally, or seeing any complex tasks carried out. I got a loose sense complex tasks might require some arcane UI knowledge. In fact, one MS presenter basically said that the UI was non-standard, but that designers could figure it out because we were power users. There were also some comments on stability problems with the current builds, but that is to be expected in alpha software.
One thing that I found interesting (if I read it right) is that MS is dividing the current 2 discipline workflow for interactive production into 3 disciplines. Instead of the current model with designers and developers, they are proposing a model with graphic designers sending aesthetic design to interactive designers who would generate UI interaction (layout logic, button / UI states, data binding) that could be passed on to a developer who would code business logic. It looked like a somewhat well managed process, but there wasn’t a lot shown on this process would work in reverse for design revisions and such. It got me thinking though that the Flash world could (and sometimes does) use a similar model using Illustrator (or Flash or Photoshop or Fireworks or etc) for design, Flex for layout and data binding, and AS for business logic. In the Microsoft world, the tools would be Expression Graphic Designer, Expression Interactive Designer and Visual Studio respectively.
Expression Graphic Designer
I didn’t see a lot of details on this product, but it looked like a young version of Fireworks. It handles both bitmap and vector art, and provides a path for passing the assets on to Expression Interactive Designer as a library of assets plus XAML. As Mr. Gump would say: That’s all I have to say about that.
Expression Interactive Designer
This was the product I was most interested in, as it has the closest resemblance to the Flash IDE. At first glance, it looked like After Effects and Visual Studio got dirty and and had a love child. Visual Studio style property inspector and data binding, After Effects timeline. Not innovative by any stretch, but it looks functional – very Microsoft.
There were definitely a few features here that I would love to see in Flash. For example, the property based timeline (AE style) would be beautiful, especially the “open” timelines that let you tween without specifying an initial keyframe (so you can tween between any two states without having to define every transition manually). They also had an interesting system where you could visually edit instances of templates (essentially movieclips), and still maintain the integrity of the template (for instance, you could add an icon into an instance of a button in the IDE without creating a new symbol in the library). Another little feature I liked was the ability to right-click anywhere on the stage and get a list of all of the clips under the cursor – selecting one let you jump to that timeline (similar to Photoshop).
Again, this looked like a decent 1.0 product, but I came away with the sense that doing real work could get convoluted. Hopefully this product prompts Adobe to put more work into the Flash IDE – the poor thing has been stagnating for the last couple of releases.
Of interest, all of the components will be baked into the player. I find this interesting for a few reasons:
Filesize – it’ll be interesting to see how they fit a full set of components, plus the runtime into a 2MB package. I’d say it’s possible, given that the Flash components are < 300kb in total, and the Flash runtime has a fair amount of bulk for legacy support (old versions), but this is Microsoft.
Extensibility – one MS rep specified that you would only be able to extend a limited subset of the components. He even suggested that you may only be able to extend a base UIObject class, but that the baked in components would be inviolate. This would be a huge issue for me as a developer.
Updateability – how do you fix component bugs? Do you need to release a new player every time someone finds a new bug in DataGrid?
This version looks more like an attempt to prevent MS shops from using Flash, versus an attempt to win new business. I can definitely see MS shops using WPF/E as an excuse to not deploy Flash. Again, I can’t see this generation of it being a genuine threat to Flash as a platform, but it should ensure that Adobe continues the great work they’ve done with fp8 and 8.5 in the future.
Expression Web Designer
I don’t do much work with HTML these days, but I think this is the product Adobe will really want to keep an eye on. Even in the first generation, it has some nice tools for working with CSS that I haven’t seen in DreamWeaver or GoLive. It enters the market with a potential advantage – it’s built from scratch to only work with CSS / XHTML standard sites, so it doesn’t have the clutter or mess from legacy support that other tools have to contend with. This also poses some problems, you can’t easily use it to edit legacy sites and the markup it generates might not render properly on anything but the absolute newest browsers (and possibly not even in them).
Of interest, it uses its own proprietary xhtml/css rendering engine that is (supposedly) completely standards compliant. This engine is not shared in any way with IE. I find it odd that MS has built a fully standards compliant rendering engine for this tool, but can’t get one into IE7. This also potentially means that sites you create in Web Designer might render fine in the tool, but not in MS’s own browser.
In summary, generation one of these tools look functional and have a lot of promise, but they aren’t particularly innovative. Flash will remain the best solution for cross-platform, cross-device, web-deployed rich content for the foreseeable future. Microsoft does have a lot of money to throw around, and they seem genuinely interested in the space, so Adobe will have to keep innovating to stay ahead in the game, but I have every confidence they will be able to do so. Ultimately, this heightened competition will benefit us all with better tools and richer features.
There’s more I’d like to type about (like Vista), but this is getting pretty long. I’d be interested to hear other people’s thoughts on these tools, and the future of Flash / WPF/E in general.