Top 5 Code Editors for Mac
Now that OS X and Apple are becoming more mainstream, many developers (especially web guys and gals) are jumping ship to join the Mac camp. I myself am one of these people. After the switch, how does one get back to work? What editors are out there? Are they any good? Fear not, because Macintosh has many great editors and this list compares the top 5.
Interface

BBEdit: BBEdit has a very simple interface. In normal mode, you get to view the file you’re currently working on. When you’re ready to switch files, a little slider comes out and allows you to choose the document to work on (convenient). On the main window, you see line/character information, can change the code highlighting, and can change the format in which the file is saved (Unicode/Japanese/Chinese versions). It is a simple interface but I think many will appreciate its ease of use.

Coda: The interface is beautiful. It definitely brings the Mac Cocoa theme to the application level. As far as usability is concerned, it’s easy to switch from local to remote browsing, view files, write code, and switches files using tabs. You can also share with other users on the internet, validate code (HTML/CSS), view your extended clipboard, and see any objects/functions right from the main window.

SKEdit: This interface features a main editing window and a project/filesystem sub-panel to the left. When editing multiple files, a new tab is shown in the bar for easy file switching. Coda and SKEdit layouts are very much alike, which is good.

SubEthaEdit: This editor also makes use of tabbed browsing of files. Under the tab is a dropdown to chose a function/object if using an Object-Oriented language. If you aren’t using an OO Language, then it isn’t there (very nice!). Aside from that, you can change your highlighting language scheme, change region (Western English/Japanese/…), connect to console, and view your connections (share with friends or coworkers).

TextMate: The interface is simple, very simple, which isn’t necessarily a bad thing. Aside from the coding area, you can view the line/character information, change the code highlighting, use some quick code templates, modify tabbing size, and jump to different functions/objects. Simple but powerful. The only downside I found was when you opened up another file. All files open up in new windows (unless a project is built) which leads to some clutter. All in all, TextMate hosts a very clean interface.
Features
BBEdit:
Languages: Supports a long list of languages, including the popular ones: PHP, Ruby, Python, HTML, CSS, Java, Fortran, C++, C, and Perl.
Online Access: Supports FTP and interacts with other clients as well.
Code Editing: BBEdit comes with pre-determined strings so you can select some syntax to be automaticaly built for you. I guess thats nice if you’re lazy. It also provides a built-in spell checker. If you use certain strings frequently, you may save them in a clippings area where they may be used later by a menu or key binding. Also, it supports code block folding and tag closing or finishing.
Search: Searches multiple files and allows concurrent searching.
Extra Features: It works out of the box with Subversion, Perforce, and CVS. This is very cool and useful if you do work for a company or dable in open source projects. You can also drag and drop files or images and BBEdit automatically creates an image or link tags. Finally, BBEdit integrates with a few compilers to provide a complete coding solution.
Coda:
Languages: Supports many languages, including some popular ones: PHP, Ruby, Python, HTML, CSS, Java, and Perl. It does not however, support any compiled languages.
Online Access: Supports FTP/SFTP/WebDAV in a sidebar.
Code Editing: Coda allows you to store snippets of code which can be pasted later in the document. It also auto-completes tags and matches up braces highlighting them when passed over.
Search: A multi-file search that supports tokenized replacement (i.e. automatic Height and Width swapping).
Extra Features: You can collaborate with others online via Bonjour. Coda created a visual CSS editor which brings in your elements and allows you to edit them visually instead of coding each attribute out. You actually have access to real books when in need of help. Its an odd, but nice feature. Coda has a feature called “Sites” that allows you to save Online (or local) sessions and have them restored or published with a click of a button.
SKEdit:
Languages: Supports many languages, including some popular ones: PHP, Ruby, Python, HTML, CSS, Java, and Perl. It does not however, support any compiled languages.
Online Access: Supports FTP/SFTP/WebDAV. Also supports Subversion.
Code Editing: SKEdit supports auto-completion of both pre-defined code and user-generated code automatically. It allows you to store snippets of code which can be pasted later in the document. Allows you to fold code blocks and auto-completes tags.
Search: Supports single or multi-file searching.
Extra Features: A developer can create their own scripts to run automated tasks.
SubEthaEdit:
Languages: Supports a long list of languages, including the popular ones: PHP, Ruby, Python, HTML, CSS, Java, C++, C, and Perl.
Online Access: While it does work with FTP applications, it doesn’t have its own built-in solution.
Code Editing: It supports tag auto-completion and symbol navigation.
Search: Simple file search.
Extra Features: SubEthaEdit supports Bonjour collaboration. You can drag and drop iChat friends into your document to give them editing access. A developer can create their own scripts to run automated tasks.
TextMate:
Languages: Supports a long list of languages, including the popular ones: PHP, Ruby, Python, HTML, CSS, Java, C++, C, and Perl.
Online Access: Supports Subversion and Perforce. No built-in FTP/SFTP solution.
Code Editing: TextMate supports tag auto-completion and pairs brackets. It allows you to store snippets of code which can be pasted later in the document. TextMate also supports foldable code blocks.
Search: Supports single and multiple file searching. It also supports using regular expressions.
Extra Features: Recordable macros to perform those mundane tasks. Modulized language support. Integrates with XCode for compiled projects.
Note: While these editors might support C, C++, or other compiled languages, they are simply editors. You have to use another application to build your code.
Price
BBEdit: $125
Coda: $69 (on sale at the time of writing. Normally, $99)
SKEdit: $34.95
SubEthaEdit: €29 (roughly $45 at the time of writing)
TextMate: €39 (roughly $63 at the time of writing)
Overall Ratings
5th Place: BBEdit (Get BBEdit if you want to spend big bucks for features)
Although feature packed, the price per feature ratio just isn’t enough to propel this product higher in the list. The application is just too expensive.
4th Place: SubEthaEdit (Get SubEthaEdit if collaboration outweighs features)
If collaboration is a must, then check out SubEthaEdit. I figure it’ll be great in a development environment that supports or encourages Agile development methodology. Otherwise, it just doesn’t have enough features to compete with other applications.
3rd Place: SKEdit (Get SKEdit if money is an issue)
A very close 3rd place with comparable features to both TextMate and Coda. It is much cheaper than the other two so if you’re on a budget then its worth a look. I’m very impressed with the feature set for such a low price. 3rd place just doesn’t seem to do it justice.
1st Place (Tie): TextMate (Get TextMate if you develop desktop applications)
If you plan on developing things other than web applications, then TextEdit is for you. Although not as inutitive or usable as Coda, it does make up for it with more languages and an extended feature set. If you’re not a fan of Apple’s XCode, then TextMate might be a worth a look.
1st Place (Tie): Coda (Get Coda for all things web-based)
If you plan on developing web applications, then Coda is for you. It has the best interface out of all these applications and is really geared towards web development. I prefer Coda over TextMate, but can understand application developers who want a one stop shop language-wise. I use Apple’s XCode to develop everything that Coda can’t do, and I’m a happier person for it.
Where can I get them?
You can download/buy any of these great applications here:
BBEdit: http://www.barebones.com/products/bbedit/
Coda: http://www.panic.com/coda/
SKEdit: http://www.skti.org/skedit/
SubEthaEdit: http://www.codingmonkeys.de/subethaedit/
TextMate: http://macromates.com/
Tags: Apple, BBEdit, Coda, code, code editor, coding, desktop, Development, editor, features, interface, mac, macintosh, price, SKEdit, SubEthaEdit, TextMate, top 5, web












April 26th, 2008 at 9:53 pm
For me BBEdit first place, daylight second.
To chip a program on price is ridiculous. $125 for a program is nothing, especially when it is a tool a means of production. What is a $125? One hours work. All a $125 program has to do is save me an hours work and it is worth the price of admission. BBEdit has done this many times over.
I think all of these programs are cheap.
April 26th, 2008 at 10:03 pm
[...] Tayif wrote an interesting post today onHere’s a quick excerptBBEdit: $125. Coda: $69 (on sale at the time of writing. Normally, $99). SKEdit: $34.95. SubEthaEdit: €29 (roughly $45 at the time of writing). TextMate: €39 (roughly $63 at the time of writing) … [...]
April 27th, 2008 at 1:00 am
[...] Top 5 Code Editors for Mac By Will Languages: Supports a long list of languages, including the popular ones: PHP, Ruby, Python, HTML, CSS, Java, Fortran, C++, C, and Perl. Online Access: Supports FTP and interacts with other clients as well. Code Editing: BBEdit comes … AskLG - http://www.asklg.net/ [...]
April 27th, 2008 at 1:18 am
A nice list, but I don’t think it’s complete without mentioning Komodo Edit ( http://www.activestate.com/Products/komodo_ide/komodo_edit.mhtml ) which offers most ( if not all ) of the features included in the listed editors while being open source and completely extensible.
Also, the Mac ports of gvim are fantastic; both the cocoa ( http://code.google.com/p/vim-cocoa/ ) and carbon ( http://macvim.org/OSX/index.php ) versions. Another great open source application.
April 27th, 2008 at 7:01 am
I’d be interested to know how you’d rank these apps if money were not an object. (And for most professional coders, it’s not — a purchase order for $40 or a purchase order for $200 is the same to the boss, if it’s the tool you need to get your work done best.)
So, how would rate them if money were not a consideration?
April 27th, 2008 at 11:48 am
Andrew: I am a graduate student and we’re notoriously cheap :). That aside, yes BBEdit does have a ton of features which probably do save time. For me, usability plays the distinguishing role. Just because you can do something, doesn’t mean you can do it easily. For example, I really dislike the FTP and File browser. It opens in a new window and you have click on the files to bring them into the editors side window. I would rate BBedit higher if it actually allowed you to view the files on the fly in the sidebar. I want to see the whole project I’m working on and not a couple of files I’ve choosen to edit. I’m sure its relative to personal preference though. I think if it took a larger look at usability in the first place, it could be the indisputable king of Mac editors.
Moshen: I hadn’t heard of KomodoEdit yet. I’m downloading it as we speak, thanks for the tip. I’ve used VIM on linux and didn’t really like it, but I know others who use it religiously so I guess its all based on your taste.
Kerri: It depends on what development you’re doing. If you’re strictly a web developer, you should check out Coda. Its interface is second to none. If you need more power/flexibility in the language department, then BBEdit is probably for you. BBEdit and TextMate both are extremely similar interface-wise, but BBEdit comes packed with more features. To me, FTP access is important and TextMate doesn’t have that (although you can get a 3rd party FTP app). You can download trials to make sure, but I think BBEdit would be the way to go if money doesn’t matter and you need a wide range of languages. I will like to note that some of BBEdit’s features are cumbersome and not easy to use. I’m a big fan of the “it just works” or the “easy to use” ideas, so if that doesn’t matter to you then BBEdit is waiting.
Thanks for the comments and discussion everyone.