The last couple of weeks I’ve been doing some thinking on the dichotomy between server and client execution. It seems to me that WinForms developers in general increasingly are doing a larger effort to move the functionality to the server – where they used to love their big, fat clients:-); and on the other side, web developers are moving more and more functionality to the client.
I think both developer types – WinForms and Web – have some technical legacy reflected in their products. For WinForms developers there really haven’t ever been a good client-server communication framework until recently. They’ve had to work with stuff like remoting with server objects used from the client – kind’a definitely not state-less, nor lousely coupled – but with a great potential of being a maintenance hell:-) Such technical barriers have made it natural to keep functionality on the client – it was more productive.
On the other hand, the web guys have been extremely server focused – probably as a result of lack of client side tools. Stuff like JQuery and AJAX Frameworks makes this easier – and as a result web developers are taking a more thorough look into client side development.
Marx would say that it’s how we produce stuff in a given period that determines how we think – perhaps this also applies to software development?