
Microsoft Expression "Sparkle Interactive Designer" is a new Microsoft product for building Avalon ("Windows Presentation Foundation" or WPF) user interfaces.
Dubbed a "Flash killer" by some, this product combines sophisticated animation features with the ability to create rich user interfaces. It was designed from the outset to be an authoring tool for professional designers to build the next generation of user interfaces for the Windows platform.
Backed by the .NET runtime and WPF, this tool will certainly have a lasting impact. Today there is nothing like it in the FireFox/CSS/XHTML Open Source universe, which has so far not created a RichUI (i.e. 2D+3D+video+text) authoring/runtime combination. Microsoft Sparkle may provide the incentive necessary to ignite an open source RichUI effort, but any such codebase will be a long time coming.
Macromedia Flash, in my opinion, is becoming less of a significant player as developers shift from Flash to using DHTML and "Ajax" to create applications like GMail and Google Maps. Today many developers view Flash as a tool best suited for web video and advertising, and not for the "heavy lifting" required in substantial applications. I see this trend continuing, unless Adope significantly enhances Flash, e.g. with 3D, more audio and video formats, access to native code, a revised security model, more sophisticated text, faster script execution speed, and an open runtime of the breadth and richness of .NET.
Watching this video, its clear that Sparkle will go significantly beyond what is possible with Ajax or Flash, though it will take a while before the software necessary to run Sparkle apps reaches the marketplace (Windows Vista will not ship until late 2006). Microsoft is planning their largest marketing push ever for Windows Vista, so the number of people able to run Sparkle apps will explode in 2007.
One open question is whether Ajax is "just good enough" to hold off Microsoft's Sparkle/WPF. Modern Ajax web applications built using HTML and CSS are very attractive and easy to use (e.g. see this slideshow), and run on almost any platform. Will designers and developers perceive the added advantages of the Vista/Sparkle combination worthwhile, considering that adopting Sparkle will inevitably lock people into the Microsoft platform? Given the strength of Microsoft's marketing machine, I think the answer will be yes. Then again, I'm typing this message in a HTML web form, and not on Microsoft Word... a convincing example of ubiquity trumping richness.
Microsoft clearly sees the ubiquity of Ajax as a possible threat, because at the same time as announcing Sparkle, they also announced a Atlas, an Ajax framework for ASP.Net. During their PDC keynote, they even demonstrated an Atlas application running on a Mac with OS/X - surely the first time Microsoft has ever showcased an Apple during a keynote, and a sign of the importance they place on the concept of ubiquity.
One wildcard in terms of ubiquity is whether anyone will port WPF to Mono, the Open Source alternative to .Net. If that happens, Sparkle apps might run on other platforms than Microsoft Windows (its unclear how Microsoft would respond to such a move).
Finally, in terms of reach, so far no one has said whether Sparkle will generate apps that run under WPF/E, a smaller-footprint version of Avalon/XAML that should run on Microsoft's mobile devices. My guess is that the initial focus will be on deploying to XP and Vista apps, with WPF/E apps coming a release or two later.
I worked on the Sparkle team as a Program Manager in 2002-2003, for just over a year. I'm looking forward to trying it out.
Congratulations Sparkle team!
[Go to my later Sparkle post, or my PDC 2005 keynote comments.].
Daniel | September 15, 2005 10:10 AM
"Macromedia Flash, in my opinion, is becoming less of a significant player as developers shift from Flash to using DHTML and "Ajax" to create applications like GMail and Google Maps".
Funny how you assume that the developers working with Flash are now moving to Ajax. Since when?
jonmeyer | September 15, 2005 10:56 AM
Hi Daniel,
See here for just one example.
mike | September 15, 2005 11:17 AM
The switch to DHTML by Flickr was a step backwards imho.. shutterbook http://www.shutterbook.com/ is a much more engaging interface.
And you're assuming that everyone is going to follow Microsoft blindly into the Vista. I hope to be moved totally away from Microsoft O/Ses before Vista ships, I'm not alone, and I'm encouraging my non-tech friends to not move to Vista.
Jeremy | September 15, 2005 01:32 PM
AJAX is simply a buzz word. It's nothing new - and it's not overall as accessable to the masses to create "cool" "artistic" "fun things" - Flash is simply viral and that's why it was able to do as well as it did.
James | September 15, 2005 04:00 PM
---
"Macromedia Flash, in my opinion, is becoming less of a significant player as developers shift from Flash to using DHTML and "Ajax" to create applications like GMail and Google Maps."
Do you have data or is this your gut feeling? Because I have yet to meet a flash programmer that gaped wondered how they could make rich apps like Google Maps (GMail is the nicest webmail client I've seen, but isn't an extraordinary step).
Flickr as you linked to had a preappointed DHTML dev, not a Flash guru who converted.
----
"Today many developers view Flash as a tool best suited for web video and advertising, and not for the "heavy lifting" required in substantial applications."
I agree entirely, and as any executive will agree video is the future of user experience. I hope that more programmers/developers will research Flash's powerful scripting language in order to clear up this idea that Flash can't be part if not all of a robust enterprise RIA. (take a look at MacroMedia Flex to see possibilities)
---
"I see this trend continuing, unless Adope significantly enhances Flash, e.g. with 3D, more audio and video formats, access to native code, a revised security model, more sophisticated text, faster script execution speed, and an open runtime of the breadth and richness of .NET."
Haven't you heard of swift 3D or used a 3D modelling tool such as Alias Maya which exports to swf format?
Which av formats would you like to see added?
What native code would you like access to?
What security enhancements would you suggest?
What improvements to text do you recommend?
How slow is the computer you're compiling on? ;)
And why compare .NET to Flash?
Kevin Goldsmith | September 15, 2005 06:32 PM
Wow, you basically outline the ways that MSFT will absolutely fail with Sparkle while trying to show how it will succeed. Sparkle will succeed as a presentation format on the web IF it achieves the ubiquity of flash. In order to achieve that ubiquity, MSFT has to make some concessions that the rest of world isn't running the latest versions of MSFT software. That is completely contradictory to Microsoft's "Better Together" mentality. I don't see a Windows 98 version of sparkle any time soon, nor do I see a linux version. I think that MSFT hopes that Sparkle will drive Windows sales and not the other way around. While I think that Sparkle might have a future as a cute way of authoring interesting Vista-only apps, I can't see if ever becoming a serious web presentation format.
Sam Wan | September 15, 2005 10:30 PM
James, you ask some interesting questions... I have some questions too:
Does the Flash player support interactive 3d, with bitmap texturing, dynamic lighting, and mesh geometries? Would I get that support if I exported a swf movie from Swift3D or an Maya plugin exporter?
Which av formats are supported in Flash aside from the Sorenson and On2 codecs? Can I take a free codec like DivX and plug it into the Flash player like I can with Real Player or Windows Media Player?
How do use native code in Flash to talk to a device driver, such as a bluetooth connection to my phone, or a laser printer over USB?
How do I write a Flash application that can read/write documents to my hard drive while making sure that the Flash security model respects the user permissions of the operating system?
If you were a software developer trying to do these things, would you want to evaluate different runtimes to see which one answers your needs in the most appropriate way?
James | September 16, 2005 01:26 AM
I guess I have to earn answers to my questions... hmm. :)
No, Flash player doesn't support dynamic support for interactive 3D, dynamic lighting, geometry, texturing. But, you would get some or all of those features if you used a third party tool like I suggested. But nowhere has MicroSoft shown examples of those features in Sparkle, they have simply stated 3D support and support for 3D content. One part of the videos showed a tool to alter the lighting cast on a pseudo 3D object but that's about it. If I'm mistaken, please link to MicroSoft's proposed 3D modelling and rendering environment/api.
I agree that the ability to add other video formats to a flash movie would be a welcome feature. I believe that the player's small and portable size might be compromised but it might be worth it.
And this is where I see a flaw in your supposition. Flash isn't made for conventional desktop software publishing. And that is why my last question was "And why compare .NET to Flash?" You're not comparing apples to apples. But, to answer your question, Flash can communicate to your phone and can communicate to your laser printer *BUT* only within it's sandbox. So I do understand what you mean by native code but again, you're looking at Flash as a traditional desktop software app. It isn't. And Sparkle won't be either, but MicroSoft has opened holes to allow it to communicate with .NET and VB apparently. So, as others have done, I could place a flash executable inside of another C program and do the same...
Research that security subject a little more as I'm sure the docs on Macromedia's site can enlighten you better than any statement of mine.
Again, your comparing apples to oranges. Who gave you the impression that Flash was in the same playground with .NET, C, Java, etc. The Flash platform is _very_ versitle but even MicroSoft's attempt at RIA authoring will rely on other languages as they've stated.
And you can answer my questions at your leisure.
Michael | September 16, 2005 02:48 AM
I finally watched the hour long video of some of the sparkle team demoing the app. I'm sold.
I already use Anark Studio 3.5 and Director MX 2004. Sparkle looks like the best of those two apps and then way beyond. It is not a "Flash Killer" to me. It is a "Director Killer" and most definitely an "Anark Studio Killer".
My biggest issue with Anark is that the plugins from the 3D apps didn't work well. Bringing in models from 3DS Max were fine. But from Cinema 4D and LightWave did not turn out well all the time.
I think the biggest snaffu will be dealing with the multitude of 3D objects from all the apps. Heck even Nextlimit (Real Flow) has to create custom plugins for all the 3D apps out there and it itself is a 3D app.
Michael
James | September 16, 2005 10:04 AM
That's iteresting Michael. I hadn't even thought of Director and Anark, but chances are that they'll have a harder time competing with Sparkle than Flash. MM/Adobe and Anark have they're work cut out for them.
Jason Nussbaum | September 16, 2005 10:37 AM
"But nowhere has MicroSoft shown examples of those features in Sparkle, they have simply stated 3D support and support for 3D content. One part of the videos showed a tool to alter the lighting cast on a pseudo 3D object but that's about it. If I'm mistaken, please link to MicroSoft's proposed 3D modelling and rendering environment/api."
DirectX, Direct3d, and their managed API's through the .NET Framework would be my guess...I can't see any reason why you wouldn't have access to all of that through Sparkle/Expression, as you have access to it through .NET, and Sparkle is built on .NET (if I'm not mistaken...).
James | September 16, 2005 04:31 PM
I honestly don't know, but from the videos, that heavier programming would be done in .NET but not in Sparkle.
It just doesn't seem plausible that they would develop a GUI 3D app (GUI because that's what their target user is accustommed) and attach that to an already new product line.
Hans | September 16, 2005 08:14 PM
Sam, I was more excited about Sparkle/WPF before I read your comment.
As you of all people should know, the beauty of Flash is in its simplicity. There's nothing simple about advanced 3D capabilities, having to deal with unlimited codecs, worrying about native code (and certainly not device drivers!), or having to even think about the OS security model. It appears you've become quite a bit more sophisticated since you joined MS.
My prediction from a UX perspective is that Sparkle/WPF will lead to designer/developers building apps that are the 21st century equivalent of the <BLINK> tag. Lots of sizzle, little substance. Yuck.
Sam Wan | September 17, 2005 04:25 PM
Hans, I'm sorry that my comments dampened your excitement. Yes, I of all people should know the beauty of Flash is in its simplicity. There are just a lot of things I'd like to do with computers beyond what I've done in the past. And you're right about tag happening again with 3D. Useful 3D might not hit mainstream until someone does with 3D what Yugo Nakamura did with two-frame loops, and what Branden Hall did with Actionscript. Remember how briefly "99% Bad" lasted? :) (http://www.useit.com/alertbox/20001029.html)
James, I found the links you asked for...
http://msdn.microsoft.com/windowsvista/building/presentation/default.aspx
http://windowssdk.msdn.microsoft.com/library/default.asp?url=/library/en-us/wcp_conceptual/html/9fc98843-1dc0-4e65-a33d-9a19b1b46f25.asp
It looks like they're still uploading documentation for the 3d API, but the tutorials cover a lot of it. Remember, this stuff talks about the code API that you would use via a code editor. The design tool's documentation isn't public yet.
Woody | September 18, 2005 02:45 AM
People fear change and are tool bigots. This should be good news to any designer. You are now a "First Class Citizen" in application development. Not lame little flash intros, but actual full-blown applications. Get off your kiss ass Macromedia attitude and open your mind ... this a good thing for designers. This means more work for designers.
John Dowdell | September 18, 2005 04:21 PM
Just noticed something interesting on a re-read of that "simplicity" discussion between Hans and Sam... the tasks mentioned are supply-side tasks, costs that you'd have to pay during production. Development costs.
But those are costs people choose. There are other costs which people cannot choose. These tend to be distribution-side costs: how much someone must pay (in hassle, money, commitment, learning) to use your work. Consumer costs.
Consumer costs determine whether a project is practical. After that, development costs determine the best fit between tool and task.
If you think of the Flash Platform as a services layer across various brands of the world's devices, then the key to its usefulness is that it costs very little complexity for the *audience*... it fits inside their current browser, current machine, baked in the phone, doesn't change their daily UI.
We shouldn't be talking about just our choices... we've got to be thinking about the choices we impose on others as well. Does this sound right to you too...?
jd/mm
Sam Wan | September 19, 2005 03:25 PM
Hi JD,
Yes, that sounds right. Computers with browsers often have Flash plugins too. If you were to order airplane tickets or buy books online, you would go through a web page served by an HTML framework like PHP or ASP.Net. Some very sophisticated web pages might provide a Flash UI that talks to a server over Macromedia's own RTMP protocol. I think you make a good point that the costs of distributing these web services through a browser are lower for Flash than for WPF.
There is an even cheaper web platform that doesn't have distribution costs, because it *is* the web... also known as HTML. HTML user interfaces are found on computers, phones, Linksys routers, even the PSP console.
As far as I'm aware, WPF (code-name Avalon) does not try to replace the HTML web browser, so it does not face the same challenges as Flash. It is a UI framework for software applications that install on your local computer. You could write instant messaging or email software that talk over the internet, but these applications wouldn't always run inside a browser like Flash. Flash and WCP serve different needs, so in that sense, you are right that the distribution costs are different.
Jon, let me know if I am imposing on your blog, we can take it outside :-) [JM: Sam - you could never impose!]
Jeff Gilbert | September 27, 2005 04:20 PM
My lowly thoughts here... I think the bulk of this argument about the viability/relevance of Sparkle/XAML is based on the current-day paradigm of web vs. desktop presentation technologies.
There won't/shouldn't/can't be a distinction as to where the content lies in the not-too-distant future. While I understand that Microsoft didn't exactly invent the concept, they sure are the ones executing on it and, for the first time, developers/content creators/designers have a consistent mechanism to deliver content (whether it be advertising, information, or data) to the user no matter the transport or source location.
Sparkle/XAML will kill AJAX, Flash, HTML, and the rest, simply because *Windows* is ubiquitous and the new paradigm for Windows is a consistent platform for user interface development. As long as the platform doesn't suck badly, it will succeed.
We need to get the word "browser" out of our heads and begin to focus solely on content and transport and which limitations a particular transport will place on the content. The content we develop must be able to be delivered remotely or locally, the tools used to do so must be consistent, and the user experience as to how to access this content must be consistent as well.
The browswer will die. Perhaps not immediately, or even in the next 5 years, but rest assured it will die. And those who have been honing their skills in delivering content using the New World interface paradigms will win.
Hans | September 30, 2005 04:31 PM
Jeff, I agree with you except for one critical point. Windows ubiquity is no longer relevant. Rather, functionality and content accessible on every possible device, Windows-based or otherwise, is the modus operandi of tomorrow.
Jeff Gilbert | October 7, 2005 06:53 PM
While this may be true in the future, it's going to take (IMO) the ubiquity of Windows to make it happen.
Without getting into the religious wars of open source and interop, I think it's safe to say that without some form of financial incentive the solutions available to use will only ever improve marginally. Innovate or die, right? Microsoft (and all others) will die if they do not find new ways of solving newly discovered problems.
If there is to be a competitor to Avalon it will be created by the hands of those who wish to make Microsoft irrelevant, or by those who believe that they can construct a solution without the liability of cost or association. And those who use it will do so for the same reasons. However, even if they may eventually succeed it is not those people who will make this a de facto, practical standard. It will be Microsoft and it's my bet that, purely through Windows' ubiquity, some form of onsolidated interface framework will become the new standard for *all forms* of user interface development (and that includes web-based applications) within the next 5 years. It may not end up being Avalon/XAML, but it will probably look a lot like it.
Patrick Whittingham | January 27, 2006 07:26 PM
I think Flex 2 will beat M$ for cost of the product, cost for hardware (PC). I've heard that one needs a 'super-fast' PC to create with this product. Is M$ still in bed with Intel. When are they going to say that bloat-ware is out. Oh, I forgot M$ and Intel are the same...:) I've seen some nice examples of Flex 2 and my DHTML/AJAX skills with prototype/mojo/script.aculo.us don't match the cross browser support of Flex 2. I want to create 'real' applications for my intranet / extranet customers who want ease of use and speed of their PC/MAC software inside the browser.
apple | March 4, 2006 01:03 PM
now flex with actionscript3 is free, just like java, but not that open source;