After years of developing custom tools and scripts, mostly for Windows and the Web, one thing became clear to me: I didn’t want to develop for the mess that the web is and has always been, with no clear indicator that’s ever going to improve. I also didn’t want to be labeled as a “devops” or “full stack developer”, as if being a humble developer was a thing of the past. Perhaps my (short) beard is too grey to accept that.
As Evan Miller justly pointed out in an article titled Why I Develop for the Mac (which I read many times and inspired me to write this post), developing for the Web chains you to a web server, which means you need to monitor, keep it updated and running or else you’ll be facing the rage of your users, some of which may depend on your service. Who needs that kind of stress?
So the choices were reduced to desktop, mobile, or embedded, and I pursued the desktop.
Desktop Applications are Almost Always Better
I love desktop applications, they feel real, they feel eternal, as if I can come back to them in years and they will still be available to me. I don’t get that feeling with web applications. They are ephemeral, in constant flux. It almost seems the UI/UX people don’t make their minds. There’s also no way to tell a web app you depend on will be available tomorrow.
This ephemeral nature of Web apps (or services) actually affected me while developing FreelanceStation. I integrated DevMate to handle payments and licensing, tested thoroughly prior to launch, and then… I received an email from the DevMate team (formerly acquired by Paddle) notifying me that they were shutting down their service in December 2019. I was just about to release FreelanceStation, and so had to waste my time de-integrating their stuff and moving to the Mac App Store as a licensing option. I should have known better, because when a competing company buys the competitor, there are enormous chances that they are going to kill the competitor.
If I had to enumerate the best software I have ever used since the beginning of the Web, 90% of it would be desktop applications. I think most of the Web apps I enjoyed using are no longer with us. That certainly can happen with desktop apps, but it’s much better to have an unmaintained piece of software than nothing at all. You can run old software in a VM if it came to that.
Since the beginning of my usage of computers, I always considered the best software the one that runs on my computer. Titles such as Photoshop, Scrivener, Maya, MODO, Blender, Affinity Designer, Autocad, SolidWorks, and thousands upon thousands of others are well known desktop applications. They are incredibly powerful and respected. Yet most new projects launched on Product Hunt are Web applications. It may be that new developers are being trained as “full stack developers”, or there is a perception that Web software is easier to develop or more profitable. I don’t know about that, but I also don’t want that each new piece of software made to be built with Electron or other Web technologies as it lessens the experience.
Why I Develop for the Mac and not for Windows
I love the Mac. It makes for a better computer than any other computer that has Windows installed. The huge difference is in the Operating System. Even better, the marriage between the hardware and the OS is what makes the Mac so great. So naturally being a Mac user I prefer Mac software. I also like well-made cross-platform software that integrates well into its host platform.
But if I have to choose between a native app vs a cross-platform one, all else being equal, I prefer the native experience. And that’s why I develop for the Mac.