Screnshot From JavaDoc

My employer agreed on buying me a new and shiny MacBook Pro, so I thought it’s a good time to reflect on my experiences with using ElementaryOS (Freya) professionally daily driver for almost a year.

TL;DR

I mostly enjoyed the ride. Elementary is fast, polished, functional and has outstanding multi-monitor support. On the other hand, it’s still a Linux and the desktop experience is not nearly as polished as on MacOS and Windows.

The Good

The installation worked flawlessly on my Thinkpad T460p (vPro branded Core i5-6440HQ, 16GB RAM, 256GB SSD, integrated Intel HD 530), and I didn't have to chase any drivers.

At the time of this writing, the current version “Freya” is based off of Ubuntu 16.04, so the internals should be familiar to all you Ubuntu fanboys (like me). Power users might sometimes run into trouble because uname -r doesn't return xenial, it returns freya, so anything that relies on that, like apt repositories, need manual intervention.

All my favourite IDEs (IDEA and VSCode) worked without any issues and with good performance.

The overall look-and-feel of ElementaryOS is very nice. Some would even call it polished, but I wouldn't go so far just yet. It's definitely the most aesthetically pleasing Linux desktop I know, but it still has some rough edges here and there.

The built-in apps are functional and pretty, albeit somewhat bare-bones. I will discuss this in the next section in more detail.

The one thing that took me by surprise was the outstanding multi-monitor support. I was using 2 external screens, one via HDMI and the other via DisplayPort (remember the times where laptops still had all kinds of different connectors?) together with the internal screen and ElementaryOS handled it just fine. It worked flawlessly with all TVs and projectors I ever connected it to, and it out-performed most Windows-based laptops in terms of compatibility. I know this is partly due to the well-crafted hardware of the Thinkpad, but it worked better than other similar Thinkpads running Windows, at least in my office environment.

One thing that is much nicer on Linux than on MacOS is the Docker integration. That's not a feature of ElementaryOS but it is still a strong point, in my book. MacOS doesn’t have access to the docker bridge, so you cannot access containers directly – only through published ports (or by monkey-patching docker, which somehow hardcodes this network config). This also means that you need to dockerize any application that needs to talk to any other dockerized app directly, which lead to quite some overhead in the beginning.

The Bad

The “AppCenter” has not yet reached critical mass, meaning that proper applications are few and far in-between. Most paid apps were not worth their price, in my opinion. I'm not sure that there is enough interest to ever make AppCenter a platform worthy of broad adoption, and the 70/30 (but at least 50ct) platform fee is a bit steep for a platform with such a niche target demographic (i.e. people willing to install a GNU/Linux desktop, a free, as in beer, product AND willing to pay for apps in an app store).

The built-in apps, such as Mail and Calendar, are forks of other popular open-source projects that now implement the ElementaryOS look and feel, but are rather limited in functionality. For the most part, they work fine, but you might be out of luck if you require more advanced settings or customization. In my case, the calendar was incompatible with my company email system and there was no way to make it work.

This leads me to the next point: the look-and-feel, though very nice, only works for apps developed for ElementaryOS specifically. Other GTK+ or Qt apps will look and behave differently.

The Ugly

At times, the configuration of wingpanel would get corrupted. This would happen with or without my direct interaction, e.g., after removing or updating applications or libraries. The effect was that the top bar and the app launcher menu were either frozen or would disappear completely. A forensic cat-and-mouse game ensued trying to find the reason for the mess.