Creator of the Apache Tapestry web application framework and the Apache HiveMind dependency injection container. Howard has been an active member of the Java community since 1997. He specializes in all things Tapestry, including on-site Tapestry training and mentoring, but has lately been spreading out into fun new areas including functional programming (with Clojure), and NodeJS. Howard is a DZone MVB and is not an employee of DZone and has posted 81 posts at DZone. You can read more from them at their website. View Full User Profile

Is it Time to Switch Back to IntelliJ?

  • submit to reddit

I've been trying to stick with Eclipse now for a while. I switched from IntelliJ 8 to Eclipse because IntelliJ stopped working for Tapestry (I still don't know why) and because my fingers were getting tied in knots switching between IntelliJ and Eclipse. I have to switch back and forth because my Tapestry training uses Eclipse and I got a lot of negative feedback the times I tried to get people to use IntelliJ as part of the training.

In any case, I've been gritting my teeth against the travesty that is Eclipse; the inconsistent behaviors, the needless complexity, the lack of sense in much of the UI. I often wonder what IDE the Eclipse developers use, because it couldn't possibly be Eclipse itself, or they would have fixed some of the more brain-damaged stuff years ago.

One thing that is currently killing me is that Eclipse has no concept that some source folders contain production code and some contain test code. Because of that, when I collect coverage, EMMA instruments the test code as well as the production code. That not only throws off coverage figures, but breaks some of my tests (advanced ones about bytecode manipulation, that are sensitive to when EMMA adds new fields or methods to existing classes).

Fortunately, EMMA has an option to restrict its instrumentation (though it a global preference, and not configurable for individual projects) ... but shouldn't Eclipse understand this distinction natively? IntelliJ does, and it helps prevent a lot of problems, not just with coding, but with testing as well.

I keep hoping that there's a better, faster, simpler solution out there ... something that is elegant and precise. Eclipse is dumb as a sackful of hammers, and IntelliJ is almost fractal in its complexity, and ugly to boot.

I haven't found my perfect IDE yet. Maybe it's NetBeans?


Published at DZone with permission of Howard Lewis Ship, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)



Edvin Syse replied on Wed, 2010/12/29 - 6:43am

NetBeans is certainly the most beautiful and native-looking IDE out there, but IntelliJ 10 has actually become a lot more polished in its looks. Coupled with the Dark Pastels theme, I think IDEA is very nice to look at. Also, looks is probably at the bottom of my list when I pick IDE's. After being used to the refactoring, editor and intentions of IDEA, nothing else compares. If you haven't tried the new content assist in 10 you REALLY should give it a go again :)

Carlos Hoces replied on Wed, 2010/12/29 - 7:16am

I don't know of any "perfect" IDE, but once you get used to NetBeans, it seems quite dificult to switch to anything else. I feel very confortable with NetBeans.

Mark Stephens replied on Wed, 2010/12/29 - 7:31am

IDEA 10 is faster than 9 which is a big relief. It could still be quicker (it used to be the fastest kid on the block). NetBeans 7 looks very swish on the Mac.

Artur Biesiadowski replied on Wed, 2010/12/29 - 8:05am

Try right-clicking on project root and selecting 'Coverage->Coverage configurations' and selecting 'Coverage'. You can see the list of package/source folder pairs there and select which ones should be instrumented and which not.

Unfortunately, in my version it seems that it works only per-package level (so test folder is also selected/deselected when I click on given package for src folder). Still, I think that what you basically need is

1) Have EMMA coverage config window display it in some kind of tree instead of flat structure (so select/deselect all can be done on source folder node, not only per each package separately)

2) Have packaged treated independent for each source folder in EMMA

That is a reasonable request ... but this is just a misfunctional EMMA window? Why blame eclipse for that?

Mark Haniford replied on Wed, 2010/12/29 - 11:04am

Eclipse is a disaster.  I keep on thinking that they'll overhaul the who thing sooner than later, but years and years go by with the same old problems.

Howard Lewis Ship replied on Wed, 2010/12/29 - 1:55pm

I'm almost always perplexed by JavaLobby's selection of which blog entries are promoted here as articles.

Endre Varga replied on Wed, 2010/12/29 - 12:38pm in response to: Edvin Syse

Native-looking?? Last time I tried NetBeans all of my inactive tabs were unreadable as they had black text on black background. The cause of that was clearly that it incorrectly handles custom windows themes. I use a very dark theme, but just to be clear: all of the text is readable in my theme. NetBeans is so adored by a lot of programmers that I try it again and again, but at the end it is more sluggish on my computer and much more unreliable than Eclipse. If it works for you, then good for you. It is simply a pain for me. As for IntelliJ, I tried it but cannot decide yet. It certainly has some nice features.

Arek Stryjski replied on Wed, 2010/12/29 - 5:05pm

I changed from NetBeans to IntelliJ 10 two weeks ago and I'm very happy.
I tried before to use it (after JBuilder died), but it didn't work for me. Now it was surprisingly easy to switch.

Science Oracle took Sun, NetBeans felt like another dying IDE... I'm very sorry but it was my impression.
After we switched repository to GIT it started to be very difficult to use :(

IntelliJ 10 feels very simple and productive. I like it a lot.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.