'

More thoughts on why Ajax is bad for web applications

I feel like I always preface these kinds of posts, but I want to make it abundantly clear that I'm not on some kind of crusade against Ajax. When dealing with websites, there is no better way to make your site interactive and much more user friendly.

I feel like I always preface these kinds of posts, but I want to make it abundantly clear that I'm not on some kind of crusade against Ajax. When dealing with websites, there is no better way to make your site interactive and much more user friendly. I think the investment and discussion around Ajax has also helped grow the web as a platform. What I disagree with is the current crop of developers that are building their applications with Ajax. I think Rich Internet Applications and Ajax can coexist, but Ajax developers need to know when to draw the line between website and web application. Ajax is great for websites, but very bad for web applications.

People talk about the ubiquity of the web being such a great thing, but by building your applications for a browser market that is increasingly fragmented, you're missing out on that ubiquitous platform. Dave Wolf had a good post about this on Friday. As Dave notes, the "rich" part of Ajax comes from leveraging DHTML, something a lot of web developers realized was obsolete years ago. Then Ajax came along and opened up the door for interactivity. That interactivity combined with the manipulation of the DOM allowed people to use the skills they had from four years ago to create a new kind of web experience. But the browser DOM was never meant to be a platform for applications. People talk about the ubiquity of the web being such a great thing, but by building your applications for a browser market that is increasingly fragmented, you're missing out on that ubiquitous platform. Browsers are great for viewing web pages, but web pages aren't supposed to be web applications.

Another piece of news that I found relevant to the constant discussions of Rich Internet Applications was the announcement at the ToorCon conference that there is critical flaw in the FireFox Web Browser. Now, I realize that Flash and Microsoft products have security issues. I also realize that some people think open source is the best way to fix flaws like this. But enterprises don't think that way. For them, it's much more valuable to have someone to put the blame on - a singular entity who will take responsibility. There is a reason that so many businesses turn to Microsoft - they know that there is a legal entity who has a lot at stake and will fix any issues with the application. And I think that relationship with Microsoft is going to continue to be strategically important as companies adopt Rich Internet Application solutions. Adobe offers the same kind of promise, and while they give away their platform for free, companies who use it know that Adobe stands behind their product and is willing to both fix any issues and work with companies who have problems.

The bottom line is that we are taking JavaScript and the browser DOM to places it was never meant to go. I liken building a web application in JavaScript to mowing your lawn with one of the manual push mowers. Is it possible? Sure, but why would you? It is going to take you much longer, you won't do as good a job, and you will have wasted a lot of valuable time. The consensus in the Ajax community seems to be one of bragging rights - "We're pushing JavaScript to its limits" or "We were able to code this JavaScript application so it works in any browser". At the end of the day, you've still spent a long day in the sun, pushing your lawn mower, while the guy next door with the riding lawn mower is watching football and drinking beer. I guess you have a tan to show for it.