At work, we have a program in place which lets employees swap their PC laptops in for MacBooks. A couple weeks ago my number was called and since I’ve been getting a bit fed up with my primary computer, a now sluggish 3 year old Dell, I decided to take the plunge. (Hardware wise the Dell is fine — the slow and steady software rot of Windows is mostly to blame). Needless to say, drastically changing one’s primary computer is a pretty big deal for most people, let alone a software professional.
This isn’t quite my first foray into the world of the Mac. For over a year I’ve been administering my team’s Mac Mini as part of our browser test lab and last Christmas I got my wife a sweet Mac Air which she loves and I’ve helped her learn to get around on. But this is the first time that I’ve made my primary computer a Mac and so far I’m digging it. (It probably doesn’t hurt that I’ve been a mega iPhone fan for more than a year.)
For the longest time I’ve been decidedly anti-Macintosh and pro Win/PC. My how the tides have turned! Growing up, my first 6 computers were all DOS and Windows based PCs. Windows 3.x, Win95 and DOS will always have a special place in my thoughts and I strongly admire Microsoft for what they have done for the entire computing industry. But as software technology keeps moving online (into the cloud) it feels like Microsoft is constantly playing catch up. Their massively critical flops like Vista and the Zune are now just barely offset by productivity stalwarts Excel and Word. But even these are being threatened by the likes of Google Docs, iWork and OpenOffice. For the sake of competition, let’s hope that Windows 7 helps them gain back some of their former glory.
My first experience with Macs (not counting the green screened one from grade school daycare) was in first year Computer Science at University of Waterloo. The funky iMacs in the “Mac Lab” were what the Mathematics frosh (aka freshmen) were supposed to use. I used them a few times but quickly learned to stay away and entered that lab only to print — those machines seemed awful to me. I much preferred to “work from dorm” on my own PC and either use my Linux partition (Slackware!) or telnet into the Unix machines on campus. Much better.
So, how did they make ’em good?
Apple, under returning CEO Steve Jobs, did two critical things to make Macintosh computers as desirable for computing professionals as they are today: OS X and Intel based hardware.
The Macintosh Operating System 10 has Darwin at it’s heart, an open source UNIX kernel. In my experience all good programmers will tell you that a UNIX OS is technically the best you can get. It has extreme stability, great performance and the best powerful command line interface. OS X also had the Aqua interface which added scalable graphics, anti-aliasing, transparency, shadows and animation. And they weren’t shy with these UI features.
Moving to Intel CPUs in 2006 was also an excellent move because of the great success and market penetration of the X86 architecture. This means one can easily run Linux binaries on their Mac or dual boot to Windows or another Intel compatible OS. It’s hard to disagree that Intel simply makes the best, fastest, affordable chips of this day and age. This is what tipped the scales for me.
The other thing that’s hard not to love about the Mac is the premium hardware. Things like magsafe (the power cord uses a magnet to pop in and out with ease and safety if you trip over it), a nice un-brick-like power brick, fantastic LCD monitors and great keyboard keys really are worth the extra cost and show an attention to detail that most hardware manufacturers just don’t “waste” money on developing.
The trackpad and its gesture support is another thing Apple’s focus has nicely paid off on. Once you start using two finger scroll, and two finger tap (for context menus), you’ll realize the mouse isn’t quite as vital as you once thought.
For me, the toughest thing by far on making the switch from PC to Mac is my dependency on the keyboard. Macs were really designed for the (one button!?) mouse. Lately Apple has been getting better at keyboard support and they were very smart for making Alt-Tab just work (Cmd-Tab switches apps like just like Windows) since that’s probably the most hard-wired keyboard command for all Windows users.
My biggest annoyance is the loss of Home, End, Page up and Page down keys. To get these key functionalities you will need to use a two key combo (e.g., Cmd+Left arrow instead of Home or Fn+Up instead of Page up). This is bad because not only do you need two hands but they differ slightly between apps! I also dislike how Cmd+Left and Cmd+Right is overloaded in the browser to mean Home or End if you’re in a text area and back or forward browse if you’re not. Too much thinking is required… I find I’m reaching for the mouse or trackpad more often which simply slows me down.
I also wish one could navigate dialogs using accelerators like in Windows. Some apps have this built in using Option + letter keys but this doesn’t work if the dialog has a text box focussed upon load since Option + letters is also used for extended character typing.
On the plus side, I much prefer using my thumb for hotkeys since Cmd (where Alt is on a PC) is the main hotkey initiator. That key placement feels far more natural than using Ctrl with my pinky (which is the initiator for most hotkey commands on a Windows PC). It’s kind of interesting that on Windows, the Alt key is now almost forgotten which is sad given it’s prominent position on the PC keyboard.
Third Party Apps
The built in apps for OS X are nice but everyone knows you need extra software to get real work done.
IntelliJ by JetBrains is my IDE of choice. I love its HTML/XML/JSP editing capabilities (which Eclipse just can’t seem to get right) as well as its built in support for Tomcat and Maven. It works on the Mac just as it does on Windows which is also great.
For text editing I’ve been impressed with open-source Smultron. I’m not using it for code editing but as a scratch-pad it’s working out nicely. (And of course, it doesn’t do everything that metapad can, but I’m sure it does stuff that metapad cannot ;)
The Butler app was something I discovered to solve a particular problem: make F2 edit a cell in Microsoft Excel. Butler allows you to set up hotkey interceptors for specific Apps. It also does a bunch of other stuff that seems cool, like a clipboard storage menu but I haven’t delved into much else yet.
For a shell terminal, iTerm is nicer and far more customizable than the built in Terminal app. And I’m using iStat Menus (pictured above) to monitor memory and CPU.
I’ve been rather dissapointed with Microsoft’s Office suite on the Mac as well as Adobe Fireworks CS4. Mac Office is not nearly as full featured or customizable as the Windows versions and, yes, Entourage sucks way more than Outlook. Fireworks could be great but somehow Adobe forgot to test Fireworks CS4 on the Mac. Shame on them.