Dare is pondering what comes after Ajax, in response to Ted's Adobe Wants to be the Microsoft of the Web.
On Flash Ted says:
What is not appealing is going back to a technology which is single sourced and controlled by a single vendor. If web applications liberated us from the domination of a single company on the desktop, why would we be eager to be dominated by a different company on the web? Yet, this is what Adobe would have us do, as would the many who are (understandably, along some dimensions, anyway) excited about Flex? Read Anne Zelenka’s post on Open Flash if you don’t think that Flash has an openness problem. I’m not eager to go from being beholden to Microsoft to being beholden to Adobe.
And later touches on OpenLaszlo, but OpenLaszlo is a server-side engine used to generate Flash, so the runtime remains the same (Yes, I know that Laszlo can now generate DHTML, but Ted's point was that Javascript was too slow for large apps running on a browser).
Dare wants to add WPF/E to the list of web development technologies, and argues:
Ted Leung mentions two contenders for the throne; Flash/Flex and OpenLaszlo. I'll add a third entry to that list, Windows Presention Foundation/Everywhere (WPF/E). Before discussing what it will take for one of these contenders to displace AJAX, I should point out that being "open" has nothing to do with it. Openness is not a recipe for success when it comes to development platforms. According to TIOBE Java is the most popular programming language today and it was a proprietary language tightly controlled by Sun Microsystems. Before that, it was commonly stated that Visual Basic was the most popular programming language and it was a proprietary language controlled by Microsoft. I believe these count as existence proofs that a popular development platform can rise to the top while being controlled by a single vendor.
WPF/E has a number of challenges ahead of it: Flash-based development environments are very advanced both for designers and developers and are going through their Nth iteration, while WPF/E is not even officially launched.
WPF/E is currently limited to Windows and the Mac, which you could argue makes up the majority of the platforms, but Flash works today on Linux and various embedded systems and portable systems.
But like Flash, it is another proprietary tool, and the whole point of Anne Zelenka's post and Ted's comment. He wanted something that did not lock him into a vendor.
WPF/E best feature is probably the fact that generating XAML files is trivial and requires no special tools or compilers. echo, cat and perl will generate XAML output right away. A bonus feature would be deserialization from a JSON structure in addition to XML.
WPF/E feels more webby than Flash does.
Then again, Flash could add support for hydrating elements from an xml or json sources as well.
Unlike its "big brother", WPF, the WPF/E is framework looks fairly simple so far. The subset of WPF is reasonable, it is sufficiently opaque that a developer with a lot of spare time in its hands could implement it fairly rapidly.
A major drawback seems to be the use of WMV as a video format. If there is one thing that the video industry has learned is that WMV and MOV do not work. They barely work on their native platforms, they are ridden with glitches, upgrades sometimes break and of course they do not work on Linux.
Ignoring the WMV file format support, WPF/E has so few external dependencies today, that someone looking for a cool use for Antigrain could implement a prototype in a few weeks and get a community going in no time to finish it up (Alp has been showing around his record-time XPS renderer and viewer around).
Flash has really succeeded in the area of working out of the box, even on the Linux desktop the experience is outstanding (the proprietary Flash).
The best possible outcome for the world would be to follow Sun's path in open sourcing Java and open source both Flash and WPF/E.
Adobe is not making any money on the Flash player today on the desktop. On the mobile space the story is different, they could probably license Flash under terms that required mobile vendors to get a proprietary license (I imagine they could look into what Sun did with their mobile runtime, which would be a similar situation).
Microsoft is not going to be making any money on the WPF/E player either, and since they are limited to Windows and MacOS X (today) they are not going to be making any money on that one either.
If Microsoft is serious about WPF/E, open sourcing it would eliminate the doubts about WPF/E's future and the fact that some people perceive WPF/E to be a slippery slope to a full blown WPF use and tie-in (in my opinion, it is more of a rocky slope to move a WPF/E app to a WPF one).
But I think that Dare gets this wrong:
Before discussing what it will take for one of these contenders to displace AJAX, I should point out that being "open" has nothing to do with it. Openness is not a recipe for success when it comes to development platforms. According to TIOBE Java is the most popular programming language today and it was a proprietary language tightly controlled by Sun Microsystems.
Even if Java was tightly controlled by Sun in the past, they did have a mechanism that was open enough to get third party companies involved in the future of Java.
Anyone could argue that the JSR process has managed to mess up key components like Generics and has inflicted humanity with mistakes like the J2EE stack.
But the JSR process is still relatively open. And even before Sun open sourced Java in November there were a number of independent Java VM vendors, both open source and proprietary (specially on the embedded market).
Java became successful because it filled a space that was previously not properly serviced. At the time it hit a sweet spot.
In the meantime, as far as Rich Internet Application development goes, we will continue to use a mix of technologies. It seems that the browser is becoming the universal runtime and it has opened the doors for incredible opportunities with the mashups. WPF/E is ready to enter the mashup scene, something that am not sure WPF will ever do.
Update: Ted follows up.
Posted on 06 Mar 2007