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
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.