Programming on a Mac
I recently decided to buy a 2020 MacBook Air as a new computer to program on. This was an expensive choice that I dwelled on for about a month before I finally pulling the trigger. There was a number of reasons I wanted to buy a new MacBook. First and foremost, I wanted to maximize the time I spent programming. I wanted a computer that I could take on the go. Once the pandemic finally ends, I will be transiting to work, giving me about 2 hours where I can code. Additionally, I discovered that I really enjoy going to coffee shops and other social places to code in a pleasant atmosphere. Besides this, I am also a person who hates waste. I always try to use something up as much as possible. I decided to exploit this by getting an expensive programming tool that I would be compelled to use frequently. It worked! I have found that I genuinely enjoy the time I spend every day using the MacBook. A lot of the time is spent on learning steps adjusting to a new computer, especially in the context of programming, which I will discuss later. The rest of the time is spent programming. I have been able to bring my laptop to my friends’ places when we are just hanging out. I can also program when I decide to throw on the TV for a bit. Finally, I had already programmed on Windows and Linux, but have never programmed on an Apple OS. I anways wrote code that would execute on every OS I could get my hands on, and now this also includes Big Sur.
Buying an Apple device was hard for me to do at first. I am not a fan of Apple’s attitude towards right to repair. I think this is a dispicible and harmful tactic specifically designed to line Apple’s pockets. They have attacked local laws around the world to make it difficult for independent repair shops to repair your hardware. This limits your choices when it comes to repairing your device specifically to them, or Apple sanctioned repair shops. Apple technicians have already been caught recommending for users to replace their device for full price instead of performing minor repairs like unbending a pin, or replacing a cheap component. This results in tons of good condition devices going through a recycling process that is far worse for the environment than making a repair that might extend the laptop’s life another few years. I am also not a fan of the company using proprietary ports forcing you to get a costly adapter if you have any hopes of connecting existing appliances to it. But on the other hand, I share a few values with them. Most importantly, I appreciate Apple’s commitment to privacy. Both the mobile and desktop operating systems have a lot of security built into them. Whenever an app attempts to access a certain directory, you have to grant it permission. Whenever an app is not in the app store, it informs you that this is an unknown app. Apple has even fought legal battles against the US government to prevent building a back door into their encrypted devices. I also appreciate their design principles. They have recently had lots of success in creating elegant devices that are at least externally well built, and are a pleasure to work on. Even using the operating system is fun, and polished. I was so torn on this choice, but in the end, I had to acknowledge that many of the other tech giants are equally bad or worse. I am begridgingly buying a machine to fill a specific gap, while aware that you can build a custom computer with superior components for far cheaper, and install a superior operating system, like a customized Linux distro.
Programming on a MacBook is a new experience. There are definitely some similarities to Linux, such as the terminal, and how you sometimes have to install binary Python packages, like in the case of Psycopg2-binary. Despite this, there was also a lot to learn. I found that using Homebrew is also mandatory, as there are many programs you might need to use such as PosgreSQL which are not available through the AppStore. Homebrew kind of reminded me of all of the different package managers you might find on Linux. Another recent example is when I was trying to install Jekyll on Mac. I found that Big Sur came with an outdated version of Ruby, and that I did not have permissions to alter the items in this directory. Because of this, the only way to install Jekyll is to install a second installation of Ruby and use this to install Jekyll. So at this time, I am still spending a lot of time learning about Big Sur.
I will be making some operating system related posts in the future, discussing the differences I have observed. I wanted to talk more about Homebrew and the various Linux package managers in the future as this was a big of a learning curve for me. I also find that I have to install certain packages several times, especially if I am trying new Linux distros so I will be covering more topics like that to hopefully help some other people out. Take care!