Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
On Why Open Source Developers run Mac OS X (sharms.org)
65 points by sharms on Dec 17, 2010 | hide | past | favorite | 128 comments



From the article:

"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.


> 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.

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.


So are people switching to Macbook Pros or to Mac OS X?

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 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'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...


People are switching to Mac OS X on MacBook Pro.


How do you know that, if those are so many people?


Because when you pay attention to what's going on in a community, you notice trends. In the open source community, most notably the web development community, there has been a trend of moving to Mac.


Source?


I think you might have missed the point of the post you replied to. The point is that sometimes you don't need data. For instance, in the fashion world, one might notice a trend of people wearing a certain style of jeans. Nobody is going to go out and do a a random sampled study to see if this holds up to scrutiny, but the trend is noticeable to anyone paying attention. If you're involved at all in the open source web development world for example, it would be pretty hard to miss the trend of developers moving to Mac.


OS X. At PyCon most laptops are Macs, nearly all run OS X.


Don't judge a book by it's cover. I am running Ubuntu on my macbook. So at these conferences it may look like everyone is using macs and therefor OS X, but perhaps there are more people like me running Linux on a Macbook.

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.


There are also people switching to lots of other systems, but those aren't nearly as visible since you can't see that by their hardware.


I've been to these conferences. I would say it's about a 50/50 split among the attendees and a 80/20 split (towards UNIX or Windows) among the presenters.

The followers love their Macs.


You took that statement completely out of context. Your comment show much more bias than the author. If you had read the article with any sense of objectivity, it would have been clear that the author actually makes a subtle case AGAINST Mac. He is merely stating an observation that many high profile open source developers have switched to Mac, which is true. There has a been a gradual shift to Mac from Linux in the modern generation of open source developers. Anyone who can't see that clearly isn't looking.

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 bought a MacBook Pro 3 years ago, because I was sick of dealing with ugly PC hardware and I had gone through one-too-many 30 hour sessions trying to get suspend/resume to work reliably.

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.


I've found I don't need top flight hardware, just well designed hardware that has driver support. I'm using an old Thinkpad X41 with ubuntu 10.04 netbook edition. The drivers have been working flawlessly. I get the best suspend/resume battery time I've ever had on a laptop. I'm sure the latest macbook air tops it, but I get a good five days of letting my laptop sit in my travel case unused and I open the lid and resume it goes.


Remembered years ago when I was still using Ubuntu desktop (7.x ~ 9.x) and the following things just killed me completely:

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).


macports have a lot of packages. simple to use: $ port search keyword $ sudo port install package_name

also, you have homebrew. i never used it.

and as a protable package mgmnt: pkgsrc.org. works well also.


Yeah, MacPorts and Homebrew are both great options if you want to build packages from source, and your needs aren't too obscure. Lots of people, even in the Linux world, love source-based packaging systems.

But I'm massively impatient, and I want my packages _right now_. :-) So I prefer binary packaging systems.


I've never used it, but Fink (http://www.finkproject.org/) is basically apt for OSX.


When I last used Fink (years ago), it was "apt for OS X" in roughly the same way that an off-brand Android tablet is an iPad: It looks more or less like the same thing, but you just don't get the same experience.

Does anyone use Fink these days?


I occasionally look, and see squat. I think everyone's gone to MacPorts, though Homebrew is gaining a bit of traction; enough to be useful, nowhere near enough to be reliable.


I've been perfectly happy in my little corner of the developer landscape (mostly Rails, plus random experiments) with Homebrew.

I've had friends of mine complain loudly after ~5 minutes when they find missing "essential" packages, though.


man port <man> -b binary-only mode (build and install from binary archives, ignore source, abort if no archive present; do not create/recreate binary archives from source) (only applies when archive mode is enabled) </man>

another option is pkgsrc.org. i use it on a few different platforms with good success. if only macosx is your target, use macports.


A "high end Linux vendor" for laptops? Like what?

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.


ZaReason and System76 are two of the better known Linux laptop vendors.

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.


System76 has laptops with that option now.


Like System76.

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.


The main point being that you have less control over the internals of a laptop than you do on a desktop. So make sure all the internals "just work". Then you can do your own homework on externals.


In my experience it's heavily tied to whether you are a GUI person or a command line person.

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.


If you are a keyboard person, the Mac will drive you insane and Linux will be happy land.

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. :)


I am forced to use a Mac at work, and I use expose and such quite a bit. Yet, despite using it for over a year, it's still just way more painful for me. Here are my three major issues.

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.


> Control vs. Command is probably my number one peeve

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.


OS X is not perfect, the real problem for me is that some people just think it is

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...



Thanks! Now, I am happy with "Terminal.app".


You can get the alt key to function properly in the terminal. Look here:

http://tungchingkai.blogspot.com/2009/05/how-to-send-alt-x-i...


I like having command and control. I get Emacs-like navigation in every text box without giving up Cmd-[aefbnpt] for other things like select all, new tab or window, find in page, etc.

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.


1) Can be changed through OnyX.

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?


1) That's another thing that bothers me about OSX. Everything you want to do requires some extra plugin or package. Just because I can fix a problem with duct tape doesn't mean the problem doesn't exist.

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.


Animations (Spaces/Expose) cannot be disabled or changed through OnyX, am not sure what you are talking about.


On my laptop I hold command+control and hit left or right arrow to move a window to the next space. I also can press CMD+1,2,3,etc to move to that space so I can quickly move to a specific space.

Edit: I just realized CMD+Control+L/R arrow to move windows is a result of running SizeUp. Sorry about that.


> My thumb ends up doing work meant for my pinky.

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).


> What's the shortcut in Firefox to open a new tab?

't'.

You're using Vimperator, right?


Regarding your second point: Click on the window and hit ctrl-right arrow.


Depends on the window manager. Gnome for example is horrible for navigating by keyboard and you'll constantly fall back on the mouse. XMonad on the other hand is pretty much entirely driven by keyboard.


OS X has plenty of keyboard shortcuts. In general I find them to be much more reliable and consistent than any of the Linux software I have used (ran Ubuntu for ~6 years).

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.


I change the keyboard shortcut to focus the menu bar from Ctrl-F2 to Ctrl-2 so I can type it comfortably from the home row (Caps lock is mapped to Control). Once you can focus the menu bar everything is a few keystrokes away. I couldn't live without Ctrl-2 f <RET> o <right arrow> to open recent files.


I'm a Mac guy, I'm a developer, I use the terminal, I use tab completions and most Mac developers I know also use them.

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.


There's a dualism here. I'm also a keyboard driven person. That's why plugins like Divvy are an absolute necessity.

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.


I'm a pretty hard-core CLI person. I spend the majority of my time on mac in either terminal or emacs (cocoa emacs, though I rarely use the menu).

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.


Fedora Linux "just works" for me on my laptop (a 2 year old Toshiba Satellite), and I don't necessarily fall into the "fiddling with stuff and rebuilding stuff for grins and giggles" routine, FWIW. I will concede, however, that I am one of those people to whom F/OSS is an ideology, and I strive to avoid using any proprietary software as a matter of principle. Hence my refusal to own or use anything put out by Apple. :-)


So, can you, say, connect your mobile phone or your digital camcorder and view and edit the files to send an edited version to your grandmother in a Fedora Linux without fiddling?

If not, then "FWIW" should have been rewritten as "YMMV".


FWIW, using only ubuntu, I did both of these things last month to create a Christmas DVD of home movies and cell phone video clips.

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.


I don't think you're helping the case much when you throw ssh into the mix...


Why? SSH is very convenient, easy for anyone to understand (including my 9 year old nephew), and I trust the security. What is better?


Oh come on. You can't copy a video from an iPhone over SSH without fiddling, which was the constraint specified in the original comment.


Since I don't consider using SSH "fiddling", I don't know what you mean, and I'd guess that most developers don't think twice about how to use SSH. (If they did, they're not much of a developer in my book).

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.


I think that difficult part constitutes fiddling.


I disagree. To me, the jail-break is just a default, one-time requirement to gain control over a device I own. It's actually not too difficult, so I don't consider it fiddling.


One time? How do you handle iOS updates?


My couple-of-years-old Dell laptop running vanilla Ubuntu controls my camcorder (over firewire, no less) just fine. I used kino or one of the other non-linear editors to cut the files up and add music. Pretty simple with no fiddling actually.

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.


Not tried with a digital camcorder, but I can do all that with my phone using Ubuntu on my four-year-old desktop, so can my mother on her two-year-old Dell laptop. It isn't as smooth as on OS X, but it's definitely possible.


> It isn't as smooth as on OS X, but it's definitely possible.

Yes, but "smooth" was the whole point of the question --as in the "no fiddling" part.


Yes. I've done both (on Ubuntu) without ever having to do anything but parouse the package manager (which is the easist way to install software of any of the 3 major OSes). And they were pretty easy.

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.


> So, can you, say, connect your mobile phone or your digital camcorder and view and edit the files to send an edited version to your grandmother in a Fedora Linux without fiddling?

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."


Yes, though I haven't edited video. I use Ubuntu, but I'm assuming it's the same in that regard.


It's certainly easy to connect up an Android phone to by Fedora desktop.

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.


I'm an open source developer and I have absolutely no desire to switch to OSX. I don't really spend much time fiddling with my setup and I probably gain a lot of productivity by having an environment that is completely customized to my workflow.

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.


Gotta love Arch for being cutting-edge on the packages, too. And AUR... man, what a great distro. I probably spend something like 5 minutes a week maintaining it, and 99% of that time is updating packages.

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.


It should be an operating system. In practice, it's a religion


Cache: http://webcache.googleusercontent.com/search?q=cache%3Ahttp%...

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.


Amen to this. I've also been suffering from OSX compilation problems in the last few days and I have years of experience compiling packages from scratch. It's so bad that I'm about to switch back to using Ubuntu as a primary development machine. And macports has never worked properly for me on Snow Leopard. Fink is great for tools and libraries but the large source-based packages I'm interested in always break for some reason. I have failed to compile emacs, xemacs, Python, SDL, Irrlicht, gambit-c, Panda, Ogre and a whole bunch of others I've probably forgotten by now on OSX. All of them worked flawlessly on Ubuntu - ./configure && make && make install. Done. Compiling and installing on OSX - ugh. Yes xcode is lovely if you know how to drive it and are writing Objective C. For the rest of us, it's a wilderness.


It really should not be that hard on 10.5 or 10.6. Try Homebrew? http://mxcl.github.com/homebrew


"the `./configure && make && make install' routine seems to constantly break on OS X."

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).

[1] http://www.macports.org/


Admittedly, I have not taken the time to try MacPorts specifically. (This is probably due to the fact that the lab machine I worked on was polluted by various things installed via MacPorts, which seemed to mess with the autotools/configure process even further, if I was trying to compile something in ~/src. Left a bad taste in my mouth. But that's obviously not MacPorts' fault.)

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?


Hmm. I've never used SciPy before but let's see if I can figure it out:

$ 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.


Generally, it just means that you need to get your prefix set up right.

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.


For many open source developers/contributors, open source is not their entire life.

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.


I can understand his argument about tinkering and distractions, but personally for me it is all about apps. If Linux had the same polished apps like OS X has then I would probably use Ubuntu as my main OS.


Actually two of my favorite apps ever are on linux, Amarok and Digikam. However, in full disclosure I haven't used Mac seriously in a while. I am sure there would be things I would love on it but for the most part I am very happy with the apps available for linux, especially now KDE4 is becoming usable.


Funny, I use four "apps" more than any other software on my computer: Shell, Emacs, Firefox, Thunderbird. That's it. Sure, every now and then, I'll run some other program, say, Evince, Synaptic, Nautilus, or occasionally even The Gimp... but frankly compared to my usage of the other four, everything else is statistical noise.

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.


>When a problem solver runs OS X, their options are severely limited, by design.

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/


FWIW, the GCC, LD and other tools provided with OS X have a lot of deviations in terms of command line arguments and shared library path/bundle concepts.

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.)


A large part of that, from what I've encountered (by no means a representative sample), is due to Unix makefiles expecting/requiring X in specific-location-Y, or making things stringly-typed[1], or outright artificially restricting the systems it thinks it can run on, failing fake sanity checks up-front. Or other bad code.

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...


> A large part of that, from what I've encountered ...

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.


What experience is this based on? In my 6 years experience using a Mac as my primary machine, I've never had a higher rate of problems installing open source software with the default build scripts than on Linux.

Also, there's Macports, Fink, and Homebrew, which make it effortless.


do you have an example of something that compiles cleanly on FreeBSD that doesn't in OS X?


This is always the major problem with Mac detractors. It's clear that they have little to no experience actually using a Mac for any extended period of time.


Anecdotal evidence from my experience finds this to be true but only when you consider the type of developer and his field.

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.


I've been using Linux since 1992 with SLS. I've had several laptops on which I ran Debian. For years I did battle with audio drivers, printers, wireless, and non-functional suspend/resume.

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.


Apparently, just like real people, programmers just want shit to work when said shit is tangential to their project.

Ubuntu does a mostly good job at that, at least for me.


A once asked a professor of mine why he used Mac OS X instead of Linux. He said to me "Linux is free, so long as your time is.".

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.


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.

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.


Not really for a developer. The only thing that 'just works' compared to Ubuntu is that Emacs is installed in the default configuration. Ubuntu is what enables me to quickly resolve random annoyances and just work.


Now, I hope your professor didn't try to pass that quote as his.

It's an old saying, most frequently encountered as "Linux is free, as long as your time is worthless".


No, he didn't. He said it as "As the saying goes...".


For me OS X = A *nix desktop that actually works (no more tinkering with various peripheral devices, drivers, etc) + generally better-designed hardware + much more higher quality apps = more time left to do other things


I don't agree with the point made regarding having to build ones own software. I've found I've done as much "./configure && make && make install" on OSX as I have done with Linux -- if I'm using something that hasn't been updated in MacPorts I'm going to be building it myself.


I think there are three main factors for the switch over the last few years.

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 see Macs are very popular in the Python and Plone communities. Rails, too, has its fair share of Mac users. Lots of Java developers who use Eclipse/Tomcat/MySQL form a more even split among Windows/OSX users. Linux/BSD notebooks don't seem to be as common on Java-related FLOSS events than in other similar events.

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)


Something else to consider is the rise of the cloud - people buy apple hardware and then ssh into their linux boxes, or run them as VMs locally.


Because of "504 Gateway Timeout" errors? ;-)

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.


<rant> Funny thing is every time I use Mac OS, I find myself tinkering more than usual, whether it be on my Hackintosh, or a friends Macbook, although the Hackintosh did require a bit of tinkering just to get it running 100%.

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 think title for the post really needs to be backed up with numbers. There is a major difference between "developers I know/follow" "and most open source developers".

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'm an open source developer, and I run Mac OS X for one reason:

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.


That's pretty similar to my reasons as well. I find it gets in my way far less than others, and when it does there's a full-featured Terminal, or it's likely minor enough to ignore entirely.

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).


At the GSoC 2009 Mentors conference, I was amazed that a majority of attendees were running OS X


Robert Love @ Google (http://robert.love.usesthis.com/) - author of Linux Kernel Development and ex-Ximian developer.

Laptop (though admittedly non-coding) - Macbook Pro.

'nuff said.


I do web development. My code runs on headless Linux boxes, so I want to develop on something POSIX. So Windows is out.

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.


Apple's C++ support has got horrible recently. Debugging mode in the C++ standard library doesn't work, gdb often fails to find symbols, Shark crashes, and the compiler has no C++0x support, unlike the current compilers on both Windows and Linux.


I could see myself switching to a Mac because they have very nice laptops. a macbook pro or a air is a fine machine. on the downside: the keyboards suck and it would require me to setup a dual-boot system.


#1 reason for a developer to run Linux: KCacheGrind. Compiling and running this on OS X is a terrible PITA. I'm not aware of any native Mac app that's even remotely as good for analyzing profiler output.


Instruments? DTrace?


Not sure I buy the reasoning - but I will say I have seen a trend where previous unix guys (usually linux, some bsd - as per the demographics) end up going for the apple laptops just because of OSX.


Where is the evidence, that Open Source developers in general use OS X? Maybe some programmers use OS X, because the curious, just to try something new.


And this is why they should use caching :)

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.



Thanks for posting it, I actually turned on WP Super Cache a bit late in the game today (I didn't think anyone was reading until I was getting 500 requests per minute)


Even Linus Torwalds used an iBook with OS X --he wrote his book in it. And at a time, he used a Powemac G5 as his desktop machine, although that one was running Linux ( http://news.cnet.com/Torvalds-switches-to-Apple/2100-1003_3-... ).

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.


"Open Source Developer" is not a job or career or profession. How many people out there really make their money checking in open source code? 0.1% of all developers? 0.01%? Most people do it in their free time, use it as marketing tool for their consulting/commercial offers, etc.

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.


You cannot use Relector to contribute to the Mono source.

"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."

http://mono-project.com/Contributing


" How many people out there really make their money checking in open source code?" As an example -- Last I checked, most kernel commits were done by folks paid to write code. Similarly, most Ubuntu work is done by Cannonical; Debian, GNOME, Mono, Apache and Webkit (among many many others) all have paid open source developers.

"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?


I work on the Mono team and we do nothing of the sort. Most of us don't even have a windows machine.


That's why noone is taking you seriously, folks. Copy/Pasting .NET and you claim you do not even have the original on your machine - nobody is going to use your crap. How on Earth am I going to trust my business on Mono when you claim that ridiculous shit.


Because they don't.

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.


Where do you go to get a dual socket hex-core westmere desktop machine with 32GB of RAM? The only one I've seen is Apple's Mac Pro.

People who crunch a lot of numbers like those machines. They aren't that expensive when compared with the alternatives (racked servers)


From my few experiences at open source software programmery events over the past few years, I'd disagree. Always seems that a little fewer than half of attendees have macs in front of them. I explain part of it to myself by noticing that the numbers skew even higher than half when it's something 'webby,' and attributing that to the closeness to graphic design-media-marketing types.

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.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: