March 6, 2007
@ 03:11 PM

I've been thinking about AJAX a lot recently. Between reviewing a book on the subject, reading some of the comments coming out of the Adobe Engage event and chatting with some coworkers at dinner about WPF/E I've had a lot of food for thought.

I'll start with an excerpt from Ted Leung's post entitled Adobe wants to be the Microsoft of the Web

The problem as I see it
I think that a lot (but not all) apps will become RIA’s, and the base platform technology for RIA’s is very important. Too important to be controlled, or designed by any single party. The current vogue toolchain, AJAX, has this property. It also has the property of being a cross platform development nightmare. On the desktop, you commit yourself to a single cross platform library/technology, and then you spend the rest of your time wrestling with it. In AJAX, you have multiple browsers on each platform that you want to support. Not only that, you have multiple versions of each browser.
Enter Flash/Flex. Flash has a great cross platform story. One runtime, any platform. Penetration of the Flash Player is basically the same as penetration of browsers capable of supporting big AJAX apps. There are nice development tools. This is highly appealing.

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?

Most people who've done significant AJAX development will admit that the development story is a mess. I personally don't mind the the Javascript language but I'm appalled that the most state of the art development process I've found is to use Emacs to edit my code, Firebug to debug in Firefox and attaching Visual Studio to the Internet Explorer processes to debug in IE. This seems like a joke when compared to developing Java apps in Eclipse or .NET applications in Visual Studio. Given how hypercompetitive the "Web 2.0" world is, I doubt that this state of affairs will last much longer. There is too much pressure on Web companies to improve their productivity and stand out in a world full of derivative YouTube/MySpace/Flickr knock offs. If one company finds a way to be more productive and/or build richer Web applications the rest of the industry will follow. This is pretty much what happened with Google and AJAX as well as with YouTube and Flash Video. Once those companies showed how much value they were getting from technologies which were once passe, everyone jumped on the bandwagon. This means that it is inevitable that Rich Internet Applications will eventually be built on a platform that provides a better development experience than AJAX does today. The only questions are how quickly will this happen and which technology will replace AJAX?

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. 

So what will it take for an RIA platform to displace the popularity of AJAX besides being able to build richer user interfaces?

  1. Ubiquity: Over 95% of the Web users are using an AJAX capable browser. Any replacement for AJAX must have similar penetration or it's dead in the water. No one wants to turn away customers especialy when it's competitors aren't doing anything that stupid. 

  2. Debug Once, Run Anywhere: The biggest problem with AJAX is that it isn't a single development platform. Being able to write an application and debug it once instead of having a different debugging and runtime experience for Internet Explorer, Firefox and Safari is the killer productivity enhancer. Of course, there will always be differences between environments but if we can move to a world where RIA development is more like cross-platform Java development as opposed to cross-platform C++ development (yes, I know that's an oxymoron) then we all win.

  3. Continuoum of Development Tools: I don't need expensive development tools to become an AJAX developer, however if I feel that I need heavy duty tooling I can buy Visual Studio 2005 then download ASP.NET AJAX to get a fancy integrated development environment. Any platform that expects to replace AJAX  needs to have a continuoum with high quality, free & Open Source tools on one end and expensive, proprietary and "rich" tools at the other. The Java world with it's culture of Open Source tools like Eclipse, JBoss and Hibernate coexisting with overpriced tools from big vendors like IBM WebSphere and BEA WebLogic is the best example of this to date. That way the hackers are happy and the suits are happy as well. 

So far Adobe seems closer than anyone in getting the trifecta. In a year or two, things might look different.


Categories: Web Development
Tracked by: [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback] [Pingback]

Tuesday, 06 March 2007 16:56:24 (GMT Standard Time, UTC+00:00)
Dare, can you please pin-point some of the reasons where you think WPF/E may change the game of Adobe/Flex dominance?

The problems I see are,

1. Development model: to develop for WPF/E you need an expensive VS. With Eclipse, you can develop Adobe/Flex for free. And Eclipse is more ubiquious than VS Express too. Will WPF/E development be easier (and hopefully better) than Adobe/Flex?

2. Existing user bases: the number of people using Flash is A LOT MORE than the people using WPF/E. It's like Windows on the desktop: once it's much easier to keep your dominance when 90% of browsers/desktop are already using you.

3. Partners: most major Web companies (Google, Yahoo/Flickr, Apple) are developing in Flash. How many of them can MS convince to use WPF/E instead?

4. FUD of MS: will WPF/E mean that we're tied to Window/IE? Although WPF/E is cross platform many fear that it will be dominated by MS (and people fear MS a lot more than Adobe).

What can MS do to clean up the mess?
Tuesday, 06 March 2007 18:45:19 (GMT Standard Time, UTC+00:00)
Hey Dare ... maybe we don't have to choose between a smart client/rich browser client OR give up our favorite dev environment.

Sometimes we just need to rethink the problem space :-)
Mike Parsons
Tuesday, 06 March 2007 18:49:46 (GMT Standard Time, UTC+00:00)
I fully expect the good ole Web, as a user platform, to out-compete every plug-in based, less-open solution, just as it always has. Even now, when rich-interface Web development is indeed a "mess," we see Flash solutions being replaced with Ajax. As Ajax development abstractions mature and the cost of pure Web development drops, do you think this trend is going to slow? In the end, the only place where the plug-ins will survive is in niches where pure Web solutions are simply not viable.

As browsers improve, these niches are going to get smaller and harder to find. Most practical applications are already within range of modern web browsers. Few applications, for example, require more graphic richness than Google Maps or more interactivity than Google Docs and Spreadsheets, and yet neither requires Flash or any other plug-in.

In sum, where Ajax and the plug-ins overlap, the smart companies are already choosing Ajax, even though development costs are high. As that overlap grows and those development costs drop, the plug-ins and their ilk are going to be forced into ever-diminishing niches.

Cheers! --Tom
Tuesday, 06 March 2007 22:07:43 (GMT Standard Time, UTC+00:00)
Comet. Comet comes after Ajax.
Wednesday, 07 March 2007 03:01:30 (GMT Standard Time, UTC+00:00)
Jim: I don't think Comet is anything more than a design pattern for updating server side events, it works within development environments rather than being a new language/environment

With Javascript development, I think the situation in the non-MSFT world will improve with tighter eclipse/firefox integration and perhaps some better commercial tools (from Adobe). As for x-platform, I think the onus here is on the browser developers.

I believe AJAX apps will always be superior to Flash applications because they tap the native browser UI and standard controls/objects - so the experience for users is superior.

I don't buy the arguments for Flex - filesystem and offline access, these are temporary problems that don't need new platforms to solve. Files are moving online (Omnidrive - warning: plug) and connectivity is improving rapidly. Also the browser already has an ok-ish security model

So in short, I think AJAX is the new AJAX, which gives us a chance to give it a better name :)
Wednesday, 07 March 2007 03:24:52 (GMT Standard Time, UTC+00:00)
In a year or two, we'll tell (more) horror stories about cross platform AJAX development, and thank Adobe for their contributions to the open source community.

Issac already points out that Flash development tools are already freely available, or you can fire up your favorite text editor. Try coding WPF without Microsoft's IDE.

I personally don't mind that Adobe controls Flash Player. They're doing a great job with it, and it's freely available. See Sun for what happens when you let others fork your runtime.

WPF/E became a joke after Microsoft dropped its CLR. Why bother with WPF when you can reach a larger audience with Flash using the development tools of your choice?

Adobe is enabling thin and lightweight computing. Microsoft was too busy copying Apple for Vista ;-) when they really should have been paying more attention to Adobe.
Wednesday, 07 March 2007 08:49:55 (GMT Standard Time, UTC+00:00)
There's a lot of FUD in these posts.

Isaac, unlike Flash, you can develop WPF/e in anything and not even need a compiler because you can write plain Javascript and XAML markup. With Flash, you need the compiler. When you add the mini-CLR into the mix, then you have a whole host of languages that you can write in. With Flash, you have ActionScript.

Tom, you're missing an important point. The development of browser technology that makes it into mainstream browser happens at a glacial pace. The stock browser as an interesting applications platform is coming to an end.

Wednesday, 07 March 2007 08:52:07 (GMT Standard Time, UTC+00:00)
btn, maybe you should read up a little bit on what's going on before you post. The mini-CLR has not been dropped. The first developer preview just doesn't have it.
Wednesday, 07 March 2007 13:11:33 (GMT Standard Time, UTC+00:00)
Well, what about good old Ajax being stramlined by some new open development platform?

Why can't we expect new basic tools like Google Web Toolkit and even Firebug to evolve into more robust tool?

Wednesday, 07 March 2007 14:27:02 (GMT Standard Time, UTC+00:00)

I sure hope you are correct...early on I had these same sentiments and was proven wrong, wrong, wrong. So much so that I've had to actually write some JavaScript, and in some areas, like JSON, I've actually begun to enjoy it.

The weaknesses of flex/flash are that they don't have good linux support yet for the IDE and more important, SEO and scraping of microformats breaks down. Adobe needs to be very agressive on the SEO topic. When I was working on an experimental Flash replacement for HTML pages that question came up often, and Adobe was not helpful.
Wednesday, 07 March 2007 16:29:58 (GMT Standard Time, UTC+00:00)
Re: swf/seo, I'm not sure what your question is, but here are some of the most common ones:

Do search engines read the text within SWF files? (Yes, they do... try term "microsoft filetype:swf" at Google to confirm.)

Do search engines catalog text which is called by a SWF or AJAX from a database or other remote source? (No, to my knowledge they do not.)

Does SWF make your site invisible to search engines? (No.)

What's the secret to getting good SEO with SWF? (Follow the usual advice given by Google, Yahoo and others to get your hosting HTML page found: good title, good keywords, and good anchor text on inbound links. No tricks.)

btw, you're right that Adobe Flex Builder is not yet solid on Linux... the Eclipse implementations across platforms vary. If more Linux users download the free SDK and compiler today then that may indicate reason for investing in making the visual editing more solid there.

Wednesday, 07 March 2007 18:18:20 (GMT Standard Time, UTC+00:00)
Rick, I didn't miss that point. Rather, it was immaterial to my argument: even if the development of browser technology were to halt today, what we already have is good enough. How many applications need more graphic richness than Google Maps? How many applications need more interactivity than Google Docs and Spreadsheets? If those apps can be done with *today's* browsers, almost all interesting apps can be done with *today's* browsers.

But the reality is that browser development has not halted. Even if we accept your claim that this development occurs at a "glacial" pace, the pace will still be sufficient to drive the plug-ins into the distant corners of the market -- it will just happen slowly.

That's because the pure-browser platform is already beating the plug-in platform where they intersect in the marketplace. If companies are willing to work around browser limitations and to bear the expense of developing on a platform whose coding model is a "mess," all in order to avoid Flash and other plug-in platforms *today*, what makes you think the situation is going to be any different tomorrow, when the browser limitations will be fewer and the coding model will be saner?

Cheers. ---Tom
Wednesday, 07 March 2007 22:57:31 (GMT Standard Time, UTC+00:00)
Tom, it's interesting that you used the euphemism of "good enough". We can write console applications and call them "good enough". When you have the resources of Google, you can put massive engineering resources into something that is "good enough".

I wish developers would look beyond their niche every once in a while and not be so adamant about defending some arbitrary turf that they've conceived of. The fact is that the stock browser is almost at an evolutionary dead end when it comes to cross-browser technology. The W3C fumbles around and nothing comes out of them and Microsoft doesn't have much of an incentive to push things further.

Your presumption that companies are avoiding Flash is just completely wrong. Flash is everywhere. It's just that until recently Macromedia(now Adobe) wasn't very good (or even trying) to get into the RIA business. But Adobe sees the Microsoft juggernaut and is now pushing Flex2 hard. Microsoft will be able to push out WPF/e just because they're Microsoft.

Mike, AJAX is here now, but five years from now people will be avoiding it like the plague for applications development. Don't believe me? Just watch Google in the next couple years. I wouldn't be suprised if they were using both Flash and WPF/e.

The fact is that developing for the stock browser is a mess and a step backwards in applications development. The only reason anybody does it is because of deployment. Flash is ubiquitous and Microsoft will eventually be able to ramp up WPF/e deployment. I, for one, can't wait to get out of this dark ages of development. The coding models won't get saner, in fact it just got more insane with the release of IE7
Thursday, 08 March 2007 01:30:10 (GMT Standard Time, UTC+00:00)

Thanks for your comments.

On "good enough," I used the phrase to mean "sufficient to implement almost all interesting applications in a way that satisfies users." While you could write console applications and call them "good enough," you wouldn't be using the term consistently with my meaning.

Regarding, "I wish developers would look beyond their niche every once in a while and not be so adamant about defending some arbitrary turf ..." I also have a wish. I wish that people who disagreed with me could point out the flaws in my arguments instead of making dismissive personal attacks.

Regarding, "Your presumption that companies are avoiding Flash is just completely wrong." Really? Google, as you point out, has "massive engineering resources" and thus can afford to use any platform it chooses. Why, then, does Google not use Flash for all of its flagship applications? Surely, if Flash were indeed the best choice, Google would have no difficulty using it and would, in fact, prefer to use it. But it doesn't. Why?

Also, why did Flickr drop Flash for Ajax? They already had a working, fully-paid-for Flash-based system. Staying with that system would have cost them *zero* engineering effort, and yet they invested significant engineering resources to replace Flash with a pure-browser solution. Why did they make the effort?

Are Google and Flickr the folks who just don't "get" the modern web? Or are they the folks who get the modern web better than most?

Now, at this point you may be tempted to provide a list of all the folks who *are* choosing the plug-in platforms for their apps as evidence for the growing strength of those platforms. I'll make a claim about those apps: either they require unusually high graphics or interactivity beyond what today's browsers can provide (a niche that will shrink as browsers improve) or they were created by teams that were incapable of creating pure-browser solutions given their business constraints. In other words, when a company chooses not to build a pure-browser solution, it's because they didn't have a choice.

When companies do have a choice, they almost always seem to go the pure-browser route, especially if those companies are leaders (e.g., Google, Flickr). And, as browsers continue to improve, the pure-browser choice will only get stronger. If companies are making that choice today, they will continue to do so tomorrow.

Cheers. ---Tom
Thursday, 08 March 2007 02:51:50 (GMT Standard Time, UTC+00:00)
[quote]"The fact is that the stock browser is almost at an evolutionary dead end when it comes to cross-browser technology."[/quote]

For what it's worth, I'd disagree strongly with this. Each browser evolves, and the set of them evolves as well. Enduser adoption rate is slower than Adobe Flash Player too. But I see that the world's deployed HTML/JS/CSS capabilities steadily increase in capability.

One player can move faster than many, that's all. But all do move.

[quote]"Why, then, does Google not use Flash for all of its flagship applications?"[/quote]

Because they don't need to. They use these richer capabilities when it makes sense.

What type of experience would you like to deliver to your audience? What would it cost them to view it? What would it cost you to make it? How will you maintain it down the road? These are some of the key questions, to me.

Thursday, 08 March 2007 10:51:56 (GMT Standard Time, UTC+00:00)

[1] Nope, we've never said Visual Studio is going to be the sole tool to develop WPF/e in :) Secondly, Flex Builder (Eclipse) isn't free, its under $1k USD per hit. Will WPF/e be better? probably, probably not won't know until its finished - beta :)

[2] Last conservative numbers for Flex development were around 10k world-wide right now. I'd say there would probably be more FLASH developers per say then FLEX, but not more then double.

THat being said, WPF/e is still again in beta cycles so to early to pit one up against each other just yet.

[3] Google are? since when? Yahoo are also developing in Microsoft WPF, Apple well I don't think Apple will spinup a Microsoft friendly tool any time soon to help our cause - apparently they don't like us much.

[4] Nope, WPF/e is x-platform as they come I guess (exception Linux). It works much in the same way most plugins work, download it and play.

What can we do? provide a point of difference and watch WPF/e as to how.


unlike Flash WPF/E is to complement HTML by providing a more transparent approach. XAML can be loose within the HTML document and can be accessed with the same client-side JavaScript that is used for other parts of the web page; there's no hard boundary between the two worlds, which many web developers will find an attractive approach.


Tom on Flickr:

Firstly, Flickr uses the same REST API that it does with other languages. If they were serious about integration with Flash, that'd offer for example "AMF" hooks to shorten their bandwidth throttle for one, and to provide tighter integration. What you currently see with FLICKR + FLASH applications is simple AS3 Libraries built by others.


I'd wager that the reason Google went with AJAX instead of "Flash" is that they need to ensure browsers hold the fort in terms of foundation. If the browsers were to shift from being what they are now to say - Apollo - for example, then Google starts to worry about where the web is heading in terms of direction.

It's in Googles best interest to keep HTML alive and kicking for whatever reasons it sets - as if for example the net were to switch into RSS mode of operande and aggregators were there to provide context back to the signal to noise ratio - where would their revenue model sit?

Using FLASH sends the wrong signal and i'd argue that was one foundation piece for non-FLASH technology as we see it today (other then video).



AJAX took off in terms of momentum as it meant simply "I didn't have to upskill for this whole new RIA stuff, I'm still using my core skillset only smarter now".

It's an attractive proposition and my only angst in using AJAX has solely been that "AJAX" doesn't exist, frameworks however that model of the AJAX methodolgy do. If we discuss the conversation in the right frame of context, that being AJAX specific frameworks then that holds relivance. Essentially, AJAX was thrown around a little too loosely but now that more and more frameworks are immerging, i've come to accept it now more so then I did a year ago.

The turning point for me was when I saw Visual Studio Express (Free), ASP.NET + AJAX Framework working seamlessly together. The fact that there is not only a Tool but a client-side and server-side framework integrating with the tool - well that speaks volumes.

Is it X-Browser safe, jury is out on that but I'd wager its a damnsite closer then anyone can expect overall.

Is it easier to code to? well yeah provided you're happy to adhere to ASP.NET as your serverside language (although some of the guys behind the ASP.NET AJAX framework are working on a php version in Codex).

The smart money overall is on the one set of tools that can complete the picture, that can provide rapid development timeframes with as minimal effort as possible. I feel Microsoft in this quest has merit, where as Adobe are just to fragmented in their approach - on one hand they've got Flex Builder inside Eclipse, yet in Coldfusion you need to use Dreamweaver - that or - take up CFEclipse, something they don't really support (BlueDragon have).

Ya know, when Steve Ballmer did that prance around the stage about "Developers, Developers, Developers" I think he was right on the money. All of this can't exist without first appealing to the developers/designers. If you can't get that smoothed out, forget the features as sooner or later they become secondary if its to hard or complex to work with.

I'd say there is a reason why .NET has the numbers it has - even java for that matter. It's not 100% because of the language, it's due to the wider support and tools that support it.

Rant over.

Scott Barnes
Developer Evangelist
Comments are closed.