Do we learn from history? Or when you started in the industry influences the solutions you propose
I have been thinking about writing about this subject for a while. However, the posting by Jason Sales
prompted me to actually write a blog entry.
When I started in computing there were no PCs, just mini computers and mainframes. The UI was mostly a green screen on a dumb terminal. As all the processing was actually being done on the main computer, you got very used to checking how many concurrent users were logged in to the system.
Eventually, the PCs came along and it was possible to build form based applications, some application processed data that was stored locally or on a mapped drive and some clients accessed data stored in a central database. However, now you no longer had to worry about how many users were logged in to the system as all the processing power was local. This meant you got used to providing the best interface for the user, all the power was local so you did not have to worry about other users. I got very used to building forms based applications and the design metaphor used by RAD tools such as VB made the task very simple, some people would say too simple especially if you look at some of the code produced.
This gave way to the Internet and the ability to build applications that ran on a server and provided an interface to the user within the browser. In some ways it was like going back to the world of the green screen dumb terminal apart from this time it was more colourful. Like the world of the mini computers you had to worry about how many concurrent users were using your web application. I remember having conversations around that time with people asking me what is a concurrent user and why it was important. If you came to computing during the windows form phase, you had no experience to look back on from the mini and mainframe phase of computing.
Interestingly enough, people who came to computing during the "Internet age", tend to have started computing by building web interfaces.They have no experience of building windows applications. However, I have also seen the down side of people not having experience of the mini/mainframe period as they do not always think of the number of concurrent users. However, in many ways they are programming mini/mainframe applications but without the security of owning the connection. However, I think with web applications we sacrifice ease of use and gain location independence.
I suppose it still find it much easier for me to sit down and put together a rich client app than it is to put together a web application. I feel that I have freedom with a rich client app and that I am restricted writing a web application. However, I tend to build my components first which means I can decide later stage which presentation layer to use.
In conclusion, I think whether you are happier building web applications or rich client application is largely influenced by when you entered the computing industry. However, what worries me is that some of the lessons of windows forms development have not been learned. There are still loads of web applicatons out there which have all there business and datalayer code built right into the web forms. That is certainly true of PHP, ASP and probably a lot of JSP.