It’s time to leave Mac OS
By: Joseph Grigoletti
Tags: Apple, Open Source, Mac, Swift, Linux

Apple Computer

I love Apple. I love their gadgets and services and commitment to customer service. But as a developer it is time to leave the Apple ecosystem. The most recent OS update (OS 11 Big Sur) is great in many ways especially if you have a M1 based mac. It is also a good update on intel based macs. It is a great update for consumers. But for developers it has finally become too frustrating to use on new and older Intel and Arm Macs. As a consumer, I love the Mac. As a student of Computer Science, I cannot use it any longer. It is annoying, unstable, frustrating, buggy, and unfair.

What do I mean? Every since 2018 have a security chip (the t1/t2 chip) that lock the computer down. In the name of security, this chip is a processor type that acts as a “secure enclave” (a fancy marketing term for a type of processor) that exclusively is dedicated to the touch bar, fingerprint reader, microphone, and webcam among other privacy based tasks. The code would go through this, go through encryption before going through the CPU and vice versa in order to verify the proper user is the one using the computer. This also means you lack the ability to make some basic changes to the computer as an Admin on your computer. Furthermore, when programming from the command line, and installing libraries, modules, or other forms of software sometimes they will work and other times they will not install because of lack of admin rights.

Apple wants to make great computers for consumers and make it good to develop apps for iOS, iPadOS, WatchOS, TVOS, and MacOS. There is a fundamental problem with this. Native apps distributed through app stores (which you must if you work with Apple on the majority of their platforms) may be a better experience, but the code is harder to reuse when you write for Linux, Windows, Android, or other operating systems. Swift and Objective C does not work cross platform. Apple’s most recent decisions is forcing developers to either go all in with Apple spending more money than merited and abandon other platforms or provide Apple customers with a subpar experience. Apple takes 30% of in app purchases and subscriptions, with fall to 15% after a year. There is no question that their recent changes with M1 and implementing the secure enclaves create the need for developers to deliver a bad product (electron apps which eat up RAM) or be forced with spend an unknown amount of memory to rewrite for the new platforms and give Apple 30% of their revenue cutting deeply into their profit margins, thus hurting consumers.

There is nothing wrong with app stores, moving from x86 to ARM, building your own Processor, etc. The problem is an obsession over control to the point where your own devices can no longer be a practical (let alone joyful!) experience for your community. Apple lovers have asked for some basic things :

1. move to usb-c universally and abandon lightening

2. allow app side loading

3. have a developer mode on iOS and iPad OS in which we could have access to the the kernel and things like the boot loader.

Doing 1 of the 3 above things probably would have kept me in the Apple ecosystem. I love my iPad, and Apple Watch and because of that I use an iPhone. Now, it is time to use Android and Linux. I simply cannot justify it anymore. There are a few good apps that I will miss, but using the Darling-the translation layer open source project (like wine for linux and mac) that allows to run mac apps on linux. As I have a valid license, I hope to get some of my favorite 3rd party apps running on my System76 laptop which I intend to buy soon.

Education is hard. Computer Science is hard. But the difficulties shouldn’t be caused because of the Marketing choices of the computer maker, rather they should be because of the content of the class material.