Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Five reasons why this developer won't switch to Mac (dieblinkenlights.com)
13 points by rbanffy on April 29, 2009 | hide | past | favorite | 35 comments


You lost all credibility with this statement, "Developers usually don't care for a unified user experience." You are talking about your preferences, and so was the guy who wrote the smashing mag article. You are both making far too general statements.


How about the author's argument against macports: "You will learn a lot more than you ever wanted to about source-code and build systems." Um, we are talking about why a developer might want to use a mac, right?


What I find more ironic about that is I use ports a lot, but I've never thought about the source-code and build systems aspect of it.


That's exactly the same idea that I was getting from this guy. He's annoyed by people who make broad claims, yet he seems to have done this himself.

As a Python/ Django developer who's tinkering around with Objective-C I couldn't be more happy with OS X. But maybe that's because I used FreeBSD exclusively before OS X? Which he seems to think isn't comfortable.


So, I assume your computer has a steering wheel, just like your fridge.

Right?


Can someone link me to an article that explains exactly what is so terrible about Macports? I often hear Linux users moan about how awful and confused and broken Macports is. But, as a web developer who uses Ruby, Apache, MySQL, and git via Macports, I've never noticed any trouble. (A few years ago Macports tended to lag the latest versions by a little too long, but that seems to have cleared up as programmers migrate to the platform.)

My working assumption is that these complainers must be heavy-duty C programmers, or some other variety of coder that uses a completely different set of tools than I do. Or that they maintain some older codebases which link against older, incompatible versions of various libraries, so they need to install multiple versions of half a dozen libraries and then carefully control how the linking is managed. Or they're former Gentoo users who are completely obsessed with the minutiae of how their tools are being compiled and want to be able to tweak their compiler optimizations on a fine-grained level.

Or maybe I just don't understand Debian well enough [1], and if I did I would fall in love with its build system and spend all my working life in a Linux VM.

---

[1] I mean, I maintain Ubuntu servers, but that doesn't require a lot of understanding of the build system. By and large, aptitude or apt-get just work.


Can someone link me to an article that explains exactly what is so terrible about Macports?

I'm using Macports at work and Gentoo/Ubuntu at home. I generally use the same packages on all machines and have been using the same setup for about 3 years. I've never had a problem with Gentoo and Ubuntu in this time but I've hit several showstoppers with Macports. Just in the last two weeks a collegue has had problems with several ports failing to download because the location of the source distribution is out of date.

I respect what the macport maintainers are doing and have been grateful to them for fixing bugs. However, the experience of using and downloading packages doesn't compare. I suspect that Apple are part of the problem because they aren't in the business of providing a nice platform for Unix developers. One simple example -- I use macports gcc-4.3 but can't debug because a corresponding gdb isn't available.

Somebody in our office just chose a PC over a Mac because the Linux (specifically Ubuntu) experience is better when working with open source packages.


I'm with you -- I'm a developer who switched from Windows to OS X last fall, and Macports has worked wonderfully well for me.

As to the overall article, I don't know, maybe I'm just never given Linux a proper chance as my main development machine (I do have three headless Linux boxes in the basement that get heavy use), but OS X seems to have 99% of the power of Linux while being drastically more user-friendly. It's like Emacs versus TextMate -- sure, Emacs may be marginally more powerful, but TextMate has more than enough power for anything I've actually tried to do, and incorporates the last 20 years of user interface design and practice, too.


By and large, aptitude or apt-get just work.

That's the difference. On OSX they don't. And fink is a poor substitute.


Please explain. What doesn't work? I've used MacPorts over and over again for the past 2 years without any problems. One of the few annoyances is that MacPorts will install copies of software that already exist on the system, but that's not really a big deal.


Well, evgen already provided evidence better than I ever could.

My general take would be:

The most advanced binary package manager in existence is apt-get. The most advanced build dependency manager is portage. Both have evolved over many years (apt celebrated 10th birthday just recently) and are at the core of their respective distros.

MacPorts and fink, on the other hand, are afterthoughts, somewhat akin to strapon-dildos. Fink at least builds on proven technology, MacPorts reinvents the wheel altogether. Neither has performed convincingly for me over the longer term. I was regularly confronted with outdated packages, broken builds or other screwage as soon as I left the beaten path of the few most popular packages.

The package situation may have improved recently (my expirience is from 6 months ago) but the parallel universe, second userland issues are inherent.

It's just not possible to match the real thing™ by piggybacking a package-manager on top of a system that wasn't designed for it. Even when the package manager is as good as apt.


I use macports quite heavily on my box and while I think it is generally a good system I have a few complaints. [I will add the caveat that it has been a long time since I used apt and similar systems so some of these complaints may also exist for the alternatives...] For starters, ports are frequently out of date. It has reached the point where I am maintaining my own local macport sources tree and hand-rolling portfiles for about 50 packages that I care about and need to be up to date. Secondly, the macports system does not deal well with versioned dependencies. If X depends on a version of Y that is at least rev Z there is no way to express this. You end up just saying that X depends on Y and if there has been an update to Y (which you don't particularly need/want) you are going to get it updated if you update X; this leads to a lot of wasted time for me when some app depends on something like gtk and I end up watching the system pull in the new rev of gtk I don't care about and updates to five other X11 packages. The last minor annoyance is that the tcl scripting system does not handle recursive directory copies well (e.g. copying a doc dir or data dir that has multiple subdirs) so you end up using a recursive mkdir & copy * pattern which will then choke if one of the sub-sub-sub dirs is an empty directory.

Overall, I like the system and use it quite heavily, but it does have some warts.


I love how he says "I find it utterly annoying when any fanboy makes broad claims such as 'Developers are Switching to Mac'"

then goes on to say..

"Windows sucks. Period."

I've played with Macs, and have given Linux an honest shot, using it as my only OS for about 2 months. I am simply more productive developing PHP/MySQL on windows.


I used windows for years to do the same thing. Now, when I'm at home, I'll hook up my mac to the monitor and hide half of my windows desktop because I'm much more productive here.

We should compare notes. I bet we're both doing something wrong/stupid in our rejected OS's.


If you cared enough to read the sentence a little bit further, you would realize that it's "mostly because they are incorrect".

The other thing, that "Windows sucks, period"... Well... Millions of lemmings can't be wrong, can they?


I started using Linux in 94, mostly as a way of riding out the dark ages when operating system diversity all but vanished from the face of the earth. I'm a developer, and my primary development system was several years old, running Debian ('unstable' branch). I loved it; I was good at it.

In 2006 I changed jobs and was fortunate enough to get a quad-core MacPro to work with. By that time I had already been an OSX user at home since Panther came out. Before Linux, I had the good fortune of being exposed to Nextstep on x86, PA-RISC, and even a SPARC 'tadpole' laptop. (Noisy beast!)

I don't miss using Linux, although I still love it. It has its own set of hassles. Most things do.

I respect this guy's choices. Obviously he feels the need to vent, and that's what the internet is for.


"I respect this guy's choices. Obviously he feels the need to vent, and that's what the internet is for."

Not the internet as a whole, but that site of mine, certainly ;-)


Good for him.

I, on the other hand, don't really care what machine I'm running on; I just happen to really like OS X.


Good for you.


"Macs are the best computers for a lot of people, but not for software developers."

That is just plain false. Installing packages (that either don't come with OS X or just override the installed version) is a piece of cake. Without Ports.


A more appropriate title for this post would surely be "Why I love Linux and If You Were a Real Developer You Would Too".

While one could argue the original article was biased towards OS X and not entirely objective, this rebuttal is so frustratingly incorrect on so many levels. Either the author is misinformed or too stubborn to care that they're mistaken.

This article wouldn't come off as a troll piece if there'd been some explanation as to why Linux was quantifiably better for their particular uses instead of merely spreading misinformation about OS X.

It's about the same as having the opinion "I like Chevy because Ford sucks!"


This puzzled me for the longest time before I finally figured it out. My position basically ignores windows and puts it in the "you use it because the company who bought you a computer and subsidises your environment bought it for you" but maybe I could imagine some permutation of the same kind of argument for windows users, also.

I call it the Segway argument. ;)

Marathon runners, the type that train obsessively for days at a time, fly to exotic high altitude locales to starve their bodies of oxygen, etc, and are at the absolute peak of human conditioning, are quite capable of running very long distances without much effort, in fact a case could reasonably made to say that they actually enjoy doing so.

Try sell one of those people a Segway.

It will have no tangible benefit aside from getting in the way of that person, and in fact just the idea of trying to sell one to that market shows the entire thing for the charade it is. It is not designed to service people like that.

The thing is that you can fairly make an argument that Marathon Runners like that are probably wasting their lives / time developing that degree of ability simply to do something like get from A to B with a reasonable level of rapidity. Thus something like a Segway can actually make sense because it isn't targeted at marathon runners, but a completely different type of person.

Now I don't want to be overly bragging, but I am only comfortable speaking for myself in this debate so that is what I am going to do. Once you've been using Linux since 1994, keeping well abreast of all the changes and benefits that have been added to the platform between then and now. Once you've mastered that environment so thoroughly that the regex flows from your fingertips as easily as a normal user's expectation of a tooltip hover on a pretty OS X widget. Once you've become accustomed to the almost limitless flexibility and control of the platform, and all the niggling problems and voodoo that one must occasionally confront when dealing with such a fluid platform slips so silently into the unconscious competence basket that you cannot personally even define the fact that it actually requires any competence at all without thinking about it really really hard.

Once you've got all that, the idea of someone making a cut down variant based on the BSD code base and making everything "just work" instantly, providing a contiguous user experience, doing a ton of things that basically all group up under the heading of "eliminating the need to acquire any indepth computer literacy at all", the idea of switching to a mac is as puzzling to you as the idea of the marathon runner picking up a Segway.

The critical thing to take away though, is that this is all value neutral, the marathon runner is not a hero, he probably wasted a ton of his life and time that could be spent better elsewhere acquiring the conditioning and abilities allowing him to accomplish the feats that he can. The same could be said of people in my situation with regards to computers, I am prepared to accept that if something like OS X had existed back when I wanted a "real computer" in 1994, it would indeed have been a waste of my time to develop all these skills. Further fair arguments could be made that I've wasted a ton of time developing all those skills now when you can get it "almost" as good just by paying a little premium on top of your average computer's cost. I get all that, I want to be as absolutely non-elitist about this as I can be. Taking all the above information into account I can totally see how it makes sense for normal people, and even up to a threshold some pretty extraordinary people even in this particular sphere to choose OS X as a platform.

That is definitely something that was in my blind spot not long ago, just as surely as Segways were an utterly bewildering concept to a marathon runner, but I'm aware of it now. The fact is of course that your average person is generally a lot more interested in stuff like walking around and fitness than advanced computer science, thus the relative success rates of Segway and Apple Computer.

But just because that market exists, is real, and has genuine value propositions for a large swathe of humankind, should not be taken as a reflection of it's value for everyone regardless of experience or situation. People like me will probably always prefer what we've developed this intensely powerful unconscious competence in, and everyone else will look at us and say it was a waste to do that, and although I don't agree with that position, I can at least see how the conclusion would be reached and accept it.


That's funny, because I've been using Linux since 1993 when I got sick of needing to go to the CS computer labs in college. I've dealt with configuring X more ways than I could possibly count. I've used Linux as my main development desktop for many years.

And I'm typing this from my MacBook, which I've found to be the best development environment I've ever used.

Just like I tell people who bash on different types of motorcycles: ride what you like, like what you ride.


Curious: When was the last time you used Linux, why do you find OS X to be the best development environment you've ever used, etc etc etc, Details are ace. Not attempting to be confrontational, just genuinely want to know.


I use Linux at home right now (Ubuntu 8.10) for a mythtv system. I used Ubuntu 7.4 (and others previous) for a couple of years for my desktop environment. I've run Linux since 1993 and administered it since 1994 (trip down memory lane: did a google search and found an e-mail from 1994 about a problem I was having with ftpd :).

The reason why I changed was because I got sick of the nagging 1%. It didn't seem to matter where, there was always some 1% that wasn't polished. It was either that multiple monitors didn't work quite right (especially when plugging in my laptop) or that my wi-fi wouldn't come back to life after hibernating. There is always some little thing like that, and it interrupts what I really want to be doing (developing, not troubleshooting).

On top of that, I don't just use emacs. I use things like photoshop, scratch (always fun to code with my kid), garage band, keynote and pages. Yes, I can get the same functionality on Linux (usually), but now we are at a 90% experience (at best). There is truth (for me, at least) that well designed OS X software just gets out of the way.

Yes, I do deal with "multiple user land", though I've honestly never thought of it that way. My shells (including emacs) are set up to use ports, the rest of the system uses Apple's defaults. I've never run into a problem there, but, objectively, it is a little more pain than I would have on Linux.

If I were strictly using emacs and bash in a desktop environment, Linux would be better than my MacBook, but I don't. I think it is disingenuous to imply that developers don't do anything but that. In addition to being a developer, I'm a regular computer user, too.

With OS X, I get what I feel is a good development environment along with a great computing environment. With Linux, I got a great development environment with an OK computing environment. That was fine when I enjoyed spending my time troubleshooting the environment, but I'm not interested in that now.


I follow you, but what I was talking about with regards to unconscious competence is exactly what makes that "nagging 1%" totally irrelevant, case in point, upgraded an 8.10 system to 9.04 today, didn't boot, remembered something about grub switching to a different format for it's root line, edited the boot line in the grub interface, sure enough it was UUID based, switched it to hd0,2 based, worked instantly, time elapsed < 20 seconds.

This is globally applicable to any problem I run into now, because I have those unconscious competences built up from dealing with thousands upon thousands of tiny issues like this in the past, I no longer even consciously see them unless I look hard for them. Thus, taking care of those problems for me is not something I find very valuable.

In the same way, I've trained myself to stick to hardware I know doesn't suck for Linux, avoid ATI like the plague, make sure that all the devices I'm going to be using work before I fork over cash for them, etc. So right there there's a bunch of issues I don't even come across like your multi monitor issue because I have taken measures to offset them appropriately.

As in the original argument, you could indeed argue that such things are a waste of time and it's a lot easier to just pay some other company a premium to handle it all for you, and thus it makes sense for platforms like OS X to exist and thrive, but it still doesn't negate my original point, you've just evolved away from being in the same group of users as I am into another one altogether. And that is of course totally fine, but just serves to reinforce the original point even more.

Thanks for the reference about scratch, that looks kind of interesting, if I ever find myself having to teach I can definitely see a use case for something like that.


Like I said: Ride what you like; like what you ride. I can definitely see why some people would like Linux better as a development environment. I can see why some people would like OS X better. Believe it or not, I can even see why some people would like Windows better (but I have to stretch really hard :).

However, your central argument seemed to be "if you've used Linux since 1994, you would never find OS X better than Linux." I wanted to provide a counter-point that, in fact, it was possible to use Linux since before 1994 and still prefer OS X.

I'm still hoping for the day that I can have the same experience on Linux that I get on OS X. One interesting observation is that I seemed to be able to handle it better when the experience was 75% than when it is 90%.

Perhaps it is like human robots: the closer they get to being human, the creepier they get. :) Perhaps the closer Linux gets (without being there), the more I notice what's not right about it.

For anybody who isn't sure whether to go OS X or Linux, I'd certainly try Linux first.


I need to be less wordy.

My central argument was supposed to be that when you've spent the time to develop the skills necessary to use Linux as a platform to the point where the advantages of the OS X platform are invisible and the deficiencies are glaringly apparent, you're not going to prefer OS X, despite the fact that it's still perfectly fine for a whole ton of people.


You summed it up pretty well, but I would put it slightly differently: there is a point where the characteristics of OSX are no longer an advantage, but a hindrance, the same way as the characteristics of a more traditional Unix (or Linux) are a problem for those who are more used to OSX or Windows.

There is a time you have to get rid of the training wheels.


> I find it utterly annoying when any fanboy makes broad claims such as "Developers are Switching to Mac"

OK, people who make broad claims based on anecdotes and hand-waving are annoying, I agr--

> Macs are the best computers for a lot of people, but not for software developers.

Goddammit.


meh, I too am a Linux user for development. I agree on a personal level but really it comes down to preference. Mine is to run a free open source software that works better then anything else I have ever used...

My opinion of this article? troll.


"my netbook came with a XP license, so, in essence, it came for free"

Another one drinks the koolaid.


My netbook came with a Linux... that sucked.

So I replaced it with a different Linux that didn't suck.

Unfortunately as long as Windows XP is above a 50% market share I must loudly point out what a maggoty decrepit worm-ridden corpse it is. Friends don't let friends date zombies. ;-)

OS X can be tolerable, but it's a bit like wearing a corset, it can make you look good; but it's kinda hard to breathe.


Since there was no way to get the computer (it's a netbook) with the specs I wanted without Windows, that's pretty much the only choice I had.

And the Windows license proved handy on more than one occasion - for instance, my bank insist on an ActiveX control and Internet Explorer for certain operations.


Badger's Laws of Mac/PC conflict:

1) If you like Macs, use a Mac. 2) If you like PCs, use a PC. 3) If you think one is better than the other, keep it to your damned self you obnoxious bastard




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

Search: