Hacker News new | ask | show | jobs
by kragen 5255 days ago
To my taste, Linux puts a lot less roadblocks in my way than MacOS does. Maybe my complaints that follow are simply due to my ignorance, in which case I hope you will take the time to correct me, but as far as I know they're real roadblocks.

I want to see the source to the ls command? dpkg -S /bin/ls; apt-get source coreutils. I have no idea how to do that on MacOS. I want to be able to compile it? apt-get build-dep coreutils, which IIRC will install the compiler. The equivalent on MacOS involves signing up for a developer account with Apple, signing a contract that promises God knows what, and downloading a multi-gigabyte disk image. Even after installing, gcc still isn't in your PATH, and won't work properly with the platform SDK without a verbose -isysroot option. I want to make executable the file named gooba somewhere under my current directory? chmod +x $(find -name gooba). Apple's find requires an explicit `.` and maybe an explicit `-print`, I don't remember. Got performance problems on your machine? On Linux you have htop, dstat, iotop, powertop, and latencytop, none of which have MacOS equivalents as far as I know. Even plain old top has keystroke commands to switch between sorting by CPU and sorting by resident set size. As far as I can tell, doing that on MacOS requires restarting top with different command-line options. And there's no package-management system, so if you're building a server-based app, good luck installing the same versions of the same libraries on the server that you tested against in development. Or on your new dev box. And the server's probably running Linux anyway. Also, where the fuck is strace? Dtruss is a fucking piece of shit.

Admittedly XCode is a pretty nice IDE, but there are a lot of nice IDEs out there, and most of them run on Linux too. And I'd love to have dtrace on Linux.

4 comments

If I had to choose between a pretty and easy to use OS (that lets me write programs in peace and not have to manually fix everything from Terminal), and the ability to manipulate my OS's "ls" command, I'd choose the pretty OS every day. I wish we could have both, but now that we have to choose, that's my decision.

But that aside, I'm not sure about the rest of your complaints. I just created couple new folders and 5-6 files named gooba and gooba2 and typed 'chmod +x $(find . -name gooba)' and everything worked (gooba's are executable and gooba2's are not). I don't think that extra dot is that bad and I actually like it better (it's more logical).

Also, you can install package managers such as: MacPorts[1] or Homebrew[2] or Fink[3] (I prefer Homebrew). Then you can install htop, iotop, ftop, and a million other unix apps.

in 'top', if you press 'o' (order), and then 'cpu', it sorts them by CPU usage. You can even set a secondary key by pressing 'O'. And you can always "alias top='top -o cpu'" in your .aliases.

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

[2] https://github.com/mxcl/homebrew

[3] http://www.finkproject.org/

> If I had to choose between a pretty and easy to use OS (that lets me write programs in peace and not have to manually fix everything from Terminal), and the ability to manipulate my OS's "ls" command, I'd choose the pretty OS every day. I wish we could have both

Fortunately, you can: just use a current Debian on well-supported hardware. (Until a year ago I would have recommended Ubuntu.)

> I don't think that extra dot is that bad

There are a zillion things like that in MacOS that are just that little bit harder to use, for no good reason. Requiring five extra keystrokes in `top` to get an actual list of the top processes is another example. You can come up with justifications for why the roadblocks are there, or rationalize that they're not that bad, but they really add up.it

It's like Apple's vaunted relentless focus on user experience just doesn't extend to programmers.

> Also, you can install package managers such as: MacPorts[1] or Homebrew[2] or Fink[3] (I prefer Homebrew). Then you can install htop, iotop, ftop, and a million other unix apps.

If you're comparing MacPorts, Homebrew, and Fink to Debian or Ubuntu, I think you haven't used Debian or Ubuntu. I didn't realize iotop and htop had already been ported to MacOS, though. That's cool. Thanks for letting me know. Powertop, latencytop, strace, and dstat no, though, I guess?

I use htop on my macbook, that said it dual boots to #! linux. I honestly work in OSX more often than my linux environment, but installing Gentoo on an old PC when I was 15 really gave me the foundational understanding of computers I have today. Doing it again and again on various machines has improved that. I would like to work in my linux environment more (besides on my server that is), but I use OSX because there are a lot of convenience applications that make web development a cinch. Plus with homebrew I can get most cli stuff I need with out any problem.
You go to

http://www.opensource.apple.com/release/mac-os-x-1072/

or use wget or curl to download the source for what ever you are interested in.

I probably don't have to point out to most readers that this is a lot more work than `apt-get source coreutils; apt-get build-dep coreutils`.
Yes, it is. But on the other hand it is more discoverable. All I had to do is type "mac os x source code" in google search. It is a little harder to find out about apt-get source coreutils.

First of all you need to know about apt-get. Then you need to know that ls lives in coreutils etc.

You don't need to know that ls lives in coreutils; dpkg -S /bin/ls tells you that, although it is true that you have to learn a little bit about how dpkg and apt work to get to that point. You do need to know what package ls lives in to figure out which tarball to download from Apple's web site.
I'm not sure what you mean by that. Maybe you're trying to say that, yes, there are a hell of a lot of serious roadblocks?
He's responding to your first comment

I want to see the source to the ls command? ... I have no idea how to do that on MacOS.

The rest have been addressed, but as for this:

The equivalent on MacOS involves signing up for a developer account with Apple, signing a contract that promises God knows what, and downloading a multi-gigabyte disk image.

It involves running an installer from your install disc, or, admittedly, in the case of the most recent release, downloading a multi-gigabyte disk image from the app store. You don't need a developer account if you just want to install the software.

So the answer to "How do I find the source to the ls command?" is "click around a web site perusing long lists of packages, trying one after another in an effort to figure out which one the ls command is from, then manually download nine files one by one from http://opensource.apple.com/source/file_cmds/file_cmds-212/l...? Is that a fucking joke? If that's your idea of fun, go ahead, but I have a computer to do that kind of thing for me. I have an operating system with package management, not a hobby.

> You don't need a developer account if you just want to install the software.

Perhaps this has changed since the last time I did it, a couple of years ago; it did then.

(On further examination, a few clicks on the Back button get me to a place where there's an image that links to a tarball of file_cmds!)