Slashdot Mirror


Best Developer Tools for OS X

NoviceW writes to share that there are plenty of interesting articles written about Mac OS X applications for switchers, but not many guides focused on programmers switching from other operating systems. This guide lists a few of the more prominent tools for Mac developers, what other tools can't you do without?

6 of 201 comments (clear)

  1. Vi by GreatDrok · · Score: 4, Interesting

    You know, in the 16 years I have been running UNIX I have really come to appreciate vi. I have tried other tools (Eclipse, Xcode, others I can't remember the name of, Kdevelop probably) but for the sort of programming I do (command line, C/MPI) you just can't beat vi (or more recently vim). Syntax highlighting, the speed of editing, having a few terminals open, keep it simple is my motto and it works. A mouse just slows me down. Of course, if I was doing GUI programming then I would use something like Eclipse (I bought the vi emulator for Eclipse) or Xcode. I still remember learning Motif in the early 90's and it was a nightmare.

    Anyway, like any good *nix, OS X comes with vim pre-installed. Just make sure you have X11 and it is business as usual just like it was back on my old Sun Sparcstation 1 running SunOS 4.1.3 :-)

    --
    "I have the attention span of a strobe lit goldfish, please get to the point quickly!"
  2. Missing from the list: Realbasic by hotspotbloc · · Score: 4, Interesting
    RB clearly isn't the "one tool for every job" but for the right job it's great. A while back I worked for a company that needed a few different internal apps that could communicate through an emulated 3270 session and other networked apps. I was asked to put together a Mac client for a fax server and quoted them three weeks for a functioning proto. They were surprised that it could be done so quickly. Normally I would've used CW but thought I'd try out RB for this one. It only took three days and out of fear they would expect the same speed from me for other projects I quietly played Doom for the rest of the time minus three days. Showed them the app and they loved it.


    For the right job RB is a great tool.

    --
    "I hate to advocate drugs, alcohol, violence or insanity but they've always worked for me" - HST
  3. Re:Shark. by AttilaSz · · Score: 2, Interesting

    Seconded. Here's an account of my first use of Shark (and XCode) that helped me speed up a program by a factor of 4: http://constc.blogspot.com/2006/01/taking-out-pain -from-c-development-on.html

    --
    Sig erased via substitution of an identical one.
  4. Re:Objective-C by samkass · · Score: 2, Interesting

    Objective-C was a pretty nice language, but it lost. Now it's pigeon-holing Apple into a tiny subset of the world's developers, who are becoming increasingly fanatical. If they really want broad-based industry and developer support, they will have to dump it eventually. For now, they're getting by with bridges to a lot of the more popular scripting-style languages, but the fact that the Java bridge failed is proof that this approach can't work for "real" languages.

    I'm a bit of a heretic, but I think Apple might do well to wholeheartedly embrace .NET/C#. I'll bet they could get great licensing deals from Microsoft, giving them a jump-start, in exchange for rapidly increasing cross-platform interest in the language over Java.

    --
    E pluribus unum
  5. Re:Objective-C by Mattintosh · · Score: 2, Interesting

    I'm not joking. It just makes much more sense to me to:

    newImage.initWithContentsOfFile(fileName);

    This tells me:
    - I'm working with an image, not a pointer to an image (or I would've used ->).
    - initWithContentsOfFile() is a member function, not a member variable.

    I get none of that from Obj-C, though that's probably just because I'm not familiar with it. But that doesn't mean that the language isn't unreadable. Why? Well, I can honestly say that I've tried to learn Obj-C's syntax. I learned C-syntax early, and I'm most familiar with it. But that didn't prevent me from learning Pascal syntax, BASIC syntax, COBOL (ugh) syntax, or any number of other languages of various types (programming, scripting, document description, etc.). But Obj-C was the nut that wouldn't crack. I've tried multiple times, each time thinking, "Hey, maybe I just didn't try hard enough." I always end up thinking something else. Something more along the lines of, "Who wrote this crap? Why do they hate me? What moron thought this was a logical way of writing code?" I don't like to fail, but Obj-C has beaten me every time I've tried it. I get kinda angry and depressed about that. Perhaps that's worthy of a "Troll" mod.

    What are the square brackets around the statement for? And now that I look at it again, it's entirely possible that I'm not looking at a method call at all and that perhaps this is part of a function prototype or something. Which brings me back to my "angry-Matt" comments above. I stand by my assertion that Obj-C is not readable.

  6. Re:Objective-C by Weedlekin · · Score: 3, Interesting

    " In C++, I have to create an object instance if I want to call any class function, even if it's not specific to a particular instance."

    You obviously don't know how to program in C++:

    class Silly
    {
      public:
        static const char *GetName() {return "SillyClass";}
    } ... // Now call it, without an instance

    printf("%s\n", Silly::GetName());

    A couple of notes:

    1) In general, C-style fixed length character arrays (and indeed C pointers of all types) should be avoided in C++, which together with the STL, has much more robust mechanisms that do most if not all of the same jobs. The example above is however excusable due to the fact that is is returning a pre-compiled constant via a constant pointer -- it is also both simple and understandable to those not familiar with the STL.

    2) C library functions such as "printf" should also be avoided for the same reasons. It is only present in my example because the parent post used it, and things are generally clearer if a reply utilises the same idioms as the original.

    Finally, it pays to learn at least the rudiments of a language before publicly claiming that it cannot do something. The use of the "static" keyword to declare class variables and methods is kindergarten C++, not "deep voodoo" that only gurus know about.

    --
    I'm not going to change your sheets again, Mr. Hastings.