Till we are completely submerged into the cloud, (it is imminent, what say?), and our PCs are mere pods to a ubiquitous application that’s running in some smart company’s computer farm, we would be dependent on desktop applications.
There has been a constant push towards “write once, deploy many places”. Right from advent of C programming language (yep, a primary goal is portability), and then Java, Qt, and so on.. With so many operating systems available in the market, and all of them offering some standards compliant, and some not so standards compliant features, application developers were made to choose their favorite platforms. Their careers were known to be dictated by the platform they had chosen to develop on.
I still remember, back in the days, Indian head hunters would ask you … “Are you a Linux, Windows or a Mac developer?”, “Do you know Apple … ” and so one. This was despite the fact that they were looking for simple application developers, and not driver writers, or OS plug in developers. I used to always cringe at such questions.
Now, If you see, there are plenty of technologies floating around, but what perennially sells, and what to expect from future, is pretty much charted. Vendors may push their Operating Systems by providing a lucrative development environment, offering features like “Shorter time to market”, and “Easy to write, easier to run”, but it seems, it’s clear as to what to expect from future.
In fact, interoperability is a very important factor these days. You can never be sure what platform your application needs to be deployed on. Gone are the days, when you could have safely assumed, that you would be targeting a specific section of market. If you have something that is useful, better have it running everywhere.
Virtual machines are good, but they never seem as fast, as a native application. Maybe, Virtual Machines will have their days when the processor makers dedicate a separate Computing Unit, memory included to offload all the Virtual Mschne running overheads. Yeah, some day, that will happen too.
But then, wishful thinking aside, we still have a good 5-10 years to write and use native desktop applications.