A plethora of web technologies, such as AJAX, have emerged in recent years which has enabled the typically stateless web application paradigm to be injected with more stateful features, making it become more like a traditional desktop application.
There is nothing wrong with this, and in many situations, using new Web 2.0 features has radically redefined web user experiences enabling a whole new re-definition of what a web page is. In fact the web page has become less of a ‘page’, and more like an interactive screen.
Web 2.0 Disadvantages
- The most glaring of these, is the fact that a browser is for browsing pages. The metaphor of a ‘page’ and a ‘browser’ has become blurred. Embedding an application inside a browser, is the same thing as embedding an application inside an application.
- The techonology stack has become fragmented into a number of languages and frameworks. A whole onslaught of acronyms and gadgetry HTML, Javascript, CSS, JSP, PHP, JSF, await the project team.
- Due to the fragmentation of Web 2.0 apps, there is no concrete object oriented approach to develop applications. Because of this, maintainability, extensibility, and abstraction, all tenants of object oriented design, are lacking.
The Rich Client Way!!
The seemingly exponential growth of Web 2.0 is like a wave that is going to envelop the desktop application world. However the reality is that it will always get closer and closer but never quite reach it.
The rich client way is a way
Where would you use Web 2.0 technologies
- Casual users
- Predominantly passive applications
- Content driven applications.
- Low initial installation download time
Where would you use rich client technologies
- Professional users
- Predominantly active applications
- Dedicated PC
- Caching intensive applications
- Evolving applications
- Business critical applications
For example, consider a trading system, where users can buy and sell stock derivatives on the share market.
Casual User :
Web 2.0 technologies would be the right choice for a casual speculator that does not have a dedicated machine. The casual user needs to be able to quickly log into the trading system application, wherever he may be, be it at a friends place or an internet café in Spain.
Professional User :
The professional user would benefit from a rich client solution if they have one or two dedicated PCs from which they perform work from. There is always a higher download time when initially installing the application.
- The most glaring of these, is the fact that a browser is for browsing pages. The metaphor of a ‘page’ and a ‘browser’ has become blurred. Embedding an application inside a browser, is the same thing as embedding an application inside an application.
- The techonology stack has become fragmented into a number of languages and frameworks. A whole onslaught of acronyms and gadgetry HTML, Javascript, CSS, JSP, PHP, JSF, await the project team.
- Due to the fragmentation of Web 2.0 apps, there is no concrete object oriented approach to develop applications. Because of this, maintainability, extensibility, and abstraction, all tenants of object oriented design, are lacking.
Bridging the business technology divide.
Rich client technologies have the advantage of providing a better view into the business domain of the application. In a sense a GUI is a window into the backend offering the end user a comprehension of how the system all hangs together. Cardinality of entities are represented in tabbed panes and in tables offering the user comprehension of how all the pieces of the puzzle hang together. As the front end feature set is so rich, the front end effectively leverages a model of the business domain in the client. Unlike stateless HTML served systems, where the business domain is always contained on the server, rich clients contain an interactive system independent (but not isolated) from the server. Aside from the technical skills, an expert rich client developer must have Excellent ability to communicate with the business.. This includes :
- an interest in the business
- an interest in people
- an ability to convert shades of grey into concrete black and white.
- an excellent understanding of UML, including use cases, business domain models and class digrams