The Java jungle: integrated development environments

Following this post and this other one, I am now exploring the Java integrated development environments, still with JavaEE teaching purposes in mind.

I will briefly review Eclipse, Netbeans … and IntelliJ IDEA (yes, it is not opensource, but they give free classroom licenses).

Disclaimer #1: most of the things I say here are based on personal taste and experience. Hence, my opinion is highly biased. Also, there is nothing scientific in the claims that I make. You have been warned :-)

Disclaimer #2: the logos used in this entry are copyright / trademark / deposit / bla bla bla their respective owners bla bla bla used without asking their permissions bla bla bla and I don’t care bla bla bla…

Eclipse

Quite frankly I have been a supporter of Eclipse for quite some time. Yet, I am getting more and more disappointed by the project evolution. Sorry but I have to be quite harsh:

  • Eclipse is now a decent Java development IDE, but definitely not amazing anymore (just an example: everybody has powerful refactorings now).
  • SWT still looks awkward on a Mac.
  • WTP provides the very bare minimum for JavaEE / web development. Really. For instance it won’t help you writing a JPA persistence.xml. Dali is buggy and honestly a bit useless. I guess everything works fine if you buy the IBM RAD stack, but meanwhile WTP feels unpolished.
  • Setting up a working environment (application servers, frameworks, …) takes time. It’s not straightforward. The whole experience is painful.
  • … I could say more but I will definitely stop there.

I hope the situation on Eclipse improves some day, but the fact is that Eclipse is now “just good enough”, but not the shinny IDE it used to be. It has a very good platform though, and writing tools as Eclipse plug-ins is still a very appealing choice (BTW it’s how we write our research prototypes). I guess that you need to invest money on IBM RAD or another packaging if you want to get a pleasant experience with minimal set-up and a good assistance… all of this out of the box.

Netbeans

I have been using the various releases of Netbeans for teaching over the past 2 years. Netbeans is brilliant in providing an out of the box experience: everything is there… and it just works. The IDE has been getting stronger and stronger over the releases. Last but not least: it is gorgeous on a Mac as the developers put some efforts on having a Swing L&F that blends well.

Students generally appreciate the fact that they can have a working JavaEE development environment in just a few clicks. Most wizards and default settings just make sense. We have still been plagued by some major problems in our labs: random freezes and crashes, projects that cannot be easily transferred to other machines (requiring the creation of new projects) and failures due to InstallShield that would silently not install Glassfish (a widely known bug). Good news: Netbeans 6 won’t apparently ship using this Install-biiiip crap (just kidding of course) :-)

I have been hugely impressed by the current betas of Netbeans 6. This release will be just amazing: go download it and figure out by yourself! It makes Eclipse look like it had been released 5 years ago. In terms of tooling and developer assistance, it is closing the gaps on IntelliJ IDEA. Sun has put some efforts on its Java IDE and it is really paying off: expect more and more migrations from Eclipse to Netbeans from shops where Eclipse was just used as an IDE and not as a platform for building applications. I cannot even believe anymore that Netbeans 3 has existed…

IntelliJ IDEA

I have been using this IDE for 2 years thanks to the opensource license scheme that supports projects like IzPack. IntelliJ IDEA clearly targets the experienced Java developers. It feels more like a powerful toolbox than a traditional IDE.

What is amazing with IntelliJ IDEA is how simple it integrates with various application servers, frameworks and libraries. The whole experience is straightforward. With Netbeans you get a ready-to-use package while with IntelliJ IDEA you don’t get that — but you will quickly create your own environment.

The upcoming version 7 is a good step forward compared to version 6, and the JavaEE support is much better, especially when using JavaEE 5. If you still doubt about this IDE, I suggest that you Google for reviews and blog articles regarding its merits and how it changed the life of so many developers ;-) . The fact that it is both powerful yet very intuitive makes it a good choice for teaching purposes.

Verdict

My choice is still open as I have a week or two to make my mind. Clearly I won’t choose Eclipse. For my teaching purpose, Netbeans 6 and IntelliJ IDEA are both as good in terms of features and experience. Netbeans 6 is appealing, but the current betas are quite resource demanding… and we don’t have much RAM (and I forgot to say that those machines run Oracle instances…). I found IntelliJ IDEA to be nice on resources, making it probably a better fit with regard to this constraint. I have been in touch with Jetbrains to get classrooms licenses and I am still waiting for their decision.

Do not hesitate to share your own experiences regarding development environments for JavaEE teaching! You may also have an opposite view (especially on Eclipse) so don’t hesitate to launch a flamewar with me :-)

Update: I will use IntelliJ IDEA ;-) (still, Netbeans 6 will rock!)

Leave a Reply