For quite some time I had a desire to switch to Mac / OSX, due to several reasons. Mainly, the *nix environment always attracted me, Apple’s hardware quality and the general feeling of OSX. Lots of friends (developers) around me had Macs, and the tutorials from developers I enjoy watching were mostly recorded on Macs. Yes, there’s GNU/Linux, and I used it occasionally, but for reasons mentioned later, I couldn’t switch to only using it.

Half a year ago I switched jobs, moved from Windows to Mac only, being forced to relearn many things about my daily computer usage.

I know lots of developers, especially living and earning their salaries in countries where a new MacBook costs several average developer salaries, ‘dreaming’ of having a Macbook. Macbooks are attractive for many reasons, their esthetics, a good looking Unix with MS Office and Adobe software, retina displays, trackpads, battery life, software support, Apple’s warranty, etc. For clarification, I’ll refer to OSX as Mac.

I’ve been using a Lenovo Thinkpad T440s for the last three years (i7 4600, 850 EVO, 8GB RAM) with Windows 8.1 installed on it as my private laptop. On my previous job, I had a desktop with Ubuntu and then later a Thinkpad (L540) with Windows on it.

You may ask yourself “What does a ‘Windows power user’ even mean?” As it is not an official term, it’s somewhat subjective, but If I were asked whether I’m a power user, I’d answer positively. Even though I’m a developer, I wouldn’t call the majority of developers power users. Instead, I call myself one as I (was):

Memorizing and using keyboard shortcuts for literally anything

Using 3rd party tools such as Ditto (excellent foss clipboard manager for Windows) to improve productivity even more

Remapping keyboard buttons (e.g., single click capslock for escape, long press for ctrl)

Now you may argue that Windows power users should script everything with Powershell or that no power users are using Windows. And I may agree with you. But it’s something subjective so that I wouldn’t argue on this point.

I’ve switched between Windows and Linux many times, primarily to Ubuntu (Unity, Mate, KDE) and Mint (Cinnamon). I haven’t done much distro-hopping, but I did try a few more of them occasionally. As I was still playing video games (most prominently ten years of DotA(2)), using Microsoft’s Office due to academics, Adobe’s Photoshop for blogging and managing several WordPress websites I had a hard time getting away from Windows.

My last year and a half, however, have been mainly focused on development (Java/Go) so I could get rid of Windows and switch to GNU/Linux. On my previous job, it was a bit tricky as it was enterprise-y - our hardware was managed by a separate department, and I didn’t want to interfere too much, Windows was getting the job done.

I switched jobs and moved from Windows to Mac, getting a 2016 MacBook Pro (i5, ntb, 8GB RAM). Apart from things I knew were better on Mac, there are some things I didn’t like about it. After spending half a year with it using no other device, I feel courageous enough to speak about it. Courage, cough.

The Good

Hardware

I’d like to talk about software only, but as OSX is pretty much tied up with Macs, I’ll quickly go through hardware too. The display on Macbook is mesmerizing. Even though there are laptops with higher PPI co, on Macbook everything is appropriately scaled.

Touchpad, especially the gestures, and keyboard (except for the layout) are great, and battery life serves me quite well. Hardware-wise I like the laptop very much.

Good looking Unix

If you want a good looking (out of the box) Unix machine, Macs are at the top of the ladder. Global menus, consistent design, fonts, icons. You don’t need to change anything, out of the box it’s a piece of art. And most things will work as expected without glitches, unlike on GNU/Linux where you might have issues with specific drivers (Wi-Fi, Bluetooth, fingerprint, etc.), fonts, or you’ll be tweaking how it looks.

Bash / Terminal

I always knew that Bash is powerful, but quite often compared it to Windows’s cmd. I did use a 3rd party terminal back on Windows (Cmder) but the Terminal on Mac (and Linux therefore) is way more powerful. I try to do as many things from it: Vim, Git (I used GUI on Windows for Git), dealing with files, curl, httpie, etc.

Package manager

While switching from Windows to Linux, I never realized how useful package managers are. It was quite dull to type ‘sudo apt-get/aptitude install packagename’ then having to type package name again etc. I knew about brew before switching to Mac and installed it immediately upon getting my hands on it. Boy, does it save time and ease installing and managing of packages (software) on my laptop. I can quickly add any tool I need (brew install go - for example), manage multiple versions in case something breaks, update all of my packages or just some of them, etc. No need to google for something, download it, install it and then upgrade single packages one by one.

Spotlight search

On Windows, there aren’t many ways to start an application, unless you install 3rd party software. You either put the icon on Desktop, Taskbar (Quick Launch Bar on older Windows machines) or Start menu. On Windows 8.1 I put my icons in the start menu, as I prefer not to have clutter on my Desktop/Taskbar.

Mac’s in-built Spotlight search lets me launch my application fast - by pressing cmd + space and then typing two or three letters to start what I want (vs. for Visual Studio Code, vi for Viber, sk for Skype, etc.). It’s quick and convenient.

From Spotlight, you can quickly search for Files, Contacts, Emails and more. And if you need more customizability, there’s a 3rd party tool called Alfred.

Global menu

On Windows, menus are scattered across the place depending on the app itself. On Mac, the menu is always located at the top of the screen, in very similar order. It’s constantly visible except for when you enter full screen, and you can easily see which app is currently being used on the screen (top left corner next to apple logo). On Linux, menu position is depending on the Window manager, with Global menus being quite rare (Unity 8, …).

Other small things

Software updates: A few years ago this would be a significant selling point for Mac. Nowadays, Microsoft did provide free upgrades to their latest OS and continuously pushes more substantial updates to it. Unlike before where you had to purchase significant updates.

iPhone integration: You get calls, messages and FaceTime calls on your Mac synchronized with your iPhone if you happen to own one

Pre-installed software: The mail app serves me quite well, although there are better alternatives. Photos, calendar, notes, reminder, preview all look decent and can be quite useful.

Screenshot shortcuts: I was positively surprised after learning about Mac’s inbuilt screenshot shortcuts. For instance, holding Command + Shift and a key takes a screenshot of your current screen and saves the image on the desktop (3 for the entire screen, 4 for mouse selection, 5 for selected windows), and if you hold Control, it saves the image only on your clipboard. Lovely.

The Ugly

Dock

Dock, Mac’s probably most iconic feature, is a place where you keep your favorite and currently running applications. Similar to Windows’s taskbar, lacking the start button and System Tray / Notification area.

I assume the majority of Mac users launch apps from Dock. It does its job, but there are a few things I dislike about it:

On Windows, taskbar holds docked/launched applications, start button and system tray. On my Mac, I keep very few apps in the Dock and use it at the smallest possible size, therefore having lots of wasted precious vertical space. If I could it put at the top, together with the global menu (similar to Gnome), I’d probably be happy with it.

In Dock, you can’t interact with the majority of apps when they’re closed, even in the apps made by Apple. On Windows, right-clicking a closed Chrome lets me start with a new incognito window, for example. This does not apply to all apps like Visual Studio Code an iTerm2 can be ‘interacted with’ even when they’re not running.

Interacting with multiple instances of an application in the dock is hard, as it requires holding the mouse on it and selecting the window, only by name. In Windows, hovering over an application in taskbar gives you a previous of all opened instances of that application (Aero Preview/Peek).

Closing and minimizing apps

There is an inconvenience when closing (pressing the red button) and minimizing (yellow button) the apps.

In some apps there is no difference (Slack, YakYak), in others like Chrome, VSCode, Finder, etc. closing minimizes the app in Dock and resets the app to its default state (closing windows, open files, etc.), and minimizing keeps everything open. In some apps, like Apple’s Notes, if you press the red button it quits from the app (actually closing it).

Keyboard Shortcuts

I feel as if there is an additional key for every keyboard shortcut on Mac, or some of them were made the way they are to deliberately be different from Windows and GNU/Linux.

On Windows, most shortcuts are used by pressing a combination of ctrl, shift and an alphanumeric key (most often being just ctrl + alphanumeric key). The super button (the one with Windows logo on it) is never used as keystroke in any application.

On Macs, however, you get an additional button for shortcuts. Now your shortcuts consist of Command, Ctrl, Shift and an alphanumeric key. I thought I’d get used to this over time, but I still feel like I’m doing things slower compared to before Mac.

For some, this might be something small, but I realized it hurts my productivity.

The Bad

Finder

My biggest complaint about Mac is the Finder. There are dozens of things I don’t like about it:

The interface feels clunky and unproductive. Windows Explorer and most Linux’s file managers (Nautilus, Nemo, Dolphin) look way better and are easier to work with.

Cutting in Finder feels unintuitive, and I had to Google how to Cut on mac. Copy as usual (Cmd +c) and then when pasting press Cmd + v + alt (option)

No ‘new file’ option when right clicking empty space.

Window management

On Windows, pulling a window to the top right/left corner puts the app on the right/left half of the screen, and double tapping the title bar maximizes it.

On Mac, double tapping title bar causes different behavior depending on the app. I assume it has to be made like that specifically by the Developers, while the default behavior is to expand the window to full height. For example:

VSCode, Slack, Insomnia (Electron apps), iTerm2 and Skype work as intended (maximizing the app)

Chrome, Safari expend the window to full height, but at different width.

Finder - something random occurs every single time, but not expanding the Window

Besides, you can’t pull apps to corner to resize them either.

Exclusively for development, what I do now, I vastly prefer Mac to Windows for lots of reasons, most of them being mentioned as the positive sides of Mac. But having an option to choose between a Mac and GNU/Linux (for development), I prefer the latter. Before owning a Mac, I didn’t see many good sides of Unix, therefore sticking to Windows for so long. Nowadays I see no reason to use it except for Gaming (which I stopped), MS Office (which I don’t need for development) and Adobe’s software suite.

I’ll be switching to GNU/Linux quite soon. As there are many distros I’m looking at, I’ll probably be distro-hopping for few months before settling for one. Arch (Manjaro), Deepin, Elemental, Mint or Ubuntu?

One of the main features I’ll be looking into for now is the availability of Global Menu. Besides Ubuntu 16.04. with now ‘abandoned’ Unity can you recommend any other Distro/WM that supports this feature by default? I’m looking forward to the suggestions.