Friday, October 21, 2016

A Developer on Switching From Windows to macOS

I’ve always been a "Windows guy". There was a time I toyed around with Linux, mostly the Ubuntu distro, and it was an interesting experience. Although Linux was quite powerful, I went back to Windows after a short time due to the ease of using windows – I didn’t have to compile my own drivers and there was more software available.

How To Install Windows On Your Mac When All Else Fails

How To Install Windows On Your Mac When All Else Fails

I have a 2011 iMac and I've installed Windows on it successfully before. The process was extremely straightforward.…Read more

Recently, I had the chance to make the switch and use an Apple computer for work. I thought I’d like to try it out since it feels like just about everyone in the development community uses one these days.

For any other developers thinking about making the switch from Windows to macOS, read on to learn more about my experience.

First Impressions

Intuitive Use

My first impression was that macOS didn’t seem as intuitive as I thought it might be. This could be due to the fact I’m so used to the way Windows does things.

There are some features of Windows which Mac completely lacks. For example, features such as pinning windows to sides of the screen, dragging a window to the top to maximize, even maximizing at all, were lacking.

I was, however, impressed by the screen resolution and clarity. The UI scaling for high resolution is also done better than Windows, and everything looks good even at high resolution. I also can’t get over how smooth text looks.

Installing apps

One thing I had trouble with initially was trying to install applications using the Apple App Store. For some reason I could not download applications without entering payment information.

Eventually, after some online research, I found a separate registration UI that allowed me to continue without payment information, but everytime I try to upgrade the system I am pestered to enter payment information.

Compatible Apps

I’ve been able to use equivalent programs for everything I need to do, but these programs are either the same or less fully featured as the windows equivalent. Here are the Window’s tools I use, along with macOS equivalents I found that deliver the same features or functions:

  • Notepad++ – Sublime (not free)
  • Tortoise Git – SourceTree (Doesn’t have a merge tool).
  • Phpstorm – Phpstorm
  • sqlyog – mysql workbench
  • Microsoft Office – Microsoft Office
  • CMdr – Iterm 2
  • virtualbox – virtualbox
  • filezilla – filezilla

Overall, I haven’t used a program which I prefer more on macOS other than maybe Source Tree over Tortoise GIT. I also heard that the Microsoft Office Suite had issues on macOS, but so far I haven’t run into any trouble with it.

I’ve found that I use the notes program quite often to keep things organized – in fact, I’m even drafting this article in the notes program. I’m sure there are programs that could make my life easier on macOS, and I’ll come across them as I spend more time on the system.

Integration of apps

The integration of applications in the system makes many features feel native to the OS (notes, email, terminal), which is nice. In Windows, the applications tend to seem very separate from the operating system and not as well-integrated.

While Mac’s Terminal is probably one of its biggest advantages over Windows, this has quite diminished recently with native bash support in Windows.

It can be convenient at times to use native Linux commands without having to install third party software (such as Cygwin for Windows).

No Grids, No Glory

The fact that there isn’t any kind of grid system with expanded windows, similar to Windows, tends to bug me in macOS. Any time I close or open a program and the launchpad expands or contracts, my windows are left with a gap below them which infuriates me. This may be possible to alleviate with UI extensions, but by default I don’t see a way to do this.

In addition, in Windows, the ability to "peek" at contents of open applications by hovering over their task bar icon is useful to me. The fact that application icons stack, and allow multiple instances to be grouped into one icon is also useful.

In macOS, every instance of every application, if minimized, will make its own icon on the Launchpad.

One of the things I dislike the most with macOS is that I cannot maximize windows similar to how the maximize functionality works in Windows. I have no idea why this isn’t a thing that can be done.

In macOS "maximizing" makes a window full screen – I’m not sure why I would ever want to even do that. In Windows, I love that I can drag a window to the sides or corners of a screen to easily manage multiple applications at once, or drag to the top of the screen to maximize.

A Recap

Pros of macOS
  • It is nice having a Unix terminal built into the OS
  • Vagrant seems to run much faster than Windows equivalent
  • Application system integration is nice
  • Not specifically, but the build quality is good, and the screen is high quality
  • UI scaling is very good, and everything looks very good even at high resolution
  • Quick startup
  • Good build quality
  • Good UI scaling
Cons:
  • Window management can be an annoyance
  • Not all the tools I use are as good on macOS as they are on Windows
  • Need to go through Apple Store setup in order to download from store (I had issues with this and couldn’t even download at one point)
  • Program incompatibility (not everything is available with an macOS version)

It boils down to personal preference

In the end, although I came out with a decent list of macOS pros, I still prefer a Windows PC for development. There just aren’t many compelling reasons to use a Mac over Windows. Maybe If I had been using macOS for years I’d be fine to continue, but because I have been using Windows for so long and know all the ins and outs – I definitely prefer it.

At some point I could see myself possibly using macOS as my daily driver, but for now I think I’d rather stick with what I am most familiar with, a Windows system.

Editor’s note: This is a post written for Hongkiat.com by Justin Hamm. Justin is a Senior Web Engineer at Enola Labs, an Austin, Texas-based web and mobile app development company.