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 as an Open Platform?
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).
Dare on Java
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.
Ted's Update
Update: Ted follows
up.