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?

18 of 201 comments (clear)

  1. AppKiDo by fr00dy · · Score: 4, Informative

    AppKiDo is invaluable if you're a Cocoa programmer.

  2. Shark. by netfunk · · Score: 4, Informative
    --
    Don't say, "don't quote me," because if no one quotes you, you probably haven't said a thing worth saying.
  3. 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!"
  4. Re:OS X Native Development Pointless by oberondarksoul · · Score: 4, Insightful

    One can run Linux alongside Windows on the same hardware. Why, then, has Linux application development not shrivelled up? Why are there native Linux applications? Perhaps it's because if a user has chosen an 'alternate platform' such as OS X or Linux, they're not going to be very happy about having to run Windows too; dual-booting is never as pleasant as running a native app, and perhaps - just perhaps - there are things OS X, Linux, et al can do that Windows can't.

    And besides, with more Macs being sold, perhaps marketshare isn't everything. An audience of several million is still an audience of several million...

    --
    And tomorrow the stock exchange will be the human race
  5. MacDevCenter by Ohreally_factor · · Score: 4, Informative

    O'Reilly's (no relation) has a great site for Mac tech/programming at MacDevCenter.

    Also, Server Logistics, a Mac based web hosting company with cred, offers pre-packed mySQL for free. Gotta love that Aaron Faby.

    --
    It's not offtopic, dumbass. It's orthogonal.
  6. Eclipse by gbobeck · · Score: 4, Informative

    I can't believe that the article didn't recommend Eclipse. Even Apple's Developer Connection recommends this wonderful program.

    Of course, Eclipse is a good tool because it is multiplatform and highly extensible. I find it great for java and python (through pydev) work on my Mac and other boxen.

    --
    Navicula hydraulica plena anguilarum est. Omnes castelli tuus nostri sunt. Ed elli avea del cul fatto trombetta.
  7. TextWrangler, Sampler by nitroamos · · Score: 4, Informative

    I've found a use for BBEdit's free TextWrangler -- it's a really smooth program, and because it has a command line interface, TextWrangler is easy to get it to do what you want it to do. TextWrangler has the best system for merging two files that I've found.

    Although I've come to use emacs more and more for quick source modifications and when programs are only 1 source file, I still appreciate the use of a good IDE like xcode (although I do think that visual studio is still a bit better) for the simplicity in navigating a large project. On the other hand, emacs does far better than xcode or visual studio at automatically indenting code.

    I've found that the OSX developer program Sampler (which comes free with the developer distribution) is also a great program useful for getting a quick feel for where the bottle necks in my program are. Sampler is really intuitive to use, and it provides a nice way of navigating the calling tree of your program allowing you to see how different functions are spending what fraction of compute time. The only thing about Sampler that bugs me is that if I save the data, I haven't figured out how to get the data in terms of percents (as opposed to sample counts) when I load it later.

  8. MAMP? oh yeahhh... by lixlpixel · · Score: 4, Informative

    well - MAMP (mamp.info) does give you everything in one package, with the newest versions (Apache 2 & PHP 5)...

    and it really invites to screw around with the setup.

    before MAMP i often hesistated to install experimental stuff, now i can just drag the one(!) folder to the trash and start with a fresh install.

    things i did with MAMP which were hard to realize otherwise (sitting with the powerBook on the couch) include

    • having the builtin Apache serving only static content, without loading PHP or any fancy modules at all and having a .htaccess rewrite rule to point certain URLs to the MAMP full-blown-with-everything-and-the-kitchensink Apache Server running on port 81. then you "generate" the static HTML with that server and save it to .html files - which then get "served" from the builtin Apache on port 80
    • because the HD on this interim server is so noisy and it has enough memory, i created a RAM disk (donelleschi.com/ramdiskcreator) with the mount-point @ /Applications/MAMP , dragged the whole content of the MAMP folder on the RAM disk and then started the server from and in memory. works pefekt - the HD only spins up when the cron-script backup of the RAM disk kicks in.

    and much more...

    it really helps if you enjoy messing around with a server setup and want to learn how everything works without srewing up your Mac OS install

  9. Re:Objective-C by jcr · · Score: 4, Insightful

    More like, the compatibility of C, and the messaging power of Smalltalk.

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
  10. Re:TextMate by jcr · · Score: 3, Funny

    I can't believe no-one has mentioned Textmate.

    Umm.. It's #2 in TFA. You didn't RTFA, did you?

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
  11. Re:OS X Native Development Pointless by jcr · · Score: 4, Insightful

    What is the point of doing native OS X development?

    I do it to make money. So do rather a lot of other developers.

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
  12. Re:PHP and professional in the same sentence? by Dekortage · · Score: 4, Informative

    I am pretty sure PHP can do more than just web guestbooks. You know, little things, like running Friendster, Yahoo, and GAIA Online. I've also run apps like the OSS Horde/IMP web-based mail front-end with tens of thousands of users. I reuse PHP code all the time. And if you add in some of the code optimizers and server accelerators, you can really make PHP sing.

    You also wrote, "Thanks for wasting years of my life and teaching me bad programming habits, PHP." Which bad habits would that be? There are good and bad ways of writing PHP, just like there are with ANY computer language.

    --
    $nice = $webHosting + $domainNames + $sslCerts
  13. Re:PHP and professional in the same sentence? by erlando · · Score: 3, Insightful

    I'm really tired of people equating PHP with bad programming and amateurish developers. PHP is a language as is Ruby, Python and Visual Basic for that matter. They're tools, nothing more.

    Whether or not YOU choose to employ good coding practises or not when you code in PHP that's up to you. I'm sure there's bad Ruby and Python coders out there too. Granted, PHP may encourage inexperienced developers to take the easier, less maintainable way. But it doesn't mean that that's what happens every time.

    Don't bash the developer for the language they're using. Just because you seem to become a worse developer because of it doesn't have to mean that it happens to the rest of us.

    --
    Remember, there are no stupid questions. But there are a lot of inquisitive idiots.
  14. Re:PHP and professional in the same sentence? by Daytona955i · · Score: 3, Funny

    Don't forget my favorite: http://www.rubyonrails.org/index.php

  15. 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
  16. Re:PHP and professional in the same sentence? by hey! · · Score: 3, Insightful

    It's funny though.

    One thing I've learned over the years is you can't ever fully divorce a language from the paradigms burned into its users' heads; they are continually reproduced as if you'd wired in an unconscious brain to fingers macro. Once an idiom is common in a community of programmers, it stays there until it is forcibly ejected by deleting the language and API features it depends on.

    What was best feature of C? That the Kernighan and Ritchie were master programmers, and everybody learned from their book. Many also used Kernighan's Software Tools books, and since books on this topic were far fewer in those days, many also had Kernighan and Plaugher's Elements of Programming Style.

    The biggest problem with Java is the nearly reflexive bloat of Java Programmers who were weaned on enterprise APIs. The problem with PHP is the opposite: the very first steps a PHP programmer tends to take instruct him on how convenient mixing business logic and HTML is.

    There is nothing that prevents you from writing great enterprise PHP software, other than your own habits. But don't underestimate the force of habit.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  17. SubEthaEdit by aarku · · Score: 3, Informative

    SubEthaEdit is invaluable for collaboration. I can't say how many times it has come in handy when I've wanted to help someone with code over the Internet or plan out code with someone. Not to mention taking notes with 5 other people in 'ole Computer Science lectures...

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