Dynamic HTML a viable technology? 
Exactly long a way have we come since HTML was first used by academics in the early 1990's?
I remember when I saw my first HTML page render in Mosaic at RMIT in '93 or so. The page which contained a few small images and text took forever to load.
Those were the days of the client-server. Rich clients written in VB, Delphi etc for Windows were all the rage. They were slick, quick and generally provided a great interactive interface. Then comes the late '90's and the .dot days. The internet promised to be the flaship of the .dot economy. Everybody seemed to be making money from it (or at least everyone was investing in it, in an aim to be part of the cash cow that this technology seemed to promise).
But how far had the internet technnology come from the early '90s? The two most popular browsers IE and Netscape were both in verison 3. They still only provided a really basic HTML interface. Some new technologies were introdced to try and improve the poor HTML thin client frontend such as
- Java (Sun's language for the internet. Java Applets were to be the rich client inside the browser. Never really took over due to the library downloads, and general broswer support...thanks to Micro$oft)
- Flash (Macromedia, great for animations and intros but no real over alternaives)
- Javascript (introduced by Netscape, to try and add some dynamics to the HTML page, but had very poor compatibility between browsers)
Major problems of the late '90s were browser incompatibilities and the average user's poor bandwidth.
Turn to 2005. Where do we stand now? In my opinion, we haven't come a long way. What the decade has given us, have been efforts of standardisation (W3C's CSS, HTML 4 etc), along with lots of new ideas/technologies that promised to replace HTML (lists too long to mention), but none have made much impact. Macromedia with their flash have come a long way, and it does give the impression of a nice rich client, but IMHO still doesn't cut it. Applets never made it, and Java is now the defactor language of the Server.
But where does this leave us? HTML has improved. Cascading Style Sheets, Javascript, DOM have fairly good implementations with less compatibility issues in the latest browsers. This interface is pretty good these days for serving up content to users, who may not want to install any special software, or may want to access a site/application from anywhere in the world. But is it good enough to run applications that are used for hours on end, with complex workflow or interactions...no.
Some of the big advantages that web applications give to companies are:
- deploy in a single place...users will use the latest version always (no need to redeploy to all users new versions etc)
- the web application can be run from anywhere on any platform (well pretty much).
But I wonder if studies that have showed how these two points above have saved companies money, how the poor interface that they provide have instead cost money. Poor design, interaction and user's time to wait b/w page reloads.
An often overlooked alternative to this is Java WebStart. What is? Well think of it as an applet running on your desktop.
A user simply points their browser to their company's website, clicks on an application link. This link though is a Java Webstart app, which downloads Java webstart files to their computer. It automatically installs the framework (regardless of O/S). Once installed, the latest version of the application they wish to download is installed. They are now using an application running on their desktop. Full rich interface, with some business logic running in the client, the rest on the server. The next time the user wants to access this application, they click on the shortcut on their desktop and the app starts. It checks with the server to see if a newer version exists, if so installs otherwiser start up.
Simple. I think this sort of thing is what companies should be using for feature rich business applications. Browser based apps are still cool for low usage, or for the general public who want run something occasionally.
For business applications that are used frequently this is a viable alternative, giving the user a rich slick interface (without having to wait for page refreshs all the time), but still gives the company the security of running their business logic on their server, ensuring that the webstart client is the latest, and not having to worry about the logistics of upgrading their whole user base.
What do you think?