MacOS – Looking for the ultimate IDE for Mac

developmentmacossoftware-recommendationtext-editor

I am a little disenchanted with development on the Mac right now. I need a single IDE that can handle all of my development needs. I did notice there are other questions on this topic already, but those did not cover my specific needs of:

  • Must support at least HTML, JavaScript, Ruby on Rails and PHP syntax highlighting, bonus if there are more language plug-ins available
  • Must support the ability to connect to FTP and SFTP
  • Must support handling of projects/sites
  • Must have some level of code completion, even if it is just at the variable level
  • Must support syntax formatting
  • Must be able to recognize and highlight ERB/TPL files as HTML

Are there any suggestions for such an IDE out there?

Best Answer

I actually think the idea of a single, unified, development environment like what you're after is somewhat antithetical to OS X design principles. One of the great things I've found, since switching to OS X for development work about a year ago, is that many OS X application developers share my own personal philosophy when it comes to software: do less, but do it really, really well.

As such, my current development environment on OS X is less unified than it was on Windows or Linux, but far, far more stable, robust, and ultimately: productive.

For coding I use TextMate. It seems almost trivially simple at first and then you discover bundles and it's built-in command line filtering and it takes off. It will handle the highlighting tasks you requested. It has projects, and while they seem kind of loose at first, you'll grow to appreciate it. Trust me. And it does handle code completion, tag closing, tag matching -- the sort of stuff you'd expect -- it's just not obvious, but it's there in Bundles and waiting for you to customize it.

Update: I've moved off TextMate and on to Sublime Text 2. The regular updates and the Python-based extensions were a major draw. It's been a year now and no regrets with that switch.

I use Kaleidoscope for diffs. It's just an a beautiful diff tool.

My git tool is Tower and my Subversion tool is Versions. Both awesome.

For permanent, remote drive access via ssh I use MacFUSE to connect to the remote location and mount it as a drive on my Mac. This is a superior option to built-in ssh or ftp support in the IDE because all the programs on my Mac can now work with files on that share.

I also use CyberDuck for it's awesome cost and excellent Amazon S3 support. I could even get away with just CyberDuck, no MacFUSE, if I had to. But I don't. :)

Update: I've switched to ForkLift 2 as my primary means to interact with remote file systems. It's got a nicer UI than CyberDuck and a few less "quirks" to it. I'll still occasionally open up CyberDuck when I need to deliver a signed URL to an S3 object.

Finally: iTerm 2. A terminal app befitting OS X. It really is quite a fantastic terminal. Bookmarks make it easy to get to my AWS machines quickly. The UI is clean. And tabs.

All of those things replace the clunky IDE (Komodo Pro) I use to use on Linux and Windows (and never really liked, just tolerated). And I don't even know that they're not all "unified" in one cluttered, modal window. No sir.

For reference, I write a lot Python, some HTML, JavaScript, Perl, and Java. And the occasional bit of C and C++.

Update: There's more Go in my day to day coding now. My toolset integrated that relatively young language without so much as a hiccup.