Grails IDE - Eclipse vs. IntelliJ IDEA vs. NetBeans
No successful technology today exists without great IDE tooling support. It’s like a law. Some tools are so great that they went beyond their original missions and became a successful technology itself. Take the ubiquitous Eclipse platform for example, it began as the donation code from IBM’s VisualAge for Java, which was supposed to be a good IDE for Java development.
In other words, I reckon the greatness of the tools is like an indicator factor for the level of maturity and popularity of the technology itself. The abundance of tech books is another such indicator.
Grails is really sweet. But it’s also very young. It just reached 1.0 RC2 yesterday. So for the curious Grails developers out there, what are the tools available for us? I’ll share my experience choosing my perfect Grails dev tool in this article.
Eclipse
First, I’m a long time Eclipse user. So I started with Eclipse. Lucky enough, we have the Groovy Eclipse plug-in which is the best (and only?) plug-in bringing Groovy support to the Eclipse world. (GroovyMonkey is the other one being “Groovy” but it’s not for serious Groovy and Grails development)
I’m using the update site for the development version (http://dist.codehaus.org/groovy/distributions/updateDev/). The latest build is 1.1.0.20071001. The plug-in is created for general Groovy development. The latest build now provides content assist, which is pretty neat and is essential for a practically usable modern IDE.
But there’s still a long wish-list and todo-list for the plug-in. To name a few, there’s still no specific support for developing Grails apps. The current way to work on Grails with it is kind of a DIY. This wiki page is the must-read for getting comfortable with Grails in Eclipse.
Also, the lack of refactoring, code formatting, and the trouble in debugging are the top most wanted missing parts. (Oh I’m so spoiled by Eclipse.)
That said, I’m still pretty happy with what I’ve already got. What’s more, the power of Eclipse brings you other wonderful tools including Aptana and Mylyn. Them together, you are good to go.
I’ll give Groovy Eclipse a 3 out of 5.
IntelliJ IDEA 7
I’ve heard of the greatness of IDEA for quite a while. Yet I’ve not really tried using it until I’m seriously looking for the best tool for Grails, the resistance mostly being its non-free-ness.
But, man! Grails tasks are already available at your fingertips. Syntax highlighting for .gsp and code formatting are neat. Content assist is of production quality. And the best, step debugging works out of the box. The IntelliJ folks are really doing a good job with the JetGroovy plugin. You can check this page on the Grails wiki to get more details.
There are some distracting issues with IDEA itself, though. For example, the startup loading and scanning taking so long that it’s crazy for a modern IDE like this. Service classes cannot get resolved in controllers while they are are marked as source folders. And I still need to get used to the funky tabs which don’t have close buttons and saves any change stealthily.
I give JetGroovy a 4 out of 5.
NetBeans 6.1
Exactly speaking, that’s NetBeans 6.1 Dev nightly build that I’ve used. The Groovy and Grails plugin is a new comer and doesn’t even show up in the latest 6.0 release. You can only find it in the plugins repository of the latest Dev build of 6.1.
And it’s really an infant and far from finished. Currently what I see it can do is nothing more than basic syntax highlighting, creating an empty Grails app and run or stop it. No menu for creating domain classes, controllers, etc. No content assist. Not to mention refactoring and debuging, which I didn’t bother to try.
I give it a 1 out of 5. It’s great NetBeans is trying. But it’s still far from usable.
The Verdict
The current choice of tooling support for Grails is still limited. IDEA is really great. But in the end I’m staying with Eclipse. It’s the Eclipse ecosystem that keeps me loyal. And I have high hopes Grails and Groovy will get better tools on Eclipse, now that the major players in the industry like IBM is already playing with Groovy in its Project Zero.
But after all, when talking about choosing the right tool, it’s always about the right tool for YOU.
Tags: eclipse, Grails, ide, intellij idea, netbeans