Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
Check out the new SourceForge HTML5 internet speed test! No Flash necessary and runs on all devices. ×

Best Developer Tools for OS X 201

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?
This discussion has been archived. No new comments can be posted.

Best Developer Tools for OS X

Comments Filter:
  • The static type system of C and the dynamic type system of smalltalk, what a great idea that was.

    • Sounds to me as if you've never used it. It works quite well in practice.
      • So does Perl.
        • This is true.
        • So does Perl.

          Yeah. :) Until you try calling a function with a struct as a parameter. Or try doing anything even remotely object-oriented.

          Those are the two big things that finally drove me from Perl to Ruby. I could never go back. Ruby has almost all of the nice things of Perl, with almost none of the insanely stupid bits.

          • Hm, I've been doing OO perl for some time, I would say that I do things that are more than "remotely" object oriented.

            This reeks of fanboy, sorry. :(
    • Re:Objective-C (Score:5, Insightful)

      by jcr ( 53032 ) <jcr@mac.cOPENBSDom minus bsd> on Wednesday July 19, 2006 @05:53AM (#15742004) Journal
      More like, the compatibility of C, and the messaging power of Smalltalk.

      -jcr
    • Re:Objective-C (Score:3, Insightful)

      by kompiluj ( 677438 )
      Look for instance at .NET/C#. People are writing about this cool feature it has - delegates [sellsbrothers.com]. But in Objective-C such behaviour is natural [wikipedia.org], and besides, requires no use of additional language features. Objective-C can be explained on few pieces of paper, you just have to remember some particular rules, whereas in C# or Java (or other object oriented staticly typed language) you have for each such thing a special case, which burdens your memory.
      • You're so right! Why even have types at all!?
        • Exactly. Types are clubbersome in many ways. They should be constrainted (this variable must represent some kind of numbers), but not defined (this is a floating point between -2^64 and 2^64), to ease learning and coding a lot. Check ruby for more example of what I mean (duck typing). I never learn ObjC, even less Forwarding so that may be the same thing.
    • Re:Objective-C (Score:3, Interesting)

      by samkass ( 174571 )
      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 Appl
      • 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.

        No. It's proof that it doesn't work for statically typed languages with limited dynamic capabilities. (Maybe that's what you mean by "real", in which case we have an irreconcilable definition dispute). The Python bridge works quite well; in fact some things in Cocoa are easier to do in Python than ObjC.

        I'm a bit
      • Objective-C is actually part of why Apple is so successful. Yes, they could go status-quo, and do everything in C. Much like Windows. But in the case of writing a large GUI application (such as the OS X shell), I think the right tool for the right job really applies.

        M$ has worked very hard in making C an OOP-like language. It's not that C doesn't allow you to do everything that C++ or Obj-C does .. they are after all just languages (besides which, Obj-C and C++ were originally just precompilers that gener

  • AppKiDo (Score:4, Informative)

    by fr00dy ( 580649 ) on Wednesday July 19, 2006 @04:15AM (#15741749)
    AppKiDo [mac.com] is invaluable if you're a Cocoa programmer.
  • Why is X11 listed as PPC and not Intel/PPC?

    Also... Why is MAMP listed? Isn't the 'A' in MAMP installed by default even if it's not OS X Server?

    I think what's missing is DarwinPorts... that's a nice fast way to install stuff.
    • MAMP? oh yeahhh... (Score:4, Informative)

      by lixlpixel ( 747466 ) on Wednesday July 19, 2006 @05:28AM (#15741937) Homepage Journal

      well - MAMP (mamp.info [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 [donelleschi.com]) 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

  • Shark. (Score:5, Informative)

    by netfunk ( 32040 ) <icculus@icc[ ]s.org ['ulu' in gap]> on Wednesday July 19, 2006 @04:20AM (#15741768) Homepage
    http://developer.apple.com/tools/sharkoptimize.htm l [apple.com]

        'nuff said.

    --ryan.

  • Vi (Score:5, Interesting)

    by GreatDrok ( 684119 ) on Wednesday July 19, 2006 @04:23AM (#15741781) Journal
    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 :-)
    • Re:Vi (Score:2, Informative)

      by torpor ( 458 )
      I, too, adore vi, and use it to write code for OSX/Darwin, and Linux, the former for 5 years, and the latter for 14 years.. its a rock-solid tool in my hands, and I have no need to go to any other editor.

      Have you added cscope [sourceforge.net] to yours yet?
    • Re:Vi (Score:3, Funny)

      by Scarblac ( 122480 )
      As tradition requires it, allow me to point out that Emacs is at least equally great at running in a bunch of terminal windows for quick editing, plus it comes with several carefully selected types of kitchen sink :-)
      • While I've used both vi and emacs, I tend to prefer vim. (Note: if I was stuck with just vi and not the extended features of vi, I would probably use emacs)

        However, for those of you more comfortable with emacs, you should check out aquamacs [aquamacs.org]. It's got some nice features specific to OS X.

        Also, I don't really want to start a flame war, just point out the aquamacs link for those looking for a nicer emacs experience on OS X.
    • Re:Vi (Score:3, Informative)

      by ooze ( 307871 )
      Well, my fingers are emacs wired. So let the flame wars begin ;)

      But I have to say, that in all my years programming, I have never been more productive than when using emacs on a widescreen with 2 vertically seperated windows open at all times. And if neccessary, a few additional console windows. The hands never leave the keyboard in that setting. You have svn/shell/dired/ssh/editing/documentation readily available, all only being a tenth of a second away at your fingertips. Even for file management that tha
    • Re:Vi (Score:3, Funny)

      by Bastian ( 66383 )
      VI is dead. I mean, they've been stuck on that version for something like two decades. VII is the original Duke Nukem Forever.
    • I still use vi as my primary editor (not even client-side vim - I still spend most of my day stuck in emulated VT terminals) - however, I've been getting to grips with Textmate, which seems to offer the customisability / flexibility of vi or emacs, but 'feels' Mac. Given that it's written by a Unix-to-OS-X developer that makes sense. It's the one everyone sees in the RubyOnRails demo and goes 'What's that editor'?

      (Actually there is one other editor I loved, back on the Atari ST, which I think was called Tem
  • "Cyberduck is an open source FTP and SFTP (SSH Secure File Transfer) browser licenced under the GPL with an easy to use interface, integration with external editors and support for many Mac OS X system technologies such as Spotlight, Bonjour, the Keychain and AppleScript."

    It rocks!

    http://cyberduck.ch/ [cyberduck.ch]


  • I use Free Pascal on my Mini which gives me access to existing Delphi code as well as native interfaces. (Code Warrior Mac/Carbon code is easily converted, as Carbon headers come with it)

    I have ported some GUI apps using Lazarus (Lazarus.freepascal.org), but the Carbon native port is not ready, and these run under XDarwin.
  • MacDevCenter (Score:5, Informative)

    by Ohreally_factor ( 593551 ) on Wednesday July 19, 2006 @04:41AM (#15741821) Journal
    O'Reilly's (no relation) has a great site for Mac tech/programming at MacDevCenter [macdevcenter.com].

    Also, Server Logistics [serverlogistics.com], a Mac based web hosting company with cred, offers pre-packed mySQL [serverlogistics.com] for free. Gotta love that Aaron Faby.
  • First, they have X11 listed incorrectly as a PPC app. If you have an Intel based Mac then the installation CDs includes a pkg of X11 as a Universal app.

    Once you have X11 installed then you can also get ...

    1) Inkscape [inkscape.org] (Universal) ... for all of your SVG editing needs.

    2) Gimp [gimp.org] (Universal) ... for all of your raster image editing needs.

    ... and I am surprised that they left Eclipse [eclipse.org] off of the list. While Xcode is preferred for doing OS X development, it is still worth a mention :-)

    I'm sure there are
    • I agree and was puzzled the author had X11 down at no. 10 on his developers list. Once you have X11, try Fink or Darwin ports and installing KDE and gnome is as easy as with Debian.

      Once you have spent around a day watching fink compile all the libraries and applications for you KDE runs superbly on a mac. You can either alloiw it to manage the desktop and run fulll screen or simply run a toolbar in the manner of the dock. I would then highly recommend Kate - the KDE advanced text editor which is excellent f
      • Once you have spent around a day watching fink compile all the libraries and applications for you KDE runs superbly on a mac. You can either alloiw it to manage the desktop and run fulll screen or simply run a toolbar in the manner of the dock. I would then highly recommend Kate - the KDE advanced text editor which is excellent for Perl and Bluefish for XML and X/HTML, although some pprefer Quanta plus which also comes with tthe Fink KDE bundle.. The KConsole is a very good terminal application also.

        Is KDE

  • Eclipse (Score:4, Informative)

    by gbobeck ( 926553 ) on Wednesday July 19, 2006 @05:11AM (#15741894) Homepage Journal
    I can't believe that the article didn't recommend Eclipse [eclipse.org]. Even Apple's Developer Connection [apple.com] 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.

    • or NetBeans (Score:2, Informative)

      by ralinx ( 305484 )
      Eclipse has its strong points, but some people (like me) just don't like it. I can't really say why i don't like it, i guess it just doesn't feel right to me. I do like NetBeans a lot though. NetBeans looks and behaves more like a real OS X application than Eclipse IMO.

      And if you're new to Swing development, Matisse (the GUI designer in NetBeans) really helps a lot... it makes it easy to develop java GUI's in the same way that Visual Studio makes it easy to develop winforms GUI's.

      If you're a java develop
    • One could even think of Eclipse as being the "EMACS of the 21st Century," given how its big and flexible, with a gazillion plugins.
    • I can't believe that the article didn't recommend Eclipse.

      They did. FTFA:

      Eclipse (Free - Intel/PPC)
      This is probably the best integrated development environment for Java. The Eclipse Platform is written in the Java language and comes with extensive plug-in construction toolkits and examples. It has already been deployed on a range of development workstations including Linux, HP-UX, AIX, Solaris, QNX, Mac OS X and Windows based systems

  • ZigVersion (Score:2, Informative)

    by escrafford ( 989711 )
    ZigVersion [zigzig.com] is a Subversion GUI that kicks ass.
    • Interesting. An easy to use GUI for accessing Subversion could be very useful. Having helped Windows users with their WinCVS and TortoiseCVS for years though, I wonder if it won't have many of the same usability problems as the former. The number one problem with WinCVS is that users get confused switching between the explorer and CVS viewers for the same files. Tortoise solves that problem by working as a plug-in that lets users perform CVS commands by selecting and right-clicking in the regular explorer a

  • by nitroamos ( 261075 ) on Wednesday July 19, 2006 @05:25AM (#15741931)
    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.
    • I have to agree about indenting... I've never used any editor that does it as well as Emacs, and often wish I could turn on "Emacs-style indent mode" in Eclipse.

      However the reason I lean towards IDEs like Eclipse today, is that while Emacs may be a wonderful editor, it gets really painful really fast when you're navigating across a project with many files in many directories.
    • BBEdit (and TextWrangler) are absolutely fabulous.

      I use it every day, and it was worth every penny (Text Wrangler is the free version which is still pretty feature complete).

      We use SVN at work and the integrated SVN tools (runs against the local repository), are great. They also support CVS, although both of these features require purchasing the BBEdit version of the product.

      Another of those nice features available in both versions is the ability to open a file remotely via ftp/sftp.

      (Also obviously has synt
    • Having recently moved to Mac OS X, I don't have a predilection for BBEdit; I really like Smultron [sourceforge.net] though, which is free.
    • 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 reason to be using Sampler instead of Shark is because you haven't found Shark yet. Shark is part of A
  • It's Free software and does what you need it to do. For those that don't care for vim or are just detrimentally used to Cocoa's default key bindings and can't adapt well to vim. (That would be me, by the way.)

    http://smultron.sourceforge.net/ [sourceforge.net]
  • The article refers to Parallels virtualization software [parallels.com] as $49, but that's for the "Win&Lin" version. The Mac version is $79.
  • How about Java? You run it on Mac OS-X and it looks just like an OS-X app, complete with top menu bar. All this and you don't have to change the source from Windows. I don't know if there are subtle differences to "real" OS-X apps that Mac heads would see, but from my point of view it works well. And Eclipse works quite well on Mac too.
    • Java is getting pretty good on the desktop, even under Swing. Under SWT, it uses native widgets so its even better. I think I would be hard pressed to consider writing a native application these days unless it required maximum performance or some kind of advanced feature that Java does not offer access to.

      It always gives me a kick to see my Java app, developed solely on Windows work almost flawlessly on Linux or OS X. I say almost but there are some minor UI inconsistencies that I need to fix. You mention

      • > You mention for example the menu bar should go at the top, but it doesn't in my app.

        You have to set a system property. Something like apple.laf.useTopMenuBar=true, or something like that.

        • Sounds easy, I'll give it a try! I guess that a few lines of platform specific code at startup would take care of most of the differences
          • Check out the sample code for the OSXAdapter [apple.com], which is an easy way to tie in OSX support in a cross platform way. They also provide AppleJavaExtensions [apple.com] stubs so you can compile for Apple specifics even on non-Apple platforms. All the code uses reflection to determine if the Apple extensions are there, so nothing special needs to be shipped oncce the byte code is built.
      • Re:Java (Score:3, Informative)

        by dowobeha ( 581813 )

        It always gives me a kick to see my Java app, developed solely on Windows work almost flawlessly on Linux or OS X. I say almost but there are some minor UI inconsistencies that I need to fix. You mention for example the menu bar should go at the top, but it doesn't in my app. Also, my menus look a bit stupid since it uses the Windows conventions for menu structure for underlining accelerator keys, e.g. File.

        Both Apple and Sun have developer guides for fully integrating your Java Swing app into Mac OS X.

      • Also, here's how to manually create a Mac OS X application bundle from a Java program. The example is for an SWT program, but there would be no changes needed for a Swing app. In the shell script, just make sure that you add all necessary Mac-specific command line options.

        http://www.eclipse.org/swt/macosx/ [eclipse.org]

    • How about Java? You run it on Mac OS-X and it looks just like an OS-X app, complete with top menu bar. All this and you don't have to change the source from Windows. I don't know if there are subtle differences to "real" OS-X apps that Mac heads would see, but from my point of view it works well.

      A properly configured Java Swing application is, as far as I can tell, indistinguishable from an ObjC-Cocoa application from the end-user's perspective.

      I haven't developed using SWT, but the only SWT app that I

  • Quicksilver (Score:3, Informative)

    by joshdick ( 619079 ) on Wednesday July 19, 2006 @08:27AM (#15742440) Homepage
    It's hard to describe the wonder of Quicksilver [blacktree.com]. Just try it.
    • Re:Quicksilver (Score:2, Informative)

      by Yremogtnom ( 774179 )
      Actually it's fairly easy to describe... Quicksilver lets you launch applications and find files very quickly by typing a shortcut key (Control+Space for me), then the first few letters of the application (or file) you want to launch.

      If you don't like to take your hands off of the keyboard, you need this!
  • I've recently started using a Macbook, after years on Windows and *nix. The one tool I can't seem to find is a nice visual file compare utility, like Beyond Compare [scootersoftware.com] on Windows. I believe Emacs has something similar, but I'm allergic to it. Does Vim? Is there something standalone?
    • Try running "vimdiff" from the command line and pass it the name of two files you want to compare. Works rather nicely, in my opinion.
    • The OS X developer tools include a visual diff program called FileMerge. You can open it from the command line with 'opendiff file1 file2', or if you prefer to use the gui to open the files/directories just spotlight for FileMerge.
    • FileMerge - free with Apple's Developer tools - is a good utility for merging files and folders.

      Also, BBEdit/TextWrangler both have a good compare utility and TextWrangler is free.

      My favorite though is CodeWarrior's compare utility. It is simple and easy to use but CodeWarrior is now dead. Plus, there would be no point in buying CW just for its compare utility. Still, it's probably the one I use the most.
  • by theolein ( 316044 ) on Wednesday July 19, 2006 @08:54AM (#15742567) Journal
    If you code Cocoa applications you're more or less forced to use XCode. You can of course use any text editor and interface builder, but XCode is the only one that is integrated with IB. The small size of the Mac market here and Apple being the 800lb gorilla in that space means that anyone with competing coding tools is at an automatic disadvantage, much like Metrowerks was with Code Warrior. This is a real pity because the lack of competition enables Apple to be very lax about XCode performance and quality.

    If you do Java, you have Eclipse or IDEA, both of which are streets ahead of XCode for Java coding. XCode doesn't even compare here.

    And if you do Profeesional PHP coding (yes, it does exist), you may as well spend the money on the Zend IDE, since there is no other PHP IDE on OSX that shows classes and offers code completion and debugging as Zend does.

    You can of course use Textmate for RoR, since it seems it was engineered with that in mind mainly, but you can do just as well for any of the PHP, Ruby and Python (and Perl, for that matter) group with the respective Eclipse plugins.

    I personally use Subethaedit for quick single file editing and Eclipse for anything else. Textmate and BBedit offer me nothing that Exclipse doesn't.

    Finally, a good knowledge of vi/vim is a real plus since it's what is easiest to use when you need to edit files quickly in the terminal. Trying to futz around with a GUI editor when you're editing init.d scripts etc is a waste of time. Plus vi will be on any and every Unix type machine you will ever find.
  • qt 4.0 (Score:3, Informative)

    by bloosqr ( 33593 ) on Wednesday July 19, 2006 @08:56AM (#15742584) Homepage
    If your code is GPL'd I highly recommend giving QT 4.0 try. The native qt hooks are remarkably native looking for mac os x. It obviously depends on what your application is, but coding in qt 4.0 gives you unix / mac portable code w/ no effort, particularly if you do not have any mac os dependent code (i.e. hardware/device calls etc). (We have not tried the windows QT so do not have a point of reference )
  • A few folks mentioned Java and NetBeans, but of course the whole J2EE suite runs on OSX.

    I enjoy using JEdit [jedit.org]. It does syntax highlighting and all the indention things programmers need. I usually find myself going back and forth between vi and JEdit, depending on what I'm doing.

    Of course, you can use MySQL with Java these days too, using the connector. But I don't of a better tool than the commandline mysql tool, with which you can write queries and format them to make sure your code is w
  • by hotspotbloc ( 767418 ) on Wednesday July 19, 2006 @09:36AM (#15742799) Homepage Journal
    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.

  • If you're developing for the Mac, or simply developing on the Mac, you'll eventually want to use some sort of source control. CVS comes on the machine by default, and you can get MacCVS, but lately I've been using Subversion and find it to be a great program, even if the gui tools are a little raw.

    My favorite right now on the Mac is svnX: http://www.versiontracker.com/dyn/moreinfo/macosx/ 24158 [versiontracker.com] There are others, but they all have their various quirks that have kept me coming back to svnX.

    If anyone knows of
  • SubEthaEdit (Score:4, Informative)

    by aarku ( 151823 ) on Wednesday July 19, 2006 @10:56AM (#15743365) Journal
    SubEthaEdit [codingmonkeys.de] 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...
  • by kuwan ( 443684 ) on Wednesday July 19, 2006 @01:11PM (#15744455) Homepage
    This list seems particularly tuned for Web development, not necessarily Mac developement. Tools listed such as MAMP, NVU, Zend Studio and CSSEdit really only have a place in a Web developer's toolkit and anyone doing Mac application developement would have little, if any, need for them.

    So, for Mac application developers, here's a better list:
    1. BBEdit - the best text editor, period.
    2. Interface Builder - the best GUI builder.
    3. Shark - if performance is important then there's no better tool.
    4. Xcode - well, there's really no other choice these days, and it's getting better.
    5. AppKiDo - for quick reference to the Cocoa APIs.
    6. Terminal - good enough for me.
    7. OmniGraffle - for application/class modeling and design.
    There are many other important and useful applications, but these ones really are the core essentials for application development (at least for me). Anything I left out?

RADIO SHACK LEVEL II BASIC READY >_

Working...