Desktop applications in a world dominated by the WEB

My day usually begins with a cup of coffee while checking trending topics on the web. I then play some music from Spotify’s web player while I get ready for work. When I sit on my desk at the office I open several Web based applications essential to my work and start doing stuff on my ToDo list.

One day I got thinking that I can optimize my workflow and I installed an app monitoring software to see where I spend most of my time. Unfortunately, I picked a subpar application for that and the end results weren’t that helpful… that did make me think though… 85% of my time was spent in the web browser. 5% in desktop apps and 10% in messengers and my email client. 85 % of my time spent in the browser? That didn’t seem right… I dug deeper and did a week where I consciously monitored where I was and what I was doing. Well it turns out the stats didn’t lie. Everything I used was mostly based in the browser. CRMs, text editors, corporate portal, certification materials and all kinds of things essential to my work were web based. It seems everything is Web and mobile based nowadays.

I actually compiled a full list of the desktop tools I am actually using:

  • Visual Studio

  • Visual Studio Code

  • Eclipse, albeit a bit modified

  • Messengers (Skype, Telegram, Slack)

  • Outlook

  • Browser

  • Terminal

That’s it....

Judging by that I started asking myself, why would anyone want to use desktop software nowadays? How do we actually integrate desktop applications to back-end on the cloud? Do we even need desktop software at all? Now, I was a bit sceptical as to the answers of those questions, but then I started thinking about it…

Offline availability

cord-cut.jpg

Everything is great and functional until your Wi-Fi drops… And depending on where you work, that is a real scenario. If everything we do is Web related, we inevitably rely on our internet connection, and sure, you can always fallback to a mobile hotspot from your phone but, if you have to do something urgent and you have to use a lot of data, that isn’t a very good option. Some web technologies try to solve this problem, but still have a long way to go before they are actually useable in this scenario.

Having desktop software with an implemented caching mechanism and synchronisation logic once back online is a real benefit. Think source control. Everything kept under source control is cloud hosted (or on premise, depending on your source control company policies). Nevertheless, we mostly work on files offline and once our work is complete we sync back to the server.

Now, of course, the real world scenario is a bit more complicated than that, especially when you have to implement the sync logic yourself, but still, with enough effort and good app architecture, there is no reason to not do it.

Having the option to do your work even when not connected to a network is a luxury nowadays, but doesn’t have to be.

Security

security.jpg

Covering the offline benefits, we can’t go without mentioning security. Every system connected to the internet is vulnerable. No exceptions. Having the ability to sync up on your terms, is invaluable for companies where security is number one concern. Of course, this isn’t the most common scenario, but when it comes to big amounts of corporate or government data, this may be the only way to go.

Performance

engine.jpg

Correct me if I’m wrong, but I am yet to meet a video or image editing professional using a web based tool… The simple answer to that is, you can’t really use the full hardware power via a web page.

It would be like using an electric scooter in a drag race...

Sure browsers are getting better and better at syphoning system resources, but when it comes to good hardware acceleration, desktop wins every time.

Of course, that doesn’t mean you can’t use online tools to complement such software as well. Most of the software nowadays is Cloud enabled, most of the time for saving settings and access to a cloud based file system, but that isn’t the limit. You can still benefit from the numerous Web based services out there if you design your desktop app architecture in a meaningful way.

I am sure there are some other reasons as well, but using my software developer’s prism of view, that’s quite enough for me to not dismiss the need of desktop software and even encourage it in some cases.


App architecture that works

Read the full blog post on Nikolay’s blog.