All the buzz these days are about web applications and web development and the cloud!
What about desktop applications? Are they still a thing?
In short - Yes, yes they are!
When is desktop the right choice
There are many applications where desktop applications are the right choice. Technology for web applications are constantly pushing, or trying to push, the boundary - but it is still there and it will be for a long time.
Notable examples of desktop applications are:
- Adobe Creative Suite (Photoshop etc.)
- Microsoft Office
- Unity, Visual Studio, Eclipse etc. (development tools)
The Adobe Creative Suite is using a huge amount if resources on the machine when running. Their suite offer image and video editing along with DTP applications which all handle huge amounts of data that require storage (harddrive) along with a large amount of working memory (RAM) - the more the better. When interacting with these applications some elements need to be real-time in order to get selections eg. right. Sucking up the resources required for these applications would drain a shared system beyond repair or require very struct quota policies - it just works better when running locally.
Many office applications can run fine as cloud applications served through the browser. A great example of this is G Suite - but the cloud versions of these types of applications are somewhat limited. As an example Microsoft Excel can connect to SQL databases or ODBC data sources and query for data - this process can be very time consuming and require access through a local network eg. that just isn’t possible for a web application. Data access and/or bursts in CPU usage ruins the case for cloud in these cases.
Development tools are covered by all the other cases. Resource requirement and access can not be limited when developing certain software.
Software development in the cloud provide a chicken-and-egg problem - it is possible to write the code through the browser and compiling could also be provided quite easilly - but when the program has been compiled and is ready to run it often needs a specific architecture, some data and permissions to run eg. - running such software in the cloud is often not possible.
There are many cloud based games. And it is very possible to play games through the browser - flash is dying, but games in the browser will probably never die.
But the games delivered this way is a very specific kind of games - technology wise.
Games for running on a desktop machine often require full or almost full control over the CPU, GPU, RAM and reading huge amounts of data from the hard drive. The best attempts to try and deliver these types of games though the cloud is streaming the raw video letting the actual game run on a dedicated machine somewhere else. Many games, like first person shooters, require very fast responses from the players and the latency introduced by streaming the game makes this option unreliable.
The desktop will not die any time soon.
When you develop your applications you must weigh the requirements, pros and cons, and decide which platform you want to target.