The Downside to Apple’s Silicon
It’s Not the Hardware… It’s the Developers
I know I’m probably going to get lynched for this post, but I think it needs saying. Hopefully, it will change things, though considering how small my blog’s reach is, I very much doubt it.
There are two main reasons for this. Firstly, ARM and x86_64 require different feature sets to get them working, and secondly, different systems require apps to be written in different programming languages—and developers don’t seem to want to learn new ones.
Apple is pushing for developers to move from Objective-C to Swift (and if I’m reading the signs right, at some point in the not-so-distant future, they will make it Swift-only), while apps for other platforms are often written in C++ or C#. Then there are web apps written in HTML or PHP.
As a non-developer and a newbie to writing apps, I find Swift relatively easy to learn, and I hope that one day it becomes the main programming language as more manufacturers switch to ARM-based architectures. For the time being, though, I think we are going to have the same problems we have now for at least a few years to come.
The Developer Divide
For example, as I’ve mentioned before, I use a piece of software called WYSIWYG to help me design lighting rigs for shows. The problem is that the developers (Cast Software) have developed the software for Windows only and have no intention of bringing it to macOS, which is really annoying as all the other tools I use for event production run on macOS.
I really do hope that Apple’s move toward ARM-based Macs helps shift developers to create multi-platform applications, but I can’t see it happening any time soon. The only apps that are truly cross-platform these days are games, a few productivity apps, and development platforms like Unity and Unreal Engine. Both of those make it really easy to publish to all platforms with the tick of a box; if only that were the same for other development environments.
My thoughts on this could well be wrong, and if they are, tell me why in the comments. Perhaps developers only stick to one platform because they don’t feel there is a big enough audience elsewhere. But that is where I think they are wrong. If you don’t write software to be cross-platform to begin with, you’ll never know where your biggest audience is, and with the rise of the iPad and other tablet devices, they should be branching out.
A Potential Path Forward
I know Swift works well on macOS and Linux, and with Windows moving to a Unix kernel, it seems logical that Swift could run well there, too. It’s open-source, so it wouldn’t cost Microsoft anything to allow its implementation in Windows, and it would help developers create high-quality, cross-platform apps without having to learn half a dozen different programming languages.
One way we could encourage developers to use Swift is to have courses at college teaching students how to use it (it’s already done for C++, C#, Java, HTML, and PHP). I really think that could help encourage more developers to deploy their apps on many platforms, not just one. I should point out that it’s not just Windows developers who are guilty of this, but also those who develop only for Linux or macOS.
I hope that one day, in the not-so-distant future, it won’t matter what operating system or hardware you are running (so long as it’s powerful enough)—you’ll be able to run whatever app you want on whatever platform you want, without having to run virtual machines. It would make working with others so much simpler. I’d love to not have to export items I’ve created in Blender on macOS to another format just so they can be opened in another application on Windows, only to have to convert them again to insert them into WYSIWYG.
Sorry for my rambling rant—I could probably do with a map to navigate this post! Let me know in the comments below what you think is holding developers back from deploying their apps across platforms.
