<< Spring 1.1.3 Comes To JPackage.org | Home | CD Burning in Fedora Core 3---A Tip >>

The Case Against Web Applications

The recent release of the Google Suggest has the community buzzing with amazement, grand predictions, frantic reverse engineering, and hectic explanations.

Ever the contrarian, I would like to pour some cold water onto the whole circus. Think, people, think!

Here's some questions to ask:

  • What is the essential feature of the browser that made Google Suggest possible?
  • When did this feature first appear in a browser? Which browser? What version?
  • Why haven't we been using it for the many years since the feature first appeared?
  • Who invented this feature? What is he doing now?
  • How much did it cost to develop Google Suggest?
  • What kind of processing power and bandwidth is needed to host the server side components in support of this feature?

Now, for something completely different: Who is Kevin Gibbs? Which company does he work for? What does he do during the 80% of the time when he's not doing the "20% time, any project you want" thing?

Finally, just to make it sting a little for the JavaBlogs crowd: Was it written in Java? J2EE? IoC Containers? Or was it written in Python (Paul Graham-ish grin)?

Now, my challenge: Do you have a little bitty search box on your blog? Now go ahead and make it behave just like Google Suggest!



Re: The Case Against Web Applications

i don't get it...........

Re: The Case Against Web Applications

It is exceedingly hard to develop something like Google Suggest in a web app, particularly in a way that performs well and is portable. I hate the state of web apps. I think the "amazement" is a sense of awe that Google was able to pull off something so slick within the confines of a web app. I find nothing amazing about web app technology. All you get is a crude text box, a combo box, a list, and fonts. No real table components, no real tree components, no tabbed panes, no real drag and drop, no layout managers, the list goes on and on. Browsers are a pathetic platform for developing rich client applications. But you code with the tools you are given, not with the tools you want. Google suggest is an "amazing web app" but absolutely trivial had it been a Swing app.

Re: The Case Against Web Applications

I posted something related to this at http://joust.kano.net/weblog/archive/2004/12/18/google-suggest-and-gmail-are-a-step-backwards/ that you may be interested in.

Re: The Case Against Web Applications

(1) Mostly XMLHttpRequest, an easy way to push and pull data from the server via Javascript without hacking around with hidden iframes.

(2) Microsoft Internet Explorer 5. It was later adopted as a de facto standard in Mozilla 1.0 and later Safari 1.2

(3) Because of the slow browser upgrade cycle, and the need to wait until the feature is available to the vast majority of users. For example, until Safari 1.2, it would have been hard to deploy such an app and not have faced the wrath of the Mac community.

(4) No idea. Some unnamed engineer in Microsoft.

(5) This is hard to calculate. The main value from Google Suggest comes from all the effort that Google have put into making their search engine fast enough that such live queries are feasable.

Google also have a corporate culture in which engineers are encouraged to take a certain amount of time doing whatever interests them, in the hope it bears fruit. This feature could well be the result of such an exercise.

(6) In Google's case, this would be substantial, but on the other hand, search is the core of their business, and devoting significant resources to improving search is good for them.

And the supplementary questions:

The client-side components, obviously, are Javascript. While I have no evidence to back this up, I'd guess the server-side components were written in C, purely because they'd have to be as fast as possible.

Adding the capability to a blog search-box would not be feasable, as there'd be very little value added to a blog by having an interactive search box. (Most native search within blogs is hideously slow, for precisely the same reason). This fact does not discount the value of Google Suggest as a wake-up call to the otherwise moribund art of the web UI.

Re: The Case Against Web Applications

And MSIE 5 was released in 1999. It took five and half years to see it used in a real web application. If that doesn't spell hard to use, nothing does.

The richer UI that Google brings to us was possible for sometime now, probably three or four years. Yet it felt so fresh when we started using things like GMail. To me that also spells hard to use.

The breakage of the "page load per server access" model may also have complexity or performance implications, maybe even transactional and security implications. Are we ready to go there?

As we push web applications to its limits in terms of usability, (assume for a moment that Eric's wish for more advanced widgets is granted and we do have tables and trees---there really is no technical reason for their absence from the browser,) the complexity of developing a web application would have surpassed that of developing a native application or a Swing application.

Re: The Case Against Web Applications

1) MSIE 5 was released in 1999. Safari 1.2 was released just over a year ago. XMLHttpRequest-enabled applications have been springing up regularly for the last year: I've noticed its use in Orkut, GMail, Amazon, Flickr and myspace.com, and I haven't even been looking for them.

2) The richer UI has been possible for three or four years, but it hasn't been generally supported for that long. Web applications are mostly bound by the web browser upgrade cycle, and for various reasons and accidents of history, the need to support Netscape 4 has been hovering over web applications like a black cloud for far longer than it should have.

People have been _experimenting_ with rich browser UIs ever since Javascript came out, but they've mostly been trying to reproduce the behaviour of thick clients in a very clumsy fashion, rather than improving the thin client experience gracefully.

The other aspect of the story is that progress doesn't just take a technology being available, it takes someone else to see the potential in that technology, and a whole bunch more people to use the results of that and pass on the word. I keep my head pretty close to the ground, and I didn't even know XMLHttpRequest existed before I used Orkut and asked "Hey, how did they do that?"

3) The breakage of the 'page load per server access' model may have complexity implications. But to be honest, it probably won't. The browser is requesting a piece of information. The fact that it doesn't use that information to display a whole new page is not something the server really need even care about.

4) This depends on what you want to do. You seem to have gone from "making a richer web UI" straight to "re-implementing a full-featured GUI in Javascript", without taking any notice of the value of the fertile ground in between.

Re: The Case Against Web Applications

Fertile and unexplored ground. And there will be a price to pay for the exploration. I think I'm seeing exactly the same things as you are in terms of the web application landscape, but I'm reacting more cautiously.

I still remember seeing Sun's HotJava browser running an applet for the first time and asked, you guessed it, "Hey, how did they do that?"

Just because they can do it, doesn't mean everybody has to do it, especially when there are more mature alternatives.

Re: The Case Against Web Applications

I'm arriving a little late to this one, but I just wanted to add a little something here... I only see one reasonable alternative that is more mature than the one Google chose: Flash. Applets still suck for the majority of web users. Google could have added this functionality to their toolbar, but how many people have that installed? There are many apps that make sense to be on the web, and Flash and JavaScript/DHTML are the viable ways to provide a more responsive experience. By the way, dynamic updates of pages does not need to be difficult. Brent Ashley wrote a library a few years ago that didn't rely on XmlHttpRequest and had server-side code in several languages (JSRS was the name of the package). There's the pubsub library that people are working on today, and the netwindows.org library which provides a bunch of rich widgets. Judicious application of this technique can give a real competitive advantage to a web app. Seeing GMail's slick interface in action was enough to make Yahoo! buy Oddpost.

Re: The Case Against Web Applications

There is no question that there is a balance that needs to be met here. What google is doing is tremendous. I really like their new beta maps system. They raise the bar for web applications. I do agree that applications that run on the computer are better. But you obviously have to consider your audience. Requiring someone to download/install an app on their computer is without a doubt clunky and distasteful to most people. It raises red flags to them, especially if you are not well known. Plus, you lose any audience who is wishes to use your application from a public computer. If I am developing an application for internal use at my company, I am probably going to promote an application that is installed on my computer. If I need to reach a wider audience, I am going to develop a web application. And I would aspire to provide as rich of an interface as possible.

Add a comment Send a TrackBack