Ask HN: is devving on OSX legit *nix experience?

6 points by delinquentme ↗ HN
So I'm going back and forth about the OS for my new dev machine. Will I be getting good experience with *nix using the "just works" OSX.

That being said I'm guessing the inital answer is "No its not"

10 comments

[ 2.5 ms ] story [ 38.0 ms ] thread
If you use the command line tools like make, gcc, scripts, autoconf, etc., then it's almost exactly like developing on Linux/Unix.

If you use Xcode, then not so much... though it's still more like Linux/Unix than Windows.

so my fellow developers work on OSX ( I'd ask them but they've only ever used OSX ) They run textmate / console for the majority of their work, I'm thinking thats where I'll be...

So then its a "Yes" sans all the usual matching of drivers / software to mesh with the hardware

It's nix plus a bit more. I'm not aware of anything the GUI does in Linux that it doesn't do in Mac. Some workflows will be different, such as xcodebuild, but everything else like svn, git, cp, mv, make, sudo, nano etc is the same. You can do without Xcode, cdto and a Cocoa-only text editor, but don't put yourself through it.
If you want the unix experience, stay in the shell. Use vim or emacs and become a passionate follower of either of those religions (but not both; nobody likes a cleverdick).

Actually, it's hard to do powerful things in OSX without using shell commands, just like it's hard to do in any graphical environment. But once you drop to shell, it's all unix.

That being said, use the right tool for the job. If you're writing mac or iOS software, use Xcode.

I appreciate your response.

So no iOS.. Rails =]

And ill probs use textmate?

Now what about some of the equivalent operations to GREP and AWK? Or are those *nix based..thus you'd use them as I would regularly?

..and lasty a tool that I use constantly:

Is there any function for multiple desktop support?

It depends on what nix skills you're looking for.

Basic shell and command line tool use? Yes you can get those, if you stick to using those tools and not the GUI.

Working with the operating system and/or administration experience? Not as much, or will be OSX specific.

I work on a mac frequently and heavily use the shell. The generic things are easy and are the same on every system, you'll be able to pick them up anywhere. There are things that you won't be as exposed to on the mac that you would be on a different nix, as well as things that you could be exposed to, but probably wont unless you go digging.

I developed on Linux for 5-6 years before switching over to OS X on my main machine.

Installing xcode (3 is free, 4 costs a small fee) gives you GCC4 on the command line, plus some other tools/libs. Note: I've never actually used the xcode IDE, I use Emacs.

You can also install a rootless X11 server and run X applications in it. Wine on mac actually uses this, and I've been using it to play Homeworld 2.

Most of the cross-platforms IDEs that you would probably be using (if you're that kind of guy) in Linux are available on mac. Take a look at QtCreator, Eclipse, Netbeans.

Mac comes with Java and Python installed. If you do C/C++ development the only real differences are that some libraries are installed as "frameworks" instead of in the usual /usr/lib (eg. you link with -framework OpenGL). Also the dynamic libraries are dylib's instead of so's (and consequently, DYLD_LIBRARY_PATH).

Mac calls multiple desktops "spaces", and they work pretty much the same as in Linux/Gnome.

Grep/awk/sed/etc all work pretty much the same as in Linux, although I think they are the BSD versions instead (whatever the reason, they are a little bit more picky about command line options).

Mac's Terminal.app compares favorably with Gnome's terminal (including tabs, transparency) and has some nice looking built-in themes.

Anything else, just ask. :) If you've used Ubuntu recently, switching to Mac may give you deja-vu.

Ahhh sorry to reply to myself, but the biggest thing that hurt me switching to mac was that I became very used to selecting text and middle-clicking to paste in Linux. On mac, middle clicking does something silly like pop up the dashboard. Frustrating indeed.
> On mac, middle clicking does something silly like pop up the dashboard. Frustrating indeed.

No it doesn't. It does nothing in 99% of situations unless you have customized it, although middle clicking a link does open a new tab.

I have a couple of friends who switched to the Mac to get away from WindBlows and Cygwin when developing, while retaining a good every-day platform with cool commercial software available. They have never looked back to WindBlows, or felt like they should be using Linux.

I tried to dump Windows by moving to Linux for my every day OS, but found doing some simple non-dev stuff (synching my PDA properly) too painful.Windows was bad enough that I took the leap and bought a Mac, and have loved it for development as well. I have done mostly command line dev, and IDE-oriented dev, and both are great on the Mac. The advantage over Linux is not cost, of course, but the everyday "It just works" experience and the availability of commercial software like Photoshop. And it is plenty Unixy, if you don't mind the fact that things like user accounts aren't managed just like Linux or base BSD.

I think it is the best of both worlds and would highly recommend it.

Brian