My experience when changing from macOS to Ubuntu 20.04
Turns out that moving from macOS to Ubuntu 20.04 was a great thing. Improved performance, better hardware support, and more
I've been using a Macbook Pro for work for about 7 years now. My first one was a 2013 model and my current one is the 2018 model. In the beginning it was a breath of fresh air compared to the old Ubuntu based desktop computers we were using for work in the past. However, while I think that the Mac experience was great back in 2013 it has become worse over time. From excessive thermal throttling to bad keyboards and dangerous OS updates, it has been going downhill for a while now.
During the Covid 19 epidemic I've had some spare time on my hands so I decided to give Ubuntu 20.04 a try on my home gaming computer. Here is what I learned.
Bad Docker performance
Once of the major problems I have with development on a Mac is the poor Docker performance. I like to use Docker for development, especially for databases. I keep a docker compose file around that launches the containers I need like Postgres, Redis, and so on. I don't run the actual code in the Docker container but I guess I should be doing that too. Doing this on a mac has some of the benefits but the poor performance is just awful. We are talking about something like a 50% performance loss when running in Docker containers. Not to mention that the docker virtual machine on mac is memory hungry and takes a while to start. We used to run the same setup in docker at work for our development but the poor performance was finally too much to bear. We even tried to move the code to Docker containers as well but that made things even slower.
Once you go back to Linux things will improve dramatically. No more memory bloat, no slow startup, and huge performance improvements. We are talking about native performance here so everything works perfectly,. That was a huge breath of fresh air for me and that alone would probably had been enough to make the switch permanent.
Performance improvements
My Macbook Pro is the 2018 "premium" model. It has a an Intel I9-8950HK CPU with 6 cores in it. My desktop computer has a 6700k. While the laptop CPU has better specs in general that is not the case in real life use. I assume this is because it is a..well...a laptop CPU and of course the thermals. The 2018 i9 Macbook Pro is notorious for having very poor thermals. Of course, there is only so much you can do with a high performance CPU in such a small body like the Macbook but still, it is quite awful. Upon any kind of realistic load it will hit 100 degrees Celsius and start throttling. This is to be expected but it will also do this when running turbo boost on a single core. My desktop computer has a "gaming grade" cooler in it so it runs nice and cool. It will handle full load on all cores no problem. In general use when running tests for example the desktop computer is about 25% faster in. It really does make me want to upgrade the CPU though, perhaps to a Ryzen 3900x or even a 3950x. Not sure why but It seems like a good idea.
Hardware issues
I have been using a Macbook as my daily work computer since 2013 and in my experience the hardware on them works well enough(apart from the keyboard) but if you connect non-Apple hardware to it it might have problems. For starters, finding a docking station that does the job well was not fun. I have two 1440p monitors connected to my Macbook at home and the main issue I'm having is that they keep turning themselves off every hour or so. To fix it I have to reconnect them and sometimes even open the lid on the Macbook itself. I've tried with several different cables and nothing has worked. Extremely annoying.
Another issue is that both monitors have a refresh rate of 144hz which the Macbook cannot handle. If I do set anything about 60hz in the display settings the screen goes black and then I have to reboot to fix it for some reason.
I'm happy to say that Ubuntu 20.04 recognized everything in my desktop computer out of the box with zero problems hardware wise. The drivers for my Nvidia GPU are included in the latest release of Ubuntu, no separate install needed, and worked perfectly. Both monitors work in 1440p with 144hz support. No issues at all. We've made some progress for everyday Linux use for sure!
Linux on the desktop?
Everything was going well until the installation of Ubuntu was complete and I rebooted the computer. I got a login screen even though I set the thing to auto-login. When I logged in it kicked me back to the login screen again in an endless loop. This is a known issue and as far as I know it has not been solved. I do wonder how that made it past testing though...
Software use: Gnome vs macOS
As I mentioned earlier I've been using a Macbook for development for about 7 years now. I don't think that I can remember a single significant upgrade to the everyday use for me in a macOS upgrade since then. Except perhaps dark mode...
Every single system upgrade has broken something in a horrible way for me on the Macbook so every upgrade is dreaded.
I find that the everyday use experience is fine on Ubuntu. The file manager has everything you need and I haven't noticed any problems yet. We'll see what happens next time I upgrade though.
Missing apps
So far Ubuntu seems like a great deal! I do miss some of my favorite apps however. Like Alfred. I've build so many little automation scripts and such for it and I really miss Alfred. I know that there is a replacement called Albert but I haven't looked into it yet. It looks like a good option though!
I also miss Dash. Having all the documentation in the world available from anywhere is a great thing. I know that the Zeal project is a replacement and I will give that a try for sure.
Other than that I don't think I miss any apps except perhaps Transmit for FTP. I don't use FTP that much though so that's fine.
Even though my employer pays for the apps I need I still find it refreshing that every single good application is not behind a paywall. Free software and all that you know.
Terminal emulators
On my Mac I like to use Iterm with the sliding-from-the-top feature to access my terminal with a single keyboard shortcut. Turns out that in the Linux world there are plenty of alternatives to solve the same problem. I'm currently using Tilda for this. It has the same slide-down feature as Iterm and seems to be an overall great terminal emulator. The only issue for me so far is that Tilda doesn't seem to have a "normal window" feature. It is all about the slide thing. Iterm has both. This means that I use both Tilda and the Gnome terminal. A bit annoying but it works.
Conclusion
I've been using the Ubuntu setup for about a month now and so far it has been a pleasant time. It has everything I need for my day to day development needs and the performance has been rock solid. I'm not quite ready to get a "Linux laptop" yet though but we'll see where the Macbooks go once they start using their own ARM CPUs. Perhaps I'll switch once I need to upgrade my space heater to something better.