New Delhi Times

Gaurav Bhatnagar reporting from New Delhi, India

Is AJAX and DHTML really the future of rich internet applications

View Comments

Of late we have been doing a lot of work in the rich internet application domain. We have used AJAX extensively to create slick user interfaces that look more and more like desktop applications. It amazes me all the time that the this technology existed for years and was never put to good use. Now that its finally gaining popularity and adoption, I get a feeling its time has alrady come and gone. Sure, previously unthought of web experiences are now possible with AJAX. But can DHTML and AJAX deliver on the thin client application-in-the-browser nirvana? I think not.
Firstly, coming from an operating system/application development background, the whole web programming model confounded me. There is no easy way to seperate the UI from the business logic. I have somewhat managed to achieve this seperation with ASP.NET and PHP5 classes but still, HTML remains a crappy way of developing user interfaces. Browser compatibility makes things worse (Safari has been the biggest PITA of late for us).
Secondly, AJAX is good for a “pull model”, i.e when data needs to be fetched from the backed based on user action. But a lot of scenarios require that data be made available to the client as and when it becomes available on the backend. Email clients checking for new email, or a radio station updating track information, chat applications etc are good examples. Right now, all these scenarios can be enabled only by periodic polling. Basically, true client-server model can not be achieved because the server can not callback to the client (this is not only an AJAX limitation. such is the nature of HTTP). Almost all networked desktop applications use a client-server model or a peer-to-peer model. Both these can not be achieved within the browser.
Finally, Javascript is clunky and limited in what it can do. It is hard to debug. It is clamped down for security reasons (you can’t access the file system, for example). After a few hundered lines, Javascript code starts getting unmanagable and unmaintainable. So it becomes increasingly complex to create even basic desktop-app like functionality using Javascript. I can’t even start to imagine somebody creating Microsoft Word like text editor using Javascript and AJAX.
Technologies like Laszlo try to ease the issues with HTML. But the real culprit is the browser itself. The browser was meant to be just that – a tool for browsing through web pages. It was not meant to be a platform for hosting entire applications. That is what an operating system was supposed to be for. But with the recent trend towards thin computing, browser emerged at the natural thin client because it was already installed on everybody’s machines.
So here is my prediction for the future. Someobdy (Google?, Novatium?, Microsoft?) will develop this new uber-browser platform which will run on all major operating systems. This new platform will be like a mini-OS by itself complete with hooks and apis and a programming model geared towards developing feature rich desktop like applications which will run within this browser. The platform will allow creation of true desktop like applications which will be OS-agnostic. Most end users will not even realize the difference since it will be completely transparent to them. And THEN we would have attained thin client utopia!

Written by gaurav

September 2nd, 2005 at 6:27 am

Posted in Semantic Web

  • http://www.planetnazim.com Mir Nazim

    Gues what!!
    That’s exactly what was going on the back of my mind this morning.

  • http://www.planetnazim.com Mir Nazim

    Gues what!!
    That’s exactly what was going on the back of my mind this morning.

  • http://lailamajnu.com Amit Tyagi

    Yes I am agree with you Gaurav , But unless there something revolutionary happens , We can make more and more powerfull AJAX applications .We can’t wait for Google or Microsoft :-)

  • http://lailamajnu.com Amit Tyagi

    Yes I am agree with you Gaurav , But unless there something revolutionary happens , We can make more and more powerfull AJAX applications .We can’t wait for Google or Microsoft :-)

  • http://spaces.msn.com/members/aayushpuri Aayush

    I am sure you must have read about Smart Clients – http://msdn.microsoft.com/smartclients. Superb concept and the best example of this is the way in which Microsoft has started converting Microsoft Office into a programming platform.

  • http://spaces.msn.com/members/aayushpuri Aayush

    I am sure you must have read about Smart Clients – http://msdn.microsoft.com/smartclients. Superb concept and the best example of this is the way in which Microsoft has started converting Microsoft Office into a programming platform.

  • http://spaces.msn.com/members/aayushpuri Aayush

    I am sure you must have read about Smart Clients – http://msdn.microsoft.com/smartclients. Superb concept and the best example of this is the way in which Microsoft has started converting Microsoft Office into a programming platform.

  • http://spaces.msn.com/members/aayushpuri Aayush

    I am sure you must have read about Smart Clients – http://msdn.microsoft.com/smartclients. Superb concept and the best example of this is the way in which Microsoft has started converting Microsoft Office into a programming platform.

  • http://spaces.msn.com/members/krisdhingra Kirti Dhingra

    Guess what, next on google’s agenda is a web browser , maybe with the capabilities that you mention

  • http://spaces.msn.com/members/krisdhingra Kirti Dhingra

    Guess what, next on google’s agenda is a web browser , maybe with the capabilities that you mention

  • Tarun Agarwal

    You can see a editor written in JavaScript at http://www.fckeditor.net/ . They have a good online demo as well.

  • Tarun Agarwal

    You can see a editor written in JavaScript at http://www.fckeditor.net/ . They have a good online demo as well.

  • http://www.mungee.org/ Sumedh Mungee

    A uber-browser platform that will run on all platforms and will have a clean, consistent programming model..
    Hmm – seems a lot like Java. :-)

  • http://www.mungee.org/ Sumedh Mungee

    A uber-browser platform that will run on all platforms and will have a clean, consistent programming model..
    Hmm – seems a lot like Java. :-)

  • http://www.desinerd.com Dipankar

    anybody for mozilla, runs on most platforms, developers can make great apps with XUL and XPCOM. I think with the wide adoption of firefox as a primary browser, it is an already available plaform.

  • http://www.desinerd.com Dipankar

    anybody for mozilla, runs on most platforms, developers can make great apps with XUL and XPCOM. I think with the wide adoption of firefox as a primary browser, it is an already available plaform.

  • http://www.newdelhitimes.org Gaurav

    Nazim – great minds think alike :)
    Amit – yeah we are going to be all over AJAX and continue to crank out cool stuff using it. But at the same time we have to keep searching for new technology, and create it if we must.
    Aayush – I know about SmartClients. The big issue with MSFT if that they can never be platform agnostic. Thats a big limitation to work with because independence from specific platforms is a big premise of thin client computing.
    Tarun – I have used fckeditor before but it really doesn’t match up to features in full fledged office suite like Office. I bet the code for fckeditor is already pretty huge!
    Kirti/Dipankar/Sumedh – My issue with browsers is that sitting on top of http, its very hard (if not impossible) to develop true client-server applications. There is no callback and connection is not persistent. I agree JVM comes closest to what I describe. But its not geared towards thin client computing. We need a platform that allows developers to create thin apps very easily. That would include tools for keeping application in sync, allow working in offline mode etc. Much like how the Win32 API made it easy for developers to build Windows applications!
    Thanks for the great disucssion folks! :)

  • http://www.newdelhitimes.org Gaurav

    Nazim – great minds think alike :)
    Amit – yeah we are going to be all over AJAX and continue to crank out cool stuff using it. But at the same time we have to keep searching for new technology, and create it if we must.
    Aayush – I know about SmartClients. The big issue with MSFT if that they can never be platform agnostic. Thats a big limitation to work with because independence from specific platforms is a big premise of thin client computing.
    Tarun – I have used fckeditor before but it really doesn’t match up to features in full fledged office suite like Office. I bet the code for fckeditor is already pretty huge!
    Kirti/Dipankar/Sumedh – My issue with browsers is that sitting on top of http, its very hard (if not impossible) to develop true client-server applications. There is no callback and connection is not persistent. I agree JVM comes closest to what I describe. But its not geared towards thin client computing. We need a platform that allows developers to create thin apps very easily. That would include tools for keeping application in sync, allow working in offline mode etc. Much like how the Win32 API made it easy for developers to build Windows applications!
    Thanks for the great disucssion folks! :)

  • http://iamspl.blogspot.com Rajat

    Hello,
    i am sure if i am qualified to comment on this, coz i have worked on only 3 applications implementing AJAX so far but i have realised a couple of things with AJAX
    1. If the app is not properly design we end up breaking the MVC paradigm, no code in the view.
    2. It is required to keep all the code in an external file, dont have inline scripting tht’s a big evil.
    3. Debugging, that’s a pain in the a$$, network sniffers or my fav dumping it all in the session variable and use another browser window to check what went wrong. (not sure how cool is that but it works for me).
    I am working on a new website, aproject that i have been dreaming to do for quite some time, its all AJAX. shall drop a note about it once it takes some shape in case you care!
    Have an outstanding day!!
    Rajat

  • http://iamspl.blogspot.com Rajat

    Hello,
    i am sure if i am qualified to comment on this, coz i have worked on only 3 applications implementing AJAX so far but i have realised a couple of things with AJAX
    1. If the app is not properly design we end up breaking the MVC paradigm, no code in the view.
    2. It is required to keep all the code in an external file, dont have inline scripting tht’s a big evil.
    3. Debugging, that’s a pain in the a$$, network sniffers or my fav dumping it all in the session variable and use another browser window to check what went wrong. (not sure how cool is that but it works for me).
    I am working on a new website, aproject that i have been dreaming to do for quite some time, its all AJAX. shall drop a note about it once it takes some shape in case you care!
    Have an outstanding day!!
    Rajat

  • http://www.newdelhitimes.org Gaurav

    Rajat, good points there. Especially about debugging. Please do drop a note when you have something cool to show for your new application!

  • http://www.newdelhitimes.org Gaurav

    Rajat, good points there. Especially about debugging. Please do drop a note when you have something cool to show for your new application!

  • Keith

    Are we deluding ourselves that we are still working with thin clients? Are our thin clients slowly turning into fat clients?
    I guess we will find out when somebody writes a thin client on top of a thin client….

  • Keith

    Are we deluding ourselves that we are still working with thin clients? Are our thin clients slowly turning into fat clients?
    I guess we will find out when somebody writes a thin client on top of a thin client….

  • Ashit Patel

    X Windows is available on all major OS. It also has rich API (Xt, Motif toolkits) for client-server apps. It was very popular fin early 90s before browsers era.
    Ashit

  • Ashit Patel

    X Windows is available on all major OS. It also has rich API (Xt, Motif toolkits) for client-server apps. It was very popular fin early 90s before browsers era.
    Ashit

blog comments powered by Disqus