This post summarizes my (almost) week of using a Mac, as a long-time Ubuntu user. You can read why I tried this experiment here.
Thursday – Day 1
The first annoyance started when I connected the MacBook up to the USB type-C hub I had purchased. While the hub did its job well (more on this later), I had to hook up another USB type-A hub to the USB type-C hub, to be able to add enough USB ports to also connect my webcam and my microphone. So now this is the mess of hubs behind the MacBook, just to get all my peripherals working.
I will gladly concede that I would still need to use at least one USB hub if I was using a different laptop. However, the Asus Zenbook I used to compare to the MacBook has a built in HDMI port, USB type-A port, and 2 x USB type-C ports, so all I would need is one USB type-C to USB type-A hub, and I’d be set. So while this is not so much a complaint about the MacBook, more a reminder of why I have a desktop workstation in the first place, I do not like Apple’s approach when it comes to laptop I/O.
While we are talking about Apple’s way of doing things. If you’ve read Walter Isaacson’s biography of Steve Jobs, you know that Steve has certain opinions about keyboards. And it’s one of the reasons I dislike Apple products. Not being able to use CTRL + C and CTRL + V on my wired mechanical keyboard is getting old, really old. Not because I have to learn a new set of keyboard shortcuts, but because the Command key on the MacBook (or in my case, the Windows or Start key in a regular keyboard) is so close to the C and V keys that it actually slows me down each time I have to copy/paste. And don’t get me started on selecting lines of text!
Then on to my day-to-day work. When I’m editing content, especially if I’m working across two documents, I like to use Ubuntu’s split window pane feature to have two windows side by side on the screen. macOS has a “Tile Window to Left/Right of Screen” option, which I’ll admit is cool. Originally I wasn’t sure that I liked that it goes full screen, but it’s quite nice for distraction-free side-by-side work. I stumbled across the fact that if I move the mouse to the top and the bottom of the screen, I can access the dock and the window menus, so that’s a nice touch. Unfortunately, because it’s distraction-free, I can’t see the time without moving the mouse to the top of the screen, so it’s not ideal to use it before a time-sensitive activity, like a meeting.
I was hoping there was a way to do a simple split-window pane on macOS, similar to what I was used to on Ubuntu and Windows. It turns out there isn’t, leading me to the 2nd piece of software I had to install to get some basic functionality that already exists in Windows and Ubuntu.
I also really don’t like the fact that Apple moves any application menus to the main menu bar at the top of the screen. This is fine if you are working in one application at a time, but the minute you switch to using multiple applications, especially in split-window mode, it becomes annoying. If you want to access the menu, first you have to click on the application so that its menu becomes active in the menu bar, and then use the menu. In Ubuntu and Windows, the menu is attached to the application, so you can just click on the menu in any open application.
And my final thought of Day 1, as I shut things down for the day: Why does
exit not just exit the terminal? Why do I still have to close the window?
Friday – Day 2
OK, so I’ve had a day now to get used to the little differences on macOS and install software to solve any immediate problems, so I expected things to go better, which they did. I was doing mostly the same type of work today as I did Thursday, so no real problems to report.
The one issue I am having today is that there seems to be some delay in my mouse response time. Not sure if this is because I now have the mouse hooked up via the USB hub, so I’m going to try and move things around a bit on Monday.
Weekend – Day 3 and 4
The weekend is when the MacBook shines. As a day-to-day workstation, especially for the type of work I do, I’m still not convinced it’s better than Ubuntu. But as a laptop, I love it. The battery life and power management are amazing. I unplugged it from the power charger when I left the office on Friday, and it lasted the entire weekend. Granted I didn’t use it full time over the entire weekend, but I was using it for browsing, emails, writing, and some development-related tasks. On the downside, I did have to spend a lot of my time trying to find the right printer driver to get my home printer installed.
Monday – Day 5
This week I’m going to need a development environment, as I’m testing out some code. I’m looking for something as quick and easy to install as it is to install a LAMP stack on Ubuntu.
Now, before I go further, I need to explain something. One of the reasons I first switched to Ubuntu was how easy it was to set up a PHP development environment. It’s literally 3 commands:
sudo apt install apache2
Install the MySQL Server package.
sudo apt install mysql-server
Install the PHP, and the Apache and MySQL modules for PHP.
sudo apt install php libapache2-mod-php php-mysql
More recently there’s even the option to install all these things with one command, using
sudo tasksel install lamp-server
Using either of these two options will have Apache/MySQL/PHP installed, configured, and working on your Ubuntu machine, hosting the files from
/var/www/html and accessible from your browser via
Now, before I get some “well actually” replies, yes, I do know that to make this work for different local sites requires some Apache vhost configurations, but to be honest, even that doesn’t take long. In fact, I’d argue that the install time for Apache, MySQL, and PHP on Ubuntu takes the same amount of time as installing any other local web development environment on a Mac, and the time it takes to manually configure a new vhost file for Apache takes the same time as provisioning a new site anywhere else. You can even script it and have a new site provisioned in seconds.
Anyway, the point is I didn’t need all that, I just needed a working local web server, to install WordPress and a specific plugin. I first tried to use DevKinsa, and the sites it created were either slow as molasses or completely non-responsive. I’m not sure if this is an M1 issue or not, but waiting 30 seconds for wp-admin to load ended it for me. I then installed Laravel Valet but was surprised to discover that Valet does not come with a database engine. So I ended up trying LocalWP, which worked the first time, so kudos to them.
Honestly, I feel like getting a Mac set up as a development machine is as much of a PITA as it is in Windows. I don’t know why people like this. I feel like every attempt to make development easier on a Mac is a direct response to the Apple OS making it as hard as possible to use it for this purpose.
The whole mouse delay thing is still there, but I’ve already wasted too much time to dig into it.
Monday is meeting day at work, and that gave me a chance to test out my Logitech webcam and Samson microphone, via the USB type-C hub. Either it’s because I was on the wifi, or it’s because my camera and mic are connected to a USB hub, but the camera quality is terrible. I even tried the MacBook camera, which wasn’t much better.
Today also introduced me to a piece of software #3 I needed to install to get some basic functionality working, namely Android File Transfer. But I could never copy any photos from it, as the app hang on the spinning rainbow trying to access my photos.
Tuesday – Day 6
Today started with me needing to research how to set Git to default to the Nano editor on the command line, so that I could submit a Git commit. I probably can’t blame Apple for this one, it’s probably baked into the default terminal.
I also discovered why I was having issues with my mouse. Honestly, I’m actually surprised it’s possible to even disable the mouse acceleration via the command line. Doing so made things a lot better, but still not as “real” as I’m used to.
And that’s when I gave up
At the end of day 6, I disconnected the USB hubs, packed them away, and hooked my monitor, keyboard, mouse, webcam, and microphone back to my workstation. The thought of using macOS for another full day was just too much to handle.
I tried. I really did. I wanted to give macOS a chance, and see why so many people rave about it. But it’s just too restrictive. I don’t want to have to install a third-party package manager, just to install some basic software development packages. I want to be able to configure things exactly the way I want them and not forced down a path by my operating system. I want to be able to connect whatever external mobile device I have to my computer, and it just behaves exactly like an external drive to browse the files. I want the mouse to move in relation to how my hand is physically moving. And I want to be able to use non-Apple peripherals and not experience a degradation in their performance.
If this was 12 years ago, and I was tying macOS as a replacement for Windows, then maybe I’d have seen the point. Unfortunately at the time, Apple products were prohibitively expensive, and out of reach of mere mortals like myself. I can appreciate how Apple’s full control of both hardware and operating system means a better overall experience for users used to the Apple way. There are just so many things that Ubuntu does better in my opinion, that I’m struggling to find a solid reason to stop using it.