Saturday, June 20, 2009

Good programmer's editor for MacOS X?

Can anyone recommend a good programmer's editor for Mac OS X?

It must be free, that rules TextMate out.

It must have source code editing features (syntax highlighting etc.), and be able to cope with long files (GBytes).

So far I've been using JEdit which is otherwise quite good but its MacOS integration is quite flaky due to the fact that JEdit is written in Java and thus it depends on Apple's Cocoa-Java integration API which changes all the time. Also, JEdit is not very good with long files since it tries to load the whole file into memory (i.e. JVM heap).

I have tried TextWrangler but I didn't like it very much. I'm also not a big vi fan.

Any ideas?

PS. Obviously the GB long files are not source code ;-)

4 comments:

Blaise Pascal said...

I shudder to think of why you need a "Good programmer's editor" to edit files in the GByte range, but GNU Emacs might meet your needs.

Free: It was originally written by Richard Stallman, it better be free.

Source Code Editing Features: Syntax Highlighting, a tags feature, and lots of other stuff. It's also language agnostic, and supports many, many different languages.

Handles large files: It might be limited by available heap space, but it was written with memory efficiency in mind. At it's core, it's in C, not Java, so it can use real system memory directly.

And it's commands are nothing like vi.

Ade said...

I would recommend either Aquamacs: http://aquamacs.org/ or Smultron: http://tuppis.com/smultron/

agilechilli said...

Thanks Blaise and Ade for the recommendations. Everything seems to be pointing towards Emacs then!

I actually used Emacs quite a lot in pre-IDE times for C++ development, so I wonder what it will feel like 10 years later on a Mac. C-x C-;-)

Phillip Calçado said...

Hello,

Emacs is an IDE. You can have pretty much whatever you ant inside it.

For macs I recommend Carbon:
http://homepage.mac.com/zenitani/emacs-e.html

Aquamacs doesn't really follow some standards and you get funny conflicts when using third-party code.
Cheers