Approximately 6 months ago I needed to upgrade my development notebook and faced a dilemma which one to buy. As a for a long time developer working primarily with Microsoft operating systems, frameworks and development environments the obvious choice was “a Windows notebook”. But which one? I really like Lenovo’s W Series, but they moved a touchpad off center in the latest 15″ models and it was a huge turn off for me. And then a friend of mine recommended to get a MacBook Pro. What? A Mac?
After few more conversations I finally decided to buy one. After developing on it for almost half-a-year I’m ready to share my experience with it.
I’ve got Mid 2015 model, 15″ Retina Display, 2.8 Gb Intel Core i7, 16Gb RAM with 1TB SSD. I knew I would be running VMs and expected I would need lots of space. It might be overkill for some, and I guess you would be just fine with less powerful one, but in this short period of time, after installing 4 VMs I managed to use almost 30% of the hard drive.
I do not often run all four VMs at the same time – only one, two or three, but if I had to – they would allocate 10Gb RAM (subject to config settings) and I would still have comfortable 6Gb for the host OS.
I did not want to install Windows on Mac using Boot Camp, I rather decided to run Windows on virtual machine. I chose Parallels Desktop because I had a bit of practical experience with it, but the other two choices were VMware Fusion Pro and VirtualBox.
At the time of writing this post I have four VMs with Windows 8.1 Pro, Windows 10 Pro, Ubuntu Linux 14.04 and, yes, Mac OS X 10.10.5. The really cool thing about Parallels is that if you are learning how to administer Mac OS X (installing applications, setting user permissions, etc.) you can create a VM with the same version of Mac OS X (from restore partition) and mess with it leaving the original OS intact. I know, it feels a bit like Inception movie.
To be able to use familiar keyboard shortcuts in Visual Studio while running Windows on VM you have to make two configuration setting changes:
First, you need to go to System Preferences ⇒ Keyboard ⇒ Keyboard and make sure that “Use all F1, F2, etc. keys as standard function keys”.
And second, after you install Windows, go to Parallels Desktop Control Center, hit the cog icon, then in Hardware tab select Mouse & Keyboard and then hit Open Shortcut Preferences…
Then in Shortcuts tab select OS X System Shortcuts and make sure that Show and hide Parallels Desktop is checked off. This makes sure that when you hit F6 in Visual Studio you get your project build and not switched back to Mac OS.
Ok, we are done with a minimal setup. All shortcuts work in Windows as expected, but for copying and pasting you need to use Command+C/Command+V, instead of Ctrl+C/Ctrl+V. I’m still learning Mac OS X and I’ll definitely discover that I need to configure something else.
So far, I found that all of the development tools, IDEs I use (Visual Studio 2013/2015, MS Office, SSMS, Chrome/Firefox, Fiddler, Notepad++, GitHub for Windows, etc.) work fine in Windows running on VM and there is really nothing to blog about.
So, if my Windows experience is the same (after you get used to Command key), then what did I get?
First and foremost – amazing piece of hardware. I do like Lenovo W Series (except the latest models) and think that their keyboard is slightly better than MacBook’s, but other than that I like MacBook far better. Monitor, keyboard, sound, touchpad. I would probably get MacBook Pro just because of the touchpad. It’s absolutely phenomenal!
Third – I’ve got to play with Ubuntu Linux.
If you haven’t recently played with Linux – you definitely should, because it is not your father’s UNIX. It’s got Python pre-installed and soon I’m going to install Golang and play with Docker containers. Could I do it on Windows? Absolutely, but on Mac OS X/Ubuntu it feels different.
And if you think that Microsoft is going to stick with only Windows forever – think again. Some of the Microsoft tools/frameworks such as Visual Studio Code, ASP.NET 5, Entity Framework 7, F# are already available on Ubuntu Linux. And this is just a beginning. It is not prudent any more to ignore Linux even if you are a hard-core Windows developer.
Bottom line – so far, with exception of minor glitches, it was a wonderful experience and I’m glad I got a Mac. So, if you are on a market for a new notebook, try MacBook Pro – you will thank yourself later.
Oh! Almost forgot – after you finish coding for the day you can watch Netflix or edit the pictures from your last vacation or Skype or browse the internet. The experience on Mac, in my opinion, is far better!