views:

136

answers:

3

I have been writing software for several decades now and these days everything is web.
Before the web we had Client Server apps that were basically thick client applications that spoke directly to the database. They had some disadvantages, such as deployment was cumbersome, Did not scale because DB handled all traffic. Of course back then distribution of apps was limited to being on a desktop on a corporate network. The benefits to these apps were that they had fewer layers and were quick to develop.

There are times when the requirements call for an app behind a firewall with a dedicated database and a relatively small amount of clients. I suggest (sometimes on StackOverflow) the old Client/Server type architecture and everybody looks at me like I have 3 legs and 6 arms.

With modern technologies that allow automatic deployments of apps and the tools we have today. Is there a reason this technology is not viable ? Is it that the new generation of developers only know web stuff ?

+3  A: 

I'm sure thick clients are still being developed, even today.

Having said that, choosing a web-based architecture is not about the "new generation of developers" only knowing web stuff, you do get a lot of advantages if you can make your application web-based:

  1. Deployment is dead simple. Even with things like ClickOnce, automatic updates, etc, nothing beats simply refreshing the page to get the latest version
  2. You can use something like Silverlight to get 99% of the benefits of a desktop application (in terms of the ability to run code on the client)
  3. Web applications can be made available remotely much more easily than desktop applications (a lot of companies have remote workers these days, setting up a VPN is a pain if all you want to do is access payroll (or whatever))

But at the end of the day, it's all about the right tool for the job. Web applications don't help when you want to write plugins for Office (Word, Outlook, etc), they don't help if you have to control custom hardware (POS terminals, etc - although you could write that into the server in some cases...), and probably a few more cases as well.

Dean Harding
+4  A: 

I can think of at least two large-ish markets where client-server is still big:

  • Online games and virtual worlds, such as Second Life. Usually you need a thick client plus a connection to a shared server.
  • Custom-made scientific software. Complex technical or scientific software, especially if it needs an interactive graphical UI that does direct manipulation, is sometimes written in this fashion too.
CesarGon
+1  A: 

We have some Flex apps that communicate with XML based web services that are pretty close to old school Client Server apps. But rather than using SQL, they speak a custom XML language and render SOAP responses.

sal
Then you need to program, maintain and administer a whole middle tier. XML is cumbersome. It is a tool for many apps, but I am trying to convince people that we have moved away from simplicity, where sometimes a simpler solution is still best. I also write GWT apps as well as web apps so I understand the mechanics.
Romain Hippeau