I first got into the magical world of the internet in the happy 90’s. Back then you could find 3 basic types of network application clients: Internet lightweight web sites (HTML, JS), installed applications with network connection like ICQ or Applets.
The years went by, the internet connection got faster and richer applications came out of the desktop and into the browser. The web applications clients became fatter. Even if the desktop applications still exist, they have clearly become a lot less common. That was about the time I started developing in java.
The obvious solution for many of these fat clients were the java web frameworks like Struts, JSF and all the others. But as the years went by a new approach became more and more popular – the Ajax web applications, with GMail in the lead.
Fat clients never looked better and the usability was excellent. It is almost as if we are using desktop applications (!?!). JavaScript was never so cool. Libraries like JQuery are born every day as well as some new solutions like GWT to make our life with JavaScript easier.
But the story doesn’t end here. With the birth of the smart cellphones an old player came back to life – that’s right, the installed application. The small screen and slow connection makes the rich client web sites a bit hard to handle. IPhone followed by Android and Blackberry clearly encourage this approach with their application markets, so obviously installed applications are dominators in the mobile network applications arena.
But what’s next? Will the mobile installed applications suffer the same fate as the desktop applications? Clearly the arrival of HTML5 won’t make their life easier. Or maybe the installed applications will survive with the help of technologies such as JavaFX. Maybe both will manage to have a share.
What do you think?
I think that even though the internet network bandwidth has grown tremendously in last decade, for large amounts of data (either handling it like in photoshop/video editing/etc or getting it from a server) desktop application are still a better solution than a web interface.
Furthermore, due to the fragmentation of web browsers (and more technically, html renderers) the work that needs to be invested in making your web app operate in the same manner on all major browsers is enormous – just look at the output of GWT modules…
I believe that as html5 progresses (in terms of client standardization enforcement and also features) and as network bandwidth grows, web interface will become the dominant framework for all client-side development (even on iPhones).