Living and coding on a Mac

by Giles Turnbull

My friend and fellow O'Reillyite Edd Dumbill made the switch to OS X and a MacBook Pro earlier this year, and has written up some interesting notes on what makes it a good coding machine.

Edd, formerly a steadfast Ubuntu user of many years experience, now develops Rails applications and makes clear his appreciation of OS X as a Rails dev environment, especially using TextMate:

Developing Rails applications on a Mac is sweet, and yes, TextMate really is that good. My jilted .emacs languishes in lonely misery.

Edd's opinions reflect his particular circumstances and current interests, but it got me wondering about other Linux-to-OS X switchers who write code: why did they choose Mac?

If you fall into that category and you'd like to share, please do tell us your thoughts in the comments.


Horst Gutmann
2006-10-04 15:04:35
I made that switch last November after having used Gentoo for some years (but I'm still using it on other machines) thanks to my Acer basically dying ... and I'm not really missing anything but TextMate for this ... leaving ... nothing (+40EUR) behind :-)
2006-10-04 15:29:25
I'm also a Linux-to-Mac switcher. I made the move after being a devout Linux user for over six years.

I think it started when I noticed that the Slashdot "zeitgeist" was slowly warming to the new Mac OS X. More and more Slashdot articles and comments spoke favorably of the OS, and as a Linux user, the UNIX foundation really appealed to me. At the same time, I was becoming increasingly frustrated with Linux over hardware compatibility issues (e.g., power management and Wi-Fi), getting movies to play in my web browser, the lack of really good, polished open-source apps, etc. Later, during my grad studies, two professors in my classes were both using PowerBooks for all their lectures and programming demos, so I got to see OS X first-hand. At that point, I was hooked, and I decided to take the plunge by upgrading my cheap plastic Dell to a shiny new aluminum PowerBook. After three years using a Mac, I don't think I'll ever switch back.

So why do Linux users switch to Mac? I think it's because it gives us the best of both worlds. On a Mac, I get all the benefits of Windows: plenty of hardware compatibility, lots of professional, polished software, and even a selection of games. And because it's Unix, I also get everything I like about Linux: a nice terminal, all the standard Unix apps, and with Fink, I can still run all the open-source apps that I was using on Linux. It's truly the best of both worlds.

2006-10-04 15:52:03
I also switched from Linux to Mac earlier this year, and what I miss the most is actually the home/end pgup/pgdown keys on my mbp keyboard.. I know that in most application I can do either fn-left/right or apple-left/right, but these combos are very poorly standardized on the mac, so I'm slowly learning to do without.
Terry Laurenzo
2006-10-04 16:58:05
The main reason I used Linux (I still use it for headless or non-primary desktop work) was because it had a decent desktop and was the native platform for all of the GNUisms I came to rely on. Even with Cygwin, Windows just doesn't work as a real Unix-like environment. Enter OSX and I can get the best of both worlds: a mainstream OS with all of the cool stuff and a solid BSD foundation that makes me feel right at home. When you add to that just how thought out the UI's are for typical OSX software versus the hacked together barely functional equivilents on Windows, it means that the only place for a die-hard Linux person to move to is OSX (if they're going to go anywhere, that is).

I don't think I'm being soft, just pragmatic: I revel in learning the incantations to join a Linux machine to a WPA protected wireless network just as much as the next person, but man, after years on Linux, it sure is nice to just click on the wireless network icon and enter the password.

S├ębastien Arnaud
2006-10-04 19:05:39
I work daily across platforms to write code (Windows & Linux in production, OS X for development only). Each OS has its strenghts and weaknesses.

OS X IMO is the most advanced desktop OS available today. What I define by most advanced is from the point of view of the user: stable, very low maintenance, graphically attractive, and very productive with an unique workflow. Linux and Windows are to me way behind in all those areas (except in stability).
From a coder's perpective it has all the great development environment avail, most GNU stuff runs via Darwinports/Fink which makes it easy. And of course there is TextMate ;)
Another consideration is that OS X sports commercial software which are in experience more avail compared to Linux. One example I will give it Navicat or NX.
Finally, Apple's hardware is of course sexier and sports more innovations than any other laptop out there. Innovation does not stop to hardware, OS X has shown year after year incredible apps.
The only negative thing about OS X/Mac is that it is more expensive to own than an equivalent PC, but if you consider the boost in productivity then it is a better platform. Also, don't consider OS X for app performance, the kernel underlying architecture makes it kind of asthmatic in some cases, but for desktop type use it usually as a very low impact...

Ganesan Subramaniam
2006-10-04 19:17:22
I'm a Windows-to-Linux-to-Mac switcher too.

On Windows I worked with Visual Studio which I thought was fantastic AT THAT TIME.

Then I when I moved to Linux I learnt to work with VIM. I had it modified with all kinds of extensions, such as code folding to mimic Visual Studio.

But know life is much simpler for me. Xcode. It's simple and easy to use. And when I discovered Cocoa programming that comes with goodies such as Cocoa Bindings, Core Data and even Quartz Compositor, I was blown away.

Another fact is that on my other OS machines, I had a nasty habit of trying to customize my theme all the time instead of working / coding. Now I just code.

2006-10-04 21:33:00
In my case, it was sort of an accident. My main computer (running Fedora Core Linux) blew up right before I left on a 2 week business trip. When I got back, I was swamped with work and all the other things that pile up when you're gone for 2 weeks. I didn't really have time to build another computer, and when I realized a Mac Mini wasn't that much more expensive than the parts I was going to have to buy anyway, I bought one. At first my intention was just to use it until I had time to build a new box, but I kept finding more software for it to replace the software on my old Linux box (or in some cases, Mac versions of the same software). About 2 months in, I realized I didn't need Linux anymore; I'd Switched!

I also must confess my love for TextMate. I was a pretty diehard NEdit user (graphical features for mousing and pull-down menus, but not much else to get in the way). TextMate has a lot of nice features, but also is good about not bothering you. It's the only text editor I've ever paid for!

Jonathan K
2006-10-04 22:14:50
I started running Linux on my home PC in mid-2000. I wanted a real programming environment similar to the *nix machines I had used while at university, and Linux was an affordable solution for my PC, which initially was dual-booted with Red Hat 6.2 and Windows NT 4. I removed Windows entirely once I switched from dialup to broadband cable; Linux just worked.

Eventually, with Red Hat's exit from the low-cost consumer distribution segment, I switched to SuSe. SuSe's configuration and update management left my system in a constant state of conflicting libraries and made casual use a headache. I'm not an IT professional, I want a computer to just do what I want the first time I set about doing it, and no reading configuration howtos. The computer is the tool, not the user. Frustrated, I started to consider other Linux options. This was around early 2004.

At the same time, my hardware was obsolete, and with no mobile capability I started sizing up laptops from IBM, Toshiba, and Apple. Among these three, Apple was the best in terms of day-1 hardware capability, even taking cost into account. Best hardware and lowest cost? No brainer. Add to that the fact I would not have to remove any Windows and set about installing a Linux (and configuring all the hardware - remember, laptop = no cracking the case to poke about & swap parts) yet I would have a real *nix under the hood? Another no brainer.

So in June 2004 I bought my first PowerBook. In May 2005 I bought another one. In October 2005 I bought a Mac mini. All were ready to go out of the box, and once I became more familiar with the system software, reconfiguration my way was a snap, first time every time. All are still running strong. I still get to use Windows at work. And Solaris. And ocasionally I am afflicted with Linux desktop environments. I'd take Apple hardware and Mac OS X over all of them any time. I don't expect to go back to Linux/Windows PCs at home any time soon.

Sebastian G
2006-10-05 03:37:56
I switched to Mac from Windows about 2 years ago now. My experience in coding is, that you can do every kind of "mainstream" coding on a mac, but when you want to code for special environments like mobile phones, special chips or smartcards you have to move back to windows to get the best support in tools and environments.
I love my mac, but it is kind of useless if you need symbian (mobile phone) compilers and build tools. I will never switch back, but for special tasks there is still a dell under my desk ...
2006-10-05 16:41:08

This is starting to look like the Sgt. Pepper's Lonely Fedora Core-to-Mac Switchers Club Band...

I myself switched a couple of years back from Fedora Core 3 (yes, that's 3 as in "three"... Konqueror was a mess, Nautilus used to die on me... I mean, Nautilus, that's like the FINDER dying on you... OMG... Thank God for Emacs, dired, and MC...).

Anyway, back to the point. I had NEVER bought a computer before. All my machines were old CPUs picked up from the street or picked up from my grateful and relieved friends and relatives. I had a totally-DIY approach to it, plugging in stuff, struggling with different Linux distributions (Slackware, then Debian Woody, then Fedora, then Gentoo, then Fedora again... I would have PAID money for something like Ubuntu).

In summer 2003, my venerable CRT died. OK, time for a new monitor, I thought. Me and my girlfriend had just moved in together, and I didn't feel like having a huge CRT lying around anymore. How about one of them flash flat screen thingies I'd been seen around? Cool. So I shopped around, and realised that the good ones cost... well, money, you know. So, for the first time, I decided to actually pay some CASH for computer equipment. But, since I was going to pay money, I thought it made more sense to simply buy a new computer, something above and beyond my Celeron. A laptop, preferably.

A month later, I had reached the conclusion that the only worthwhile (and moderately safe) investment would be a Mac. Powerbooks were a bit beyond my budget, but those cool white iBooks looked really sweet. I had used Mac OS 9 previously on my friends' machines. I had no specific impressions, except that I never had to ask anyone how to do something or where something else was supposed to be. Except how to get the CD back out of the drive, that is ;-). And I was really impressed by the idea behind Mac OS X - marrying the elegance and power of NeXT with the ergonomy of Mac OS, all powered by an industrial strenght Unix underneath (Funny, my Mac-using friends didn't even KNOW where the terminal was...).

I looked around for software for a hypothetical Mac (strict anti-piracy policy on my machine; it's either FOSS, or duly paid for, period). Emacs? Check. Vi(m)? Check. Gnucash? Check. Gimp? Check. Inkscape? Check. Scribus? Check. Audacity? Check. Jack? Check. PureData/SuperCollider/Etc.? Check LaTeX? Of course. Not to speak of the classics: Perl, Python, Php, *sql, gcc, gdb, etc... So I decided to give it a go.

When my iBook arrived, there were more surprises in store for me. A really strange thing happened. I came across this rare animal - a GUI that really works. No, I mean it - it REALLY does it. It doesn't "justs work". It kicks ass. There were all these silly little... whatdaya call'em... apps. Yes, apps. A calendar thingy. A spastic mail client. A web browse which is, of course, nothing compared to Firefox. It's much faster, more comfortable and easy to use, but, you know, it can't be good, I mean, it came bundled with the machine... And all these little things could talk to each other and work together in a sensible way, unlike anything I'd seen before.

Yup, Jobs was right - it's not the packaging. Not the transparency effects, or the eye candy. It's the sensible structural integration of the GUI environment. I suddenly understood why I'd always been resolutely anti-GUI: I'd never experienced a decent one (Windows, anybody?). I also realised why I was using Emacs for everything. I obviously had no choice - Linux desktop environments back in 2003 can only be described as dysfunctional. Emacs was the only generic interface which had some semblance of consistency. (That's not to say that Emacs doesn't have any issues of its own).

Obviously, I never looked back. Worse, this is spoiling me. I'm huffing and puffing everytime I have to use an X11 application, I cringe when I find the Format menu item anywhere but right next to the View menu item... So I'm slowly upgrading my desktop application toolbox to Cocoa apps, whenever possible.

Emacs is still a good friend. I also rolled my own Vim7.x for good measure. But, as is the case in TFA, I find myself using TextMate more and more. Is TextMate that good? It's bitchin'! As are OmniOutliner, VoodooPad, WriteRoom, NetNewsWire... you know the score.

Only one quirk - the Darwin layer and the Aqua interface don't play that well with one another, which makes developing a bit tricky. Of course, we have ObjectiveC, Xcode, and a bagfull of other goodies. And I find I'm slowly moving from wxPython to Python with PyObjC...

So I suppose most of you probably realise where all this is heading.

Still, I switched from a Fedora, like other contributors to this thread. Thinking back, I think Ubuntu has really raised the ante really high, and the Linux desktop has come a long way. But it will have to get much much better to start competing with Mac OS X.