- Integrated Development Environments
- Text Editors
- Command Line
- Conclusion
Text Editors
In this category are the applications that can edit text in a flat ASCII format, provide some syntax highlighting, and handle the basic concepts around a project. Therefore, word processors and text edit need not apply.
TextMate
TextMate is the current gem of development on OS X. With a very feature-rich macro/scripting system, TextMate has quickly become a favorite of many developers. For Java development, it is capable of compiling individual Java files as well as kicking off Ant build scripts. TextMate includes many pre-installed "bundles" that allow you to display the Java API, expand conditional statements, wrap selections with try/catch blocks, inject logging statements, and a whole host of other features with either a key command or tab trigger. In addition, the developer community around TextMate is very rich, and there are many free bundles to further expand on the included Java bundle.
Unfortunately, TextMate does have some rather annoying issues that can make it frustrating to use. One of the most obvious issues is its poor undo support. If you type a line of code and then press the Undo key command, the entire line is not removed as one would expect. TextMate will instead remove just the last character typed. This makes Undo equal to just pressing the Backspace key. Fortunately, this behavior does not carry over to macro expansion or code injection, but for everyday work it can be quite frustrating.
Another major issue is its poor support for large files and large sets of files. Opening up a very large text file (such as a server log file) in TextMate has a high risk of crashing the application. Likewise, using the excellent built-in regular expression search on a large number of files will have a similar result.
Coming in at €39, TextMate is tied as the second most expensive "text editor" in the list. TextMate is a native application for OS X and therefore runs very quickly on both of the test machines. If you enjoy emacs, then it is a fair bet you will enjoy the macro system in TextMate.
TextWrangler/BBEdit
Bare Bones has been around for a very long time. For the longest time, they produced the best text editor available for the Macintosh and had virtually no competitors. Given that, both TextWrangler (their free offering) and BBEdit (the very much not free offering) are extremely mature products. They both offer a high level of customization, a deep set of plug-ins for multiple languages, and high scriptability.
Unfortunately, there are a few negatives. First is the price of BBEdit. At $125, it is the most expensive of the text editors listed in this review. Unless you can find a specific feature in BBEdit that cannot be accomplished in either TextWrangler or in one of the other editors reviewed, it is very hard to justify that price.
The second issue that both BBEdit and TextWrangler suffer from is that they feel dated. The UI has not been kept up to date with OS X, and they are starting to feel more and more like an OS 9 application that needs to be put out to pasture. While some may scoff at the idea that a text editor should look pretty and current, it is a factor when that application is being used all day and sticks out rather badly compared to the rest of the operating system.
Other than those negatives, both of these applications are a strong offering. They are native applications, so are very quick even on the ancient Powerbook. Neither application tries to get in your way while you are coding but they will also not offer much assistance to your Java development.
SubEthaEdit
While SubEthaEdit technically falls into this category, it has some fairly large deficiencies when it comes to Java development when compared against the former two editors. While in the latest release it does have the ability to kick off a build in XCode, it does not have any way to build a Java ant file. In addition, while it does have scripting support similar to XCode, it lacks any formal macro language.
Having said that, it is a fantastic collaboration tool. If you are on a team and either working on the same piece of code or doing a code review, then SubEthaEdit is hard to beat. With the ability to share a document (now securely with the latest version) either on a local network or over the Internet, the collaboration abilities of this editor are simply unmatched.
SubEthaEdit is a native application for OS X and runs very quickly on both machines used in this review. Like the other editors in this category, it does not get in your way while coding but will also do very little to assist your Java-specific needs. SubEthaEdit is also priced at €39.