For years now, speculation on the eventual demise of the trusty desktop application has been going rife and rampant, yet as far-fetched as these predictions may initially appear to be, when one honestly takes the time to consider their individual habits, the arguments hold a remarkable amount of water.
After all, outside of the work environment, when was the last time that you actually sat down in order to use a laptop or your standard desktop computer? To many readers, it most certainly will have been a while.
Naturally, therefore, the situation spills over onto our desktop applications as well. Microsoft Word is facing fierce competition from Google Docs, online applications such as Mint and Personal Capital have already given Quicken a most serious run for its money, and even grade-A programs like Photoshop and InDesign are starting to have their reigns threatened by formidable web contenders.
Consequently, desktop technologies are effectively on the back burner, yet this, as one would expect, is a dangerous path to follow, and some of the cracks are already beginning to show.
Not So Fast
Of course, the bitter reality here is no matter how far we’ve drifted towards the cloud, some tasks remain entirely dependent on our desktop applications. Whether you need to access your local data, tend to your personal hardware or keep your company’s network secure — or even run a modern, power-gobbling video game — doing so without desktop software is simply not a feasible option. Essentially, the main problem is it appears that innovators have forgotten about desktop applications and are now solely focused on web-based software solutions. This poses a unique challenge for customers who are struggling to determine the right technology to use for their modern desktop applications.
Some Options for Desktop Applications
So with this in mind, for companies who still do depend on their desktop applications, Software Planet Group would now like to lay out a few of the best-placed technological avenues, along with their respective pros and cons:
.Net Core + WPF
.Net Core is an open source, cross-platform implementation of the .NET framework. It not only has a large community of developers, but is also actively maintained by Microsoft. While this may not sound like much, it does in fact cover most application types that your company may choose to develop.
At the moment, however, the recently released .Net Core 3 is only capable of supporting WPF applications on Windows. Still, this allows you to take advantage of easy deployment, control rotation, hardware acceleration, HD video playback and XPS documentation for high-quality printing.
Another notable disadvantage, it must be said, is that this technology is not very fast and is wholly dependent on the .NET Framework. Nevertheless, it remains a solid candidate for the Windows operating system.
Java + JavaFX
One of the gold standards of software engineering, Java offers extremely high portability, as applications written in this programming language in particular are able to run on Windows, macOS and Linux systems as well. It is a free, stable and mature technology, with support for multimedia, multithreading and network capabilities in addition to a massive online community of avid programmers ready to help.
This paired with the modern JavaFX technology enables programmers to write impressive desktop applications with far less code, and consequently, time.
If your company’s target users are found across all major OSes (Windows, Linux and macOS), then Java could certainly be an excellent option for you. As a con, however, keep in mind that Java Virtual Machine will first have to be installed on all client computers.
Qt framework + C++
Qt (pronounced cute) is another excellent framework for building cross-platform applications with little to no changes to the original codebase. In fact, this may be accomplished through a simple recompilation of the final desktop app.
Because Qt programs are written in C++, developers can exercise a great degree of control and are able to benefit from numerous existing libraries.
Ultimately, therefore, compared to classic C++, Qt decreases the time to market and simplifies development of intuitive desktop experiences.
If you are looking for the speed of a native application with the additional ability to run on Windows, Linux and Mac (with minimum changes), then Qt might be a good choice for you. Just remember that native development in C++ calls for experienced and highly paid developers, and compared to other high-level languages such as .NET, C# or Java, will likely take programmers twice as long to complete.
Electron
Developed and maintained by Github, Electron (previously known as Atom Shell) is also an increasingly popular platform for building desktop applications across the OS divide. The open-source framework takes a hybrid web/desktop approach, supporting CSS, JavaScript and HTML technologies — so essentially, if you are able to build a website, you can also develop an Electron application, as the framework will take care of all of the hardest parts.
Electron offers a shell for a web-based core that essentially behaves as a desktop application. As a result, using nothing but JavaScript, developers can quickly build applications for Windows, macOS and Linux. However, it is worth pointing out that you will likely pay for this choice with a number of web-related problems, like the inability to process large outputs, and a perceptible measure of slowness.
Delphi
Though often perceived as legacy software, to this day, Delphi possesses one of the largest commercial ecosystems. It is also one of the easiest and fastest development tools around, enabling companies to build their applications with far fewer developers. Nonetheless, it is important to realise that there is a shortage of developers who can work with Delphi to begin with, especially when compared to some other more popular technologies.
Understandably, therefore, Delphi is only rarely chosen as a suitable technology for desktop applications, yet this is not a technical limitation, but rather a problem of popularity. In reality, it could certainly be a great candidate for Windows development, as it generally results in incredibly fast applications. In the long run, however, be aware that you could end up with a maintenance problem, as the amount of available developers is likely to dwindle further.
Agent Approach
As for those who require a desktop application but are not about to compromise on all the benefits of the cloud, there is always the agent approach. In this model, a desktop module, or agent, is installed on the user’s computer in order to perform a specific localised action, while the bulk of the application itself is available online. A common example would be that of a time tracker like Tahometer, which makes use of desktop software to track local user activity.
The Desktop Application Is Still Kickin’ (and Cooking)
Sometimes, our problems are too tricky to be resolved with some trendy web-based solution. Thankfully, however, on the back burner or not, desktop applications are still very much alive and cookin’.
By taking heed of SPG’s suggestions, you can build with the very best technologies that are still being actively maintained and retain the dynamism that the marketplace so heavily demands.