Moving from IntelliJ to TextMate

IntelliJ is the leader when it comes to Grails 1.0.x development, but its support for Grails 1.1 is a bit lacking.  This lack of support is what inspired me to give TextMate a try.  I've been using it for over a week now and have documented some of the pros and cons.

The Good

There's many things to like about TextMate.  Here's what I liked, in no particular order.

  1. Grails 1.1 support
    Grails 1.1 is fully supported.  Grails commands may be run from within the editor or the command line.   The only catch is that TextMate uses your environmental settings, so Grails needs to be configured to run properly via the command line or you may be in trouble.
  2. Resources
    It's very refreshing to work with an IDE that doesn't require 500+ MB of memory to run.  All projects I worked on within TextMate maxed out around 40-50 MB of RAM which leaves plenty of extra RAM available for other applications to use.
  3. Easy Configuration
    Configuring a new Grails project for use within TextMate was an incredibly liberating experience.  I still occasionally have nightmares about trying to get the impossible legacy Java project to work properly in IntelliJ or Eclipse, but Grails has simplified this process quite a bit, and TextMate has simplified it even more.  All you need to do in TextMate is drag the root folder of your (already created) Grails project into the project window and you're done.  It doesn't get much easier than that.
  4. Battery life
    This took me a bit by surprise.  TextMate is much more CPU friendly than IntelliJ.  This decrease in energy consumption is very noticeable when running off of battery power.  My battery life increased by 30 minutes when using TextMate exclusively.
  5. Fast
    TextMate starts up in seconds and is very responsive.  IntelliJ can take minutes to launch.

The Bad

With TextMate you get speed, simplicity, and good Grails support, but you have to give some things up as well.

  1. Code completion
    I miss code completion.  I never realized how much I leaned on it when working with classes and libraries which I was unfamiliar with.  TextMate has a poor man's version of code completion, but it's not as easy to use or as intuitive as that found in IntelliJ.
  2. Click through
    This is the ability to hold down the command key and click on a class name within the editor and have the editor open up that class.  There is no click through support in TextMate which can make navigating around a project a bit more painful than it has to be.
  3. Method list
    I like to be able to view a list of all methods within a class.  I haven't found a way to do this in TextMate, but I'm hoping a bundle exists out there somewhere which will provide this functionality.
  4. Debugging
    Ah, debugging.  A very useful but often abused feature included within IntelliJ.  If you want to debug in TextMate, you'll need to do it the old fashioned way with logging or print statements.
  5. Refactoring
    Other than the ability to find and replace, refactoring doesn't exist in TextMate.
  6. OS X only
    TextMate only runs on the Mac.  Windows, Linux, and OS/2 users are out of luck.

TextMate is a very capable IDE with good Grails support.  It must be stated that TextMate provides support for most popular languages and even some not-so-popular ones.  TextMate really shines in its simplicity and ease of use, but it is lacking in many features which come standard in the more popular Java IDEs.  Another knock on TextMate is it costs $50 which is $50 more than NetBeans or Eclipse, both being more full featured IDEs.

I'd recommend downloading TextMate and trying it during the 30 day free trial.  It's great for small projects or demos.  Due to its lack of navigation 'perks', I feel large projects quickly become unwieldy, but you may find you prefer it when working with a smaller codebase.

Comments:

About IDEA

by thevery on April 21, 2009 at 8:43 AM CDT
BTW, have you tried latest EAP? It has many fixes for grails 1.1 support: http://www.jetbrains.net/confluence/display/IDEADEV/Diana+EAP

What about Netbeans?

by Jeremy King on April 21, 2009 at 9:49 AM CDT
Curious if you've tried Netbeans for grails development? Thoughts?

Windows editor supporting TM bundles

by warjan on April 21, 2009 at 9:51 AM CDT
There is e - text editor that supports TextMate bundles (basically it is TextMate for Windows, and there is Linux version in the works). You can find it on e-texteditor.com

IntelliJ IDEA EAP

by Colin Harrington on April 21, 2009 at 10:19 AM CDT
The IntelliJ IDEA EAP does the trick for me. It supports 1.1 pretty well. The one feature that currently holds me back from using Netbeans is the lack of debugging support. IDEA has pretty good support for Unit testing and Debugging: if Netbeans did these well there would be no reason to buy IDEA. We are supposed to see something from SpringSource in the Eclipse arena, but who knows when that will show up, and what it will be. Textmate doesn't help the Linux or Windowz crowd :-(

NB Debugging

by Joey Gibson on April 21, 2009 at 12:42 PM CDT
The nightlies and milestone releases of NB 6.7 have Grails 1.1 + debugging support. You have to attach the debugger to the Grails process that you started with "grails-debug run-app" but that's all. Once it's connected, debug away.

netbeans doesn't like maven grails

by Matt on April 21, 2009 at 1:32 PM CDT
The problem I've found with netbeans is you can either have a maven project or a grails project, not both. Anyone able to get past this?

Netbeans and Grails+Maven

by John on April 21, 2009 at 8:19 PM CDT
I've also been unhappy with the either/or aspect of Netbeans when combining Maven with Grails. From a mailing list post I read somewhere it sounded like this wasn't going to be easy to solve, since apparently Netbeans projects can only have one "nature", unlike Eclipse and IDEA. Although it seems to me they could simply treat it as a Maven project if there's a pom.xml file there, and just honor all the Maven settings, targets, etc.

don't use maven

by pratik patel on April 21, 2009 at 9:21 PM CDT
simple answer: don't use maven :) or at least put your Grails project in a nested maven project, so can have all the plumbing of mvn in a parent project.

Grails TM user group

by Luke Daley on April 26, 2009 at 8:04 PM CDT
Dean, Glad to hear you are giving TextMate a try. I look after the Groovy and Grails bundles (among others). As for code completion, this is something that we are just going to have to wait for TM2 to have. There are some options now, but none are good enough. As for click through, I could quite easily implement something like this. It might be worth check out the ‘Go To …’ functions in the bundle. It allows you to jump to related classes/files in a Grails project. It's a bit clumsy at first, but once you get used to it I find it a very efficient way to move around (try it with ???). I'll look into something like the click through feature you speak of. …

grails tm user group pt. 2

by Luke Daley on April 26, 2009 at 8:04 PM CDT
As for the method list, have you tried ??T? That should show all methods and allow you to navigate to them. It currently doesn't handle variables, which includes closure variables (e.g. controller actions). Support for that is in the works. As for debugging, there is not much that can be done there at the moment sorry. As for refactoring, it's theoretically possible but so difficult to get right that I am not going to attempt it. The risk of breaking code in very subtle ways is too high. As for OS X only, I'll take great software over lowest common denominator any day, but that's just me ;) I am trying to start a community around the bundles, it's currently a google group which can be found @ http://groups.google.com/group/tm-groovygrails.

Great Advice

by Dean Del Ponte on April 28, 2009 at 5:21 PM CDT
That's for the help, Luke. I'll give it a try.

Method List

by Dean Del Ponte on June 30, 2009 at 11:20 PM CDT
Hi Luke. I think you may have entered special characters when describing how to get a method list and they're not displaying properly. ??T? is now a valid command.

Idea Maia EAP + SSD

by Murali V on July 14, 2009 at 12:47 PM CDT
Hi Dean, I was able to speed up IDEA by going SSD ( Intel X25-M). Ubuntu loads in 10-15 seconds and IDEA runs very smoothly, so I am back on "Developing with Pleasure" :-) thanks Murali V

ide

by roamy on April 20, 2010 at 1:12 AM CDT
I use xcode a lot. Just drag the development folder over there under window organizer and you can edit away - don't forget to save as you go or you will have to quit to save all. I like it because I can compare several projects at once.
Subject*
Name*
Comment*