On Why Open Source Developers run Mac OS X
sharms.org
sharms.org
"And this, I believe, is why great developers tend to move towards OS X (yes, there are plenty of exceptions)"
With all due respect, this reads more like an Apple advertisement than a well-thought conclusion.
First, I find it somewhat strange to declare those who stay with FreeBSD or Debian as "exceptions", thus implying that moving to OS X is the norm. This is not backed by any numbers. There are just some anecdotes of some people switching to OS X.
Also, that statement implies it is meaningful that some great developers switch. However, that detail isn't relevant at all to understand to process. OS X is comparatively new, so of course people are still looking at it and some of them move over. And of course some of those people are great developers, as in any random group.
To make this more clear: Among the people who are switching, there are naturally a lot more mediocre developers than great developers (as in any random group), but the article wouldn't sound nearly as sensational if the author had written: "thousands of mediocre developers switched to OS X".
Also, a lot of people switch from a proprietary system (like OS X or Windows) to Ubuntu, Fedora and many other free software systems. However, those aren't nearly as celebrated as those who switch to OS X. Why is that?
This article is so strongly biased that it is hard not to mistake it for an Apple ad.
Have you been to a OSS based conference in the last 5 years? Anything, from Apache to Rails to Python? The number of Apple laptops is by far greater than any other.
Because I think the the industrial design of the laptop is driving a lot of people over, not Mac OS X.
Are people switching to Apple desktop machines at the same rate? I'm not seeing it. If I were to buy a desktop tomorrow it would definitely not be a Mac, but if I were to buy a laptop tomorrow it would be a Macbook Pro.
I'd concur, but that's the rub: Once you have that nice, well-designed machine in your hands, you discover that it has Python and Ruby and Emacs and Vim all preinstalled, not to mention a competent X server, and a reasonably nice terminal. Heck, it even defaults to Bash!
And once you're faced with that, the cost-benefit analysis for switching the machine over to *nix starts to tip in OS X's favor. You can finally run popular commercial software (Office, PhotoShop, etc), if you want. You can finally test things in OS X. Sleep / resume, external displays, bluetooth accessories, printers... they all Just Work. And your battery life is great.
Switching means giving up most of those benefits. And for what? You have a good POSIX environment, right?
It's the nuances that get you: OS X ships libedit instead of readline, and getting the IPython to use the latter was excruciatingly difficult for quite some time. Not to mention libraries like PIL. But by the time you run up against those issues, you've already bought into so much of the Mac ecosystem...
The followers love their Macs.
I always have to laugh a bit after people ask me questions how I got OS X to look so different from the stock version. Usually I explain that you may run any OS on your Macbook. Be it OS X, Windows or Linux.
ps: For those wondering why I run Linux on a Mac. In my case I tend to develop mostly webapps which need to run on a Linux based setup anyway, so it just makes my life easier to have the environments more or less the same. Although with the current powerful cpu's and nice virtual machine solutions such as VirtualBox or VMWare I might be tempted to run each project in its own vm on whatever OS the laptop came with.
Also, while you are correct that many people move from Windows to Linux, it's fairly rare for someone to move from Mac to Linux, or Mac to Windows. Mac has tended to be a platform that people stick with. Again, if this isn't obvious then you haven't been paying attention.
Obviously we're never going to see RMS on a Macbook Pro, but that's the previous generation. The pioneering generation. The current generation isn't so ideological, and place more value on ease of use and aesthetics than the previous generation.
I've been pretty happy on the Mac. But I miss Ubuntu's giant repository of binary packages, and I've recently fallen in love with XMonad's automatic window management.
So now I'm running Ubuntu in VirtualBox, and I'm enjoying it greatly. And I've learned my lesson about Linux laptops: I'm going to buy a premium laptop from a high-end Linux vendor, and let somebody _else_ worry about drivers.
And who would be that "somebody else", worrying about the drivers? Surely not the "high end Linux laptop vendor" --because, even though he would have basic stuff like the video card, wireless et al working, with anything not embedded in the laptop, you would be on your own.
I've yet to have a problem with drivers on Ubuntu, in fact it's better than Windows. Windows seems to have separate drivers for each USB port. I have to plug my peripherals into the same port they were installed on or it doesn't work. Ubuntu doesn't care, it detects everything no matter where it's plugged in.
Generally speaking, the biggest problems with Linux laptop drivers used to be suspend/resume and the video card. Unless you were willing to put in a lot of work for each new release of Ubuntu, it was hard to get a Mac-quality experience. If your time was reasonably valuable, you were better off paying a few hundred dollars extra for a well-supported system.
I generally don't worry about drivers for random USB junk. Nearly all of it works fine with Linux, and if it doesn't, it's trivial and cheap to replace.
I can't wait for 8GB of RAM and an Intel SSD drive. Drool.
also, you have homebrew. i never used it.
and as a protable package mgmnt: pkgsrc.org. works well also.
But I'm massively impatient, and I want my packages _right now_. :-) So I prefer binary packaging systems.
Does anyone use Fink these days?
I've had friends of mine complain loudly after ~5 minutes when they find missing "essential" packages, though.
another option is pkgsrc.org. i use it on a few different platforms with good success. if only macosx is your target, use macports.
resume/suspend
video card
”enterprise” encryption over wireless (read: Windows)
less-known USB printers (no Linux driver at all!)
various other little things like indicator LED's etc
Spent countless hours configuring these things and finally got to a state where the computer was usable. And the laptop was a Thinkpad which was one of the better supported hardware.
Then a upgrade came half a year later and I had to repeat the whole process to reconfigure all over again, because some tricks used to work became useless, and parts of the things used to work fine now broke again.
Having done this for several times (I think the last major release I used regularly was Ubuntu 9.10) I thought: that's enough! I'm not going to spend my life fighting the endless battles. And at the time a roommate spilled a glass of juice of the old laptop, killing it instantly.
I bought the 1st gen Unibody MacBook then. Couldn't be any happier.
I still run several Ubuntu and Debian instances in Virtualbox, though, but they are all server editions. I just SSH into them from OS X.
Recently I'm wondering maybe the only way for Linux desktops to go mainstream is probably something like Chrome OS there you eliminate everything else except the laptop… (wireless support is still a potential area of pain, though).
Most of the developers I know are using Macs, with only myself and a few others preferring Linux. The Mac guys use the terminal, as it is a necessity. But they are relatively slow at it. Most of them don't even really use tab completion as much as they could, if at all. They also use the mouse very heavily, especially in their web browser, finder, and text editor.
The developers I know that prefer Linux, including myself, freaking fly on the keyboard. We hardly ever touch the mouse. We tab complete like crazy. We use a ton of keyboard shortcuts for everything. Doesn't matter if we are vim or emacs, it's keyboard keyboard keyboard.
I think the explanation is very simple. If you are a mouse using person, and you compare a Linux system to a Mac, the Mac will be more comfortable, especially with that great touchpad. If you are a keyboard person, the Mac will drive you insane and Linux will be happy land. People tend to change their software rather than change themselves, so mouse people end up on Macs.
I disagree. As a keyboard person, I can move way faster with the mac than I can with Linux. Linux' keyboard-based workflow is constantly playing catch-up with Mac OS X's (like Expose). On a mac, I can get by without hardly ever using the mouse.
I'm a vi person, btw, since we're on the subject of religious flamewars. :)
1) Animations are nice, but slow. Things like Expose/Spaces animations just get in my way because I already know where I'm going, I don't need the visual help. Just like I don't need to turn a light on to walk around my apartment in the dark. I like it when things happen instantly.
2) Not enough keyboard shortcuts. For example, what's the shortcut to move a window to the adjacent virtual desktop? Oh there isn't one, you must drag it with the mouse.
3) Control vs. Command is probably my number one peeve. What's the shortcut in Firefox to open a new tab? Command+t. What's the shortcut in the terminal to go to the beginning of the line? ctrl+a. In Windows or Linux I have caps lock converted to ctrl, and use it for everything. In Mac, I have to switch between cmd and ctrl all the time. My thumb ends up doing work meant for my pinky.
I also have some non-keyboard related issues with OSX. The first example that always comes to mind is when I want to show hidden files in the finder.
2) PITA; I agree.
3) Can be changed through keyboard shortcuts. http://guides.macrumors.com/Changing_Keyboard_Shortcuts
Et.Cetera: defaults write com.apple.finder AppleShowAllFiles TRUE; killall Finder
So, one issue's not too bad, then?
3) I've tried that. I am a nerd after all. Go change the Firefox keyboard shortcuts from command+t to ctrl+t. Let mek now how that works out for you. When I do it, it changes in the menu, and the menu lights up, but no new tabs appear.
I also know about defaults write com.apple.finder... But that is an all or nothing situation. I can't hide/show on a directory basis. I also can't quickly turn it on and off. In Linux I can do a quick toggle with a shortcut like ctrl+h. In Windows at least there's a hidden GUI button to do it. In the famously easy to use OSX is the only OS that requires black magic.
I also forgot to add that the OSX Terminal still does not support 256 colors. It also really screws up trying to render fonts such as Proggy. I know there are other alternative terminals, but they have other issues. Even the humble gnome-terminal beats them all handily.
My main problem with OS X is that Alt + D (plus Alt + B and Alt + F) just don't work as it should, like in any sane Terminal, there's no difference between Alt and Alt Gr on a Mac, sad, very sad. Also I would love to see a real package manager, pkgutil is horrible...
http://tungchingkai.blogspot.com/2009/05/how-to-send-alt-x-i...
Edit: I just realized CMD+Control+L/R arrow to move windows is a result of running SizeUp. Sorry about that.
I don't use Spaces because it falls short of what I got used to on Linux, but not having a keyboard shortcut for that would be annoying. Perhaps SizeUp or Divvy supports Spaces, I picked up both of those apps this year and can't imagine living without them now.
Control vs. Command is one of the things OSX does _so_ right. Command is used for OS/window level commands, leaving Control available for application functions. Heck, both MacVim and Emacs default to compatible keybindings in windowed mode, with Cmd-S saving files, and not needing to worry what random keybindings the OS might want to use that conflict.
That's purely user preference, I don't think God intended your pinky to open new tabs in Firefox.
The motion required is equivalent -- you don't have to move your hand to get to the Command button, and frankly CAPS+t is a more difficult motion than Command-t (and any Textmate user is pretty accustomed to the latter).
't'.
You're using Vimperator, right?
This is full of gross generalizations. I use keyboard shortcuts for everything and know how to tab complete. Everyone I know that uses a mac to dev on does as well.
But I also use Linux on the server and to the terminal it makes no difference. I could be on a Windows laptop and the terminal would look exactly the same.
If I were to only use a terminal (which, due to vmail and pianobar, is becoming even more common for me), then it really wouldn't matter for me where I was. But it's the other stuff that keeps me hacking away on my MacBook Pro. Wifi just working, the OS automatically selecting the right printer, the right balance of "enter the administrator password to continue", a selection of great web browsers, mail clients, popular games, etc.
Mac gives the best of two worlds. You can be a keyboard hacker and be super productive, then you can take a break and casually browse the web with the fantastic touchpad.
Before I was running OS X, my laptops ran NetBSD. My workflow changed very little (I got over focus-follows-mouse), but I can use omnigraffle now.
If not, then "FWIW" should have been rewritten as "YMMV".
Without much fuss, I transfered the video files via ssh from my jail-broken iphone, then edited, mastered and burned the DVDs using kdenlive. It was much easier than I expected.
It's ironic to me that the most difficult part was having to jail-break my iphone. Apple certainly doesn't make my life any easier.
Yes, but "smooth" was the whole point of the question --as in the "no fiddling" part.
I don't exactly get the people who advocate that everyone should use Linux, but I especially don't get the people who have stuck their head in the sand about the fact that the Linux Desktop is quite usable these days with no extra configuration. It's not worthy of argument and a misdirection at best.
Now can you open Solidworks files on OS X? No? Well then obviously Mac OS X is a horrible choice for everyone, because it certainly doesn't work for me.
Pick any random use case and you can single out any one of Windows, Linux, or OS X as being inferior to your choice. I miss Textmate on Linux and I miss the command line on Windows and I miss some of the professional applications I use on Linux and Mac.
I have no idea; as that's not a use-case I care about. I don't claim that Fedora Linux is suitable for everybody or every use-case, mind you. But as a developer, who spends most of his time writing code, listening to music, watching stuff on Youtube, random net surfing, or editing documents of some sort, it does "just work."
As for compiling iPhone apps, I agree that OSS sucks. But that doesn't really commend OSX as a platform : It's just something that's being forced on me by Apple.
Personally I'm running Arch w/ stumpwm on vanilla X. All I need is emacs, ff, and a couple terminal windows. No distractions at all; no windows hiding other windows, no tabbing through three or four windows to get to the one I want, nothing popping up in my face, no bloat-ware monitoring useless information. My fingers almost never leave my home row while I work.
I don't really know what this article was trying to get at. I'm sure there are lots of developers who do use OS X, but I don't think that choice really has much to say about open source developers as a whole and probably less to say about developers who do not switch.
It's just an operating system.
I run it on my Aspire 1, as well--and suspend on lid works just fine. :)
If I never got to touch a Mac again (if Apple releases their iOS dev tools for Linux for instance... HAHAHAH!) I wouldn't miss it.
I'm not an "open source developer." But I do write code from time to time that I am happy to share with others. I run Debian on a desktop most of the time; essentially the only program I interact with outside of Emacs is a web browser. I do have a Macbook, though, that I use as a second computer when I'm away from home.
I am constantly frustrated by OS X.
The biggest reason is one of the `features' mentioned in the article: the `./configure && make && make install' routine seems to constantly break on OS X. This is a problem for me because much of the software I use (or try to play around with) doesn't specifically target OS X, so there generally aren't pre-compiled binaries available, and often the build instructions do not provide helpful hints for OS X users. I used to work in a lab that ran entirely on OS X. Compiling scientific libraries (e.g. SciPy) was frequently a recursive nightmare of trying to compile or otherwise install various dependencies (in SciPy's case, I remember the lack of gfortran being an issue).
Often, the problem has to do with missing libraries or figuring out how to set CFLAGS to cope with Apple's non-standard paths, both of which are headache enough. But sometimes the errors are just incomprehensible -- at least to someone without serious C knowledge -- and then I'm stuck.
Sometimes, Apple has done the hard work for you of properly configuring and installing popular Free programs (e.g. Emacs, Python) but the versions are Apple modified, can be difficult to get to work with outside libraries, and are often very old.
(I'm venting a bit here because I have been suffering from these sorts of problems fairly acutely in the last couple of days, but it really does seem to be an issue every time I want to use something on OS X: from Emacs to Python to Git to whatever else, something always seems to go wrong, even if it's not a dealbreaker.)
The bottom line is that OS X is a long way away, for me, from being an environment in which I can comfortably use all the software I want to without too much time lost down the rabbit hole of configuration. And I don't even spend most of my time programming! So I'd have to disagree with the sentiment of the article.
macports [1] is a great thing. I like it almost as much as I like freebsd's ports system (which is my favorite package system).
My experience is that these third-party package managers are great, until you want to make them work with software that doesn't come through the package system. A good test case, I think, would be this: how easy is it to install Python via [MacPorts|Fink|Homebrew|etc.] and then compile and run the latest SciPy (say, a bleeding-edge version from source control, not one from the package manager) against that Python?
Can you speak to a case like this, or one of similar complexity?
I've used MacPorts to install one dependency for something I was compiling by hand, and so I sort of did the opposite: I told MacPorts to install that particular package into the directory where I had hand-built the rest of them.
$ brew install python pip gfortran # Fortran's for scipy...
$ pip install numpy
$ pip install svn+http://svn.scipy.org/svn/scipy/trunk/#egg=scipy
If you don't want to use the SVN version of SciPy, you can just use:
$ pip install scipy
Homebrew and pip are the first things I've ever used that made me not miss apt on debian.
The majority of open source users/developers/contributors are pragmatic about the utility of open source software (it does a job they need done and the access to open source code makes it better), but there is a very vocal minority for whom open source/free software is an ideology (there's nothing wrong with that either).
I'm 100% open source on the server. The combo of Ubuntu, Django, Nginx, Gunicorn and Postgresql has made me very productive.
I like futzing with servers, I hate doing it with notebooks. OS X might not always "just work" but it does for most cases that matter to me.
Other people might own consoles or use Microsoft Office (or Google Docs) or other stuff which isn't open source, but that shouldn't affect their support for open source in the areas that matter to them.
The development tools I work with every day are either accessible from within Emacs or I run them from the Shell. In other words: I'm old school.
Anyway - my point is: the original post was how Mac OS provides less distractions, and your argument of having more apps available seems to claim the opposite.
Hardly. On the surface, sure; that's part of the appeal. Underneath? GCC's a couple keystrokes away. There's even http://www.opensource.apple.com/ which has kernels[1] and lots of low-level code you can hack away at. Less than an OSS Unix distro? Absolutely. But not by all that far.
[1]: http://www.opensource.apple.com/source/xnu/xnu-1504.9.17/
You can have a simple application with a simple Makefile that works out of the box on any BSD and Linux system, but still have to adjust it to get it run under OS X.
So yes, under that hat OS X is some kind of Unix, but it is a very strange kind of Unix. OS X requires special cases in any build script, even in portable *.pro files of Qt projects.
So to me, as a developer and problem solver, OS X confronts me with a lot more distractions and nasty behavior than any other Unix-like system, including Windows+MinGW.
(This is because the MinGW cross compilers behave like normal GCC/Binutils as far as possible for the Windows platform. However, this solely because MinGW is developed by a group of volunteers, while the GCC functionality for OS X is developed by Apple. MinGW would surely look worse if it had been developed by Microsoft.)
But yes. OSX is not a direct match to other Unix-like systems, and a lot of source compiles not tweaked to handle OSX (many are) will require changing a couple things. Though Qt worked just fine for me, so who knows.
[1]: http://stackoverflow.com/questions/2349378/new-programming-j...
Since I was talking about Makefile that run unmodified on any BSD and Linux, I'm clearly not talking about the kind of crappy build scripts you are mentioning. Those are an issue of their own.
> a lot of source compiles not tweaked to handle OSX
The problem is that you have to tweak scripts. You have to tweak even clean, simple scripts or libraries that use only portable constructs (i.e. without any hard-coded paths and other stupid stuff). And that's really nasty.
Also, there's Macports, Fink, and Homebrew, which make it effortless.
Opensource web oriented platforms (i.e web developers who commit code to web based projects in accordance to open source code licenses) use OSX in my experience by overwhelming majority.
Lower OS Level developers tend to stick with Linux or BSD
In some instances it didn't make any sense at all, the pains I saw developers trying to install couchDB on their OSX platform (i think it is a easier now), it was far easier to do this on ubuntu.
Developers also have aesthetic impulses, and OSX looks good and feels good, for most people, better then any X based GUI other platforms have. This is also an issue with the relative comfort different developers have with the Terminal.
Much can be said about this practice, no dog fooding might make open source less viable in the long run.
Upon encountering OS X I went out and bought a 12" PowerBook. I thought it would be a nice machine to run Debian/PPC on. Instead, I so enjoyed having a functional laptop, that I never left OS X. Being firmly in the open source world, I described it as a crisis of faith. I'm on my second MacBook Pro now.
Having instantaneous suspend/resume is the biggest deal for me. Having wireless just work and being able to plug into a random printer and print a boarding pass is really nice. Plugging into a random projector or monitor and being able to do a demo or presentation without debugging the latest configuration mechanism to X is nice.
I still use Debian for servers and some workstations. Basically, if I only have to configure it once, it is worth the hassle. But with a laptop, I am essentially reconfiguring multiple times per day moving between locations, networks, and peripherals. OS X makes this so much less painful.
People like to talk about Apple as a software company or a hardware company. They are a systems company. Because they control the OS and the hardware, there isn't the enormous problems getting suspend/resume to work like there is in the Windows and Linux world where you have to get multiple vendors to cooperate to get something done.
Ubuntu does a mostly good job at that, at least for me.
I think that really gets the point across. While Ubuntu and a few others have made great strides in getting things to "just work", OS X is still the king in that regard.
It's an old saying, most frequently encountered as "Linux is free, as long as your time is worthless".
This rather depends on what you want to do. I use both Mac OSX and Ubuntu Linux for development, and I generally spend more time messing around with installations on OSX than I do on Ubuntu.
Macports is rather good, but it's not as integrated with the OS as Apt is for Ubuntu. Installing a package in Ubuntu is generally quicker and comes with more sensible defaults. Daemons are started automatically, and things tend to run straight off the bat. OSX sometimes requires some fiddling to get things to work correctly.
1) Apple switched to x86
2) The MacBook Pro unibody line is just a solid laptop with a great design.
3) The iOS "bubble", where iOS developers are in high demand.
I prefer Linux. Actually, I would be happy with any Unix-like OS with proper system-wide binary package management and a modern GUI. I can live with the occasional quirk when some part of the computer cannot function properly because it was never properly documented. I know that, by the next OS release (right now, that will be in about 4 months), it will.
Also, BtrFS is very interesting (although it doesn't compare to ZFS, but that's another can of worms)
edit: I really wish I could read the article.
edit 2: Now that I am able to read it:
> When a problem solver uses a Linux desktop, they are immediately confronted with the possibility of being able to modify every part of their system
Yes, but some of them never do it. They modify it once to tailor it to their needs (I check-out my Emacs configuration) and never touch it again. When I moved to Linux in 2002 or so, I spent some time trying skins and desktops and so on. Now all my computers use the default look and feel provided by Ubuntu. The last 4 years have been like that.
I guess I'm always trying to make OS X a bit more usable to a primarily Linux/Windows person.
When I go down to that dock or activate expose I feel like I am losing precious time watching those animations (probably just me), Quicksilver does help but if I could just turn off the animations (like in Windows / YouNameIt Linux Distro) it would feel much nicer.
I tend to use Windows (design, production and games) and Ubuntu (programming, server related tasks) primarily and I have them set up very similar, using "Expose with no animation" (switcher and compiz), Launchy, very simple grey themes, a "Windows 7-like dock" for Ubuntu, and using the same fonts and Firefox/Thunderbird profiles, it is almost seamless other than the restarting part.
This works quite well and allows me to get real work done without flashy stuff going on all over the place or processes running in the background eating up precious CPU cycles that I can't seem to disable without breaking something.
It could be I'm just a hacker/tinkerer by nature, and when a system like OS X says I can't do something it makes me want to do it even more.
So, Apple.. Where is that option to disable all animations, or to show folders at the top of the finder (without totalfinder, or organizing by type)? </rant>
I switched to a MBP in 2007 since I was due an upgrade on the giant Toshiba I was lugging around. By then, most of the PC options were on offering Vista. By then, I had grown into a significant 'frenemy' arrangement with Windows XP and just did not want to put in anoter x number of years learning another Windows version and get it to behave to my liking. So I went with the MBP and after a week or so I was quite happy and settled with it.
I switched to a Macbook after that (left the job and hated the abysmal battery life on the MBP) and it has been my main work/dev machine ever since.
The reasons why I love the Macs:
1. It stays out of your way. I don't often reboot for 30+ days. Between the Finder, Terminal, Chromium & Textmate I get more work done and less time is spent on understanding the innards of some inane bug.
2. Ability to compile stuff has improved a lot. In 2007 it was a pain to get most of the OSS stuff compiled on it, it is a different story now. But this is also because the people who manage the products are doing a better job of targeting the Darwin as an architecture.
I was a pretty involved Linux user in the day. There was a time when I would get my kicks out of the fact that you had to work hard to get a video driver going. I don't have the time for that now. On a recent Netbook I bought, I tried the Ubuntu Netbook Remix. It worked, but with a lot of glitches and plenty of inconsistencies. Made an effort for 2-days, installed XP on it and been happy ever since.
I find it's interface to be, hands down, the best I've ever used. Since I work, essentially, two full time jobs (my day job, followed by Appleseed at night), I frankly don't want to have to wrestle with my operating system, even just a little bit.
I used Linux for years, haven't really used Windows since XP was released, and switched to Mac OS X about three years ago, and I'm not really interested in going back. I'm a fan of picking and choosing your battles, as opposed to adopting an approach of total purity, so right now my focus is building open source social networking, and if a closed system helps me do that without tearing my hair out, then I find that to be an acceptable compromise.
It's hard to realize how much crap you have to put up with while running Windows, until you get rid of it (whether for OSX or Linux, BSD, what-have-you).
Laptop (though admittedly non-coding) - Macbook Pro.
'nuff said.
I've tried Linux every couple of years since at least 1998 -- I really want to use it -- but I always end up searching forums for the fix to a broken Makefile for a printer driver. Or maybe it's sound, wireless, graphics, whatever. Still. After all these years. I HATE dealing with that stuff. So Linux is out.
OSX is the only man left standing.
copypasta:
A common trend among many of the best developers is to see them posting screenshots running OS X. Many of the best developers, some my personal ‘developer heroes’, have made the switch to OS X.
It’s All About the Mentality
I respect and admire programmers like @migueldeicaza, @mitsuhiko, mandrake, @dhh for all they have accomplished. One thing they all have in common, present day, is running OS X. Mandrake cowrote Enlightenment (which is the original really cool window manager for Linux), Miguel started Gnome, and the majority of code both Mitsuhiko (wrote almost every useful Python library ever) and DHH (Ruby on Rails) write run on Linux backends to say the least.
What are they most known for? Problem solving skills mixed with actually producing / releasing.
Linux is Open Source
And this, I believe, is why great developers tend to move towards OS X (yes, there are plenty of exceptions). A critical piece of writing software is focus. When a problem solver uses a Linux desktop, they are immediately confronted with the possibility of being able to modify every part of their system. When a problem solver runs OS X, their options are severely limited, by design.
I think all of us are guilty for hunting down PPAs to get a backported browser, or running ‘./configure && make && make install’ at some point. And when you have programming skills, source code can turn into a detriment to productivity when you start modifying projects outside of what you intended to accomplish. All of a sudden you start hacking a project for a few minutes, and wake up days later in a coding haze with all of that time lost.
Personally I have had experience with this while using old Linux distributions. We have SLES 9 systems and SLES 10 systems here at work, and in the past year I have spent countless hours hacking Sprint 3G wireless drivers, USB over IP, Firefox 3 and countless others to work on these older systems. Why? Not because they are the primary goal, but because I could, which in turn took up time from things I actually “wanted” to do.
Time is Valuable
Watching one of Miguel’s presentations, he mentions that he does not have enough years left to “worry about memory management” and that they leave that to the younger folks. This is the crux of the argument. For programmers, there is far too much opportunity for distraction at every avenue. We don’t know how long we will be here for, but certainly we know that nothing we care about will get done as long as our focus is spread so thin across the spectrum of Linux.
Summary
This is all just food for thought, not a judgement against any form of desktop or usage pattern. For reference, I am still running Ubuntu on my desktop, and being wildly unproductive on the tasks I want to finish.
Now, the lure of an OS X machine for an OSS hacker, is that besides the system "just running", with minimal hunting and improvising, they also need/want/like to have several apps not available as Open Source, or with sub par replacements. Stuff from running Photoshop or Omnigraffle to connecting their mobile phones and being able to see and edit their video captures with a minimum of fuss.
Of course, this only holds true for OSS hackers that are "pragmatic" and just use what they think is best for their needs, not for hardcore "Libre Software" types.
Miguel de Icaza for one might have Macbook, but I am sure it at least dual boots to Windows. It would not be possible otherwise, since he needs to run .NET non-stop and copy/paste code from Reflector to his Mono implementation, or whatever they are doing to clone .NET to Mono.
And I am pretty sure Apple Software has nothing to do with how they really win their bucks. So no need to look for logic here - they just like the shiny hardware cause they are geeks. That's it. No rocket science or philosophy here.
"he needs to run .NET non-stop and copy/paste code from Reflector to his Mono implementation" That's a pretty bold claim to make. If you're not trolling, do you have solid evidence to back this up?
"Do not use the ildasm, reflector or other equivalent tools program to disassemble proprietary code when you are planning to reimplement a class for Mono. If you have done this, we will not be able to use your code."
Saying that Miguel de Icaza represents open source developers is just wrong. I respect the guy very much. But he's a completely different beast than the average open source programmer joe
Now most of the ones in academia do use mac (and used SGI workstations before that) just because they have a fat allowance for gear and they have no idea how to waste. so mac is the obvious way to go if what you need is to waste money.
With other systems programmer types, I still see plenty of macs, but I blame that on the fact that those programmers are spending all of their important time on the server and some don't feel like futzing around on their laptop with a more fiddly OS like Linux or Windows. The only thing that all programmers seem to like to fiddle with endlessly is IDEs and text editors, and there seem to plenty of mac options for that.
People who crunch a lot of numbers like those machines. They aren't that expensive when compared with the alternatives (racked servers)