Is Desktop Development Dead? Or Still Worth It?

I started my first programming job in October 1981, developing desktop software on Apple II and Act Sirius. For the next twenty years, although I changed jobs, the tasks still involved developing desktop software—first on MS-DOS and then Windows.

But since the early 2000s, the number of web development jobs (and within the past decade, mobile jobs) has increased exponentially, and it sometimes seems that desktop development is now almost non-existent. Is the end of desktop development actually upon us?

Reviewing rankings of popular programming languages (such as the one produced annually by IEEE Spectrum), it’s clear that a number of the most-used languages are utilized in many different contexts, including web, mobile, and desktop; however, it’s pretty clear that most usage targets mobile and the web; just look at how Apple has been trying to desperately convince developers to build for macOS in addition to iOS and iPadOS.

The Advantages of Web Development

It’s kind of understandable why web in particular has taken over. When I worked as a mobile developer in the taxi sector (from 2014-2017), I had a colleague who’d developed and sold taxi-centric server software for roughly 20 years. This desktop software let operators accept bookings from a phone, and then scheduled jobs to a fleet of taxi drivers.

The software used to work in conjunction with specialist radios in cars, but since Android phones came along, the platform mutated into an app-and-server combination that tracks journeys, displays bookings, and integrates with Google Maps software.

This taxi server software is written in VB6 and sold for Windows 10. My former colleague has to install it on PCs with many customers across the UK; he spends a fair part of his week visiting them and performing support, installing updates, etc. Most are small firms and don’t have technical staff of their own, so they rely on him. Being a one-man outfit, he drives between 500 and 800 miles a week as part of his job!

Over the last few years, he has seen rivals come along and take business from him with web-based systems. These have many advantages compared to a desktop system. No on-site support is needed, as they all use web browsers. A website can be amended or upgraded anytime, and clients can switch their server to newer, faster hardware without customers even noticing.

His system works with local servers and the taxi firms control all their own data. But rivals now offer mobile apps running on cheap Android phones talking to centrally located servers. As Uber has shown, taxi firms don’t need local systems to run their fleets. The same web-based system can work for different firms all over the UK. As more customers sign up to a system, it can scale up.

The web and mobile have made massive inroads into areas that used to be dominated by desktop. Although Web UI has never matched the versatility of desktop UI, it hasn’t really needed to. The “thin client” that was once thought so desirable back in the 1990s is now a reality. For instance, Microsoft Office 365 is available in both web or standalone versions. If you were Microsoft, wouldn’t you prefer the recurring subscription of the web-based application rather than the “once every few years” upgrade purchase of the desktop version?

Conclusion: Desktop (Barely) Hanging On

It’s not just the technical advantages of web/mobile but the financial incentives of getting regular subscriptions that is shifting many developers away from desktop. Ironically, the popularity of the Python language (and the recurrence of C++) with artificial intelligence (A.I.) development, including machine learning and Big Data, may yet save desktop development from dying away completely. The JetBrains survey of Python development in 2018 showed data analysis as the most popular (58 percent) with web development at 52 percent, machine learning at 38 percent and explicit desktop development at just 19 percent.

Also, some large companies and banks in particular still have a need for bespoke desktop software.  You wouldn’t write high-frequency trading software to run in a browser app.

Another strand of development that may bring desktop and browser development together is WebAssembly.  Eventually, desktop applications will be browser-enabled through transpiling to WebAssembly, though we’re a little way from that yet. Desktop development might not be what it was, but it still has the power for many developers’ specialized needs.

23 Responses to “Is Desktop Development Dead? Or Still Worth It?”

  1. Oddly, there is a lot of work out there that can only be done by desktops. I’m doing a re-write now of some client package that runs on a desktop and runs a system distributed over RS-422. And the end-customers don’t want any of the system to ever conneect to the internet, so a limited amount of remote work is done using POTS and analog-modems.

    My favorite programming language for the desktop is C#. But I’m gradually shifting away from it. The problem is that it isn’t portable. It is locked-into the Microsoft stack, and given the trainwreck of Windows 10 being the only and final release of Windows, with all kinds of unwanted and undesirable features forced into the OS, and the complete lack of portability to Linux, the only thing left to do serious systems programming in is C++, and that isn’t very portable, either.

  2. Jacques

    I’m still using desktop (WPF) for some things. We have an app that runs on a PC on a factory floor and it was just quicker and easier to write a desktop app for that. Stability is also important and in the past we had some issues with web apps in that area.

    When I just want to quickly make a utility to do something for myself it’s usually a console or desktop app as it’s just quicker and easier than a web app.

  3. Christian

    There are a lot of famous examples for desktop programming missing in the article: photo editing, video, audio, games and other 3D related development. That is a massive market for software desktop development and I don’t really see these tools migrating away from it.

  4. Mike Winiberg

    Also, as is so often the case these days with most tech firms and, indeed, with government, the premise is that everyone is on-line all the time and that such connectivity is fast and reliable. There are swathes of the UK where mobile coverage is poor, non-existent or has no data (even within a few miles of the capital) and broadband is also either slow or not available.

    Likewise when travelling on the tube or trains, through tunnels etc.

    In those circumstances a mobile/web only application is less than useless. Many organisations insist on using text messages now as an authentication factor, but like email, SMS is not a guaranteed delivery service (in time or destination), and whilst I may be at a machine with an internet connection, a mobile signal might not be available at the same location, rendering the whole process useless.

    The ultimate joke is when a bank gives you an app to authenticate with, tells you it will generate codes even when no mobile signal is available and then complains that it can’t get on-line to generate the code.

    Add into this mess that there are several million people in the UK that – for one reason or another – cannot use or don’t have access to a computer, and the idea that everything can and must be done online becomes a serious limitation on their lives.

    Just imagine the uproar, even in today’s xenophobic UK, if all muslims (3.5 million) or all Jews (400,000) were banned from accessing the internet, and yet excluding a large group from access to all sorts of services etc is OK

    Despite what the cloud vendors will tell you, I think there is going to be a place for desktop development for a very long time yet – long past my ascent to the great bit bucket!

  5. I developed SoftMeter, an application analytics library, to be used specifically in desktop software, and I do suffer from this too little interest.
    It is even hard to target via advertising the desktop developers.
    From the variety of languages, I found that when Delphi is used, it is mainly used to create desktop software (e.g. ERP software) and SoftMeter is mostly used with Delphi.

  6. Patrick ingle

    In my 30+ years of development, I have technologies come and go. Some I was glad to see go. Others I missed. I also see technology making a full circle back. Instead I look for cross platform development preferably with one code based multiple platform. Java had the right idea on write once, run everywhere except mobile due to hardware constraints.The web app on the desktop is the most promising and with the javascript maturity a js framework is not mandatory as vanilla is can perform superbly. Node-electron provides cross platform support for windows, mac, and linux for desktop, while Cordova can use the same desktop code to create a mobile equivalent. Load balancing is market driven feature and using apache proxy and proxy balancer with node cluster, the developer can create a super cluster that can rival the Cray? It’s not so much to worry if desktop is dead, but more on the integration of new and legacy technologies.

  7. In fact, I would argue the opposite : too many people just want to create a web app, when it truly doesn’t make sense, it adds an insane amount of complexity. Not to say that if you’re looking at what’s happening behind the scenes on a web app, is manipulating the DOM in ways it was never designed to do.

    The web was designed for documents, not for apps. Everything on top of that is a bunch of workaround on top of workaround on top of workaround.

    You call React a platform? Manipulating data with React is beyond stupid and complex and some gotchas will make you wanna bang your head against the wall.

    Programming a desktop app is simply a breath of fresh air compared to doing a web app. And often that’s all you need. I’m not saying web doesn’t have its place — just don’t hurry to create a web app, just because it’s trendy and fashionable. It’ll end up being 10x as complex, and probably 10+ times more expensive in the long run.

    • I’ve been in the software game for more than 20 years. The fragmentation that exists in the industry today is 100x more than it was back then. There are more ways to build an app today then ever before. Yet the focus seems to be on the platform of the month rather than the solution it solves.

      Web technologies are a type of hack, just look at the fact that there is a new JS framework every other week. The presentation layer is a mess, while server side software is still software at least. WebAssembly looks like a possibility but again, it’s just a hack to get the browser to behave like a VM or plug-in framework. What’s the difference. Desktop software is still better performing, has real compiled code that lives on a computer.

      I use this simple analogy. We switched to Office 365, ask the users if they would rather use Excel, Word or PowerPoint in a browser or use the installed apps? It’s almost 100% installed apps. It’s why mobile apps are still so strong, the browser experience can only do so much. There’s a reason it’s called a “browser”.

  8. Automation software engineer

    Desktop software will never be dead so long as technical people needing to “real” jobs exist. Where do you think all the “frameworks” and compilers, ides etc get written? Not on a web app that’s for sure. For sure I can see a general shift away for the traditional MS dominated desktop market but that just means we need good cross platform desktop development environments with cross platform compilers that can deploy for a variety of online AND offline targets. Online is convenient but it is not the be-all and end-all like many salesfolks would have you believe. I routinely work on systems that are intentionally kept away from the internet and never see the web, ever. So ye, for lots of things it makes sense, and more of those use cases will come to light in the coming months and years but mark my words, desktop will never die.

  9. Well, wait for another couple of months for the new .NET 5 release (month of May I think) and you will be able to create Blazor apps that are multi-platform, and multi-target(or how is this called?). Bcs with the same codebase (UI in HTML, logic in C#) you can generate a regular Client-Server Web app, a WebAssembly Web app, a native(!) Android, iOS and Windows app, and probably also Electron and PWA app. So no need to learn different technologies and maintain different code-bases and no need for different tech profiles.
    Some of the Blazor targets are already available and can be used in production, others can already be tested in beta-mode, but in a couple of months, a new future starts, mark my words!
    And this all with the open-source, super-performant .NET ecosystem and can be developed with (the free) Visual Studio Community edition.
    Only thing to hinder the success is the existence of millions of ‘pure’ web devs that invested so much in JS-knowledge they don’t wanna change.

  10. Web only apps have always been and will always be slower than desktop apps its just physics. Your app can only operate as fast as the slowest component in web apps that JS and the network connection. WebAssembly will help the former, but even that is in many ways a desktop style app running in a shell. For us the ease of development, deployment, framework options, and speed will keep desktop apps in use for many years. Even enterprise mobile apps are desktop apps that hit a webservice of some type. Browserless development has many advantages and will not go away anytime soon.

  11. So because you have been developing web-applications you think desktop development is barely hanging on? Really? I won’t argue about the advantages you mentioned. I know a server application is not really a desktop application but do you really think back-ends are requests to (another) web-server? Developing a server application still comes to much of the same programming techniques (except the HMI stuff) as in desktop applications. All those lightweight web-apps are nothing more than remote HMI’s for a server-application. Others have already mentioned lots of other systems that run without a web-server. A web-application which does more than just showing static data always needs a server-application.

  12. Dan Sutton

    I use desktop development a lot, with the programs talking to a web service of some type, providing data access and backend functionality. I find desktop clients to be more secure and far more stable than web pages, and there’s none of that annoying fiddling around with HTML and CSS to be done, which, it seems to me, takes up 90% of web development time. I can throw together a desktop application in a tenth of the time it takes to create a web-based product, and the resulting software is more responsive, has a better UI and is a lot faster, since all it’s passing between server and client is data, without all that UI nonsense.

  13. jarred dimpleton

    I’ll always use a desktop, and only use the other junk only as needed. One reason is that I rarely take my desktop in for maintenance, since the hardware is very easily accessible and easily replaced (which is usually the issue). I can’t begin to understand why people want to pay hundreds, if not thousands of dollars to fix their computers (when you could just buy the part and replace it). Don’t forget, Apple is lobbying against right to repair, being the scumbags they are. Lastly, I might not be able to watch the Kardashians on the toilet, but then again, I have not really had the need to.

  14. If you work inside a corporation for internal systems, the desktop is FAR from dead. And even outside of that, there are still a mountain of things that are never going to be web… Handbrake much?

    Sun is calling and wants you to buy their netPC… Jeebus people, are you even at all aware of history and how it repeats itself?