Tapestry Training -- From The Source

Let me help you get your team up to speed in Tapestry ... fast. Visit howardlewisship.com for details on training, mentoring and support!

Saturday, November 17, 2007

Another IntelliJ Zealot

Wow that was quick. My first attempt with IntelliJ didn't really take, but I've had more time now to make the adjustment under less pressure.

What a difference. On my Mac at least, it's much faster and more stable than Eclipse. I've been running current versions of Eclipse, with the Maven plugin but very little else, and Mylyn disabled as much as possible ... and Eclipse has been agonizingly slow and very unstable with multiple lock ups and crashes per day.

IntelliJ is just ... better. Faster (note that you need to turn off the Mac L&F if you want best performance; I'm using "Alloy").

I've been so thoroughly used to the Eclipse development model, including constant compilation. IntelliJ doesn't compile until you need to run code. It does parse your code constantly, which amounts to the same thing in terms of refactoring and code completion, but IntelliJ is far more forgiving of syntax errors and the like.

Maven integration is better; I chose an option where it synchronizes from Maven on demand (and on startup).

For a multi-module projects, IntelliJ does a better job. Each module really gets its own classpath, whereas Eclipse merges together all the source paths and all the libraries for all modules.

A couple of Tapestry development notes:

  • You do want to make sure that your exported resource patterns (in the Compiler project options) is !?*.java ... otherwise critical Tapestry files don't get copied and made available on the classpath.
  • Also, for IntelliJ you have to perform a make (command-F9) after changing code or templates for those changes to be visible.

Yes, there's a number of nitpicks, especially on a Mac. It's extremely intimidating the first time you launch, with a wealth of confusing options. Documentation is spotty and key concepts are never explained. There's too many modal popup windows. Regardless, I'm already working faster, using the mouse less, and keep finding new features. I'd say I'm using about 20% of what IntelliJ can do right now, and I'm already well ahead of the Eclipse curve.

Apparently, IntelliJ is like snowboarding: you need to give it three full days before you're hooked. Counterpoint: I'm still on skis.

Another analogy: IntelliJ is metric and Eclipse is english. If all you've ever known is feet and inches and pounds and ounces, then metric doesn't seem worth the effort to switch. Metric just seems like a different set of numbers, mixed with disconcerting nuances (such as the difference between mass and weight). On the other hand, once you make the transition, many difficult tasks become easier, since most conversions are multiplying or dividing by a power of ten.

IntelliJ's 30 day evaluation is long enough to get hooked. Give it a try.

11 comments:

Anton said...

> Eclipse development model, including constant compilation.

> IntelliJ doesn't compile until you need to run code.

Eclipse 'Window' menu has got a toggle 'Build automatically'.
If you switch it off behavior shall be same as for Idea. I always do it.

> It does parse your code constantly, which amounts

Eclipse does exactly the same after you switch that option off.

Anatol Pomozov said...

Congrats, Howard.

I cant imagine that I use other java editor other then IDEA. I am totally hooked. And you would feel the same after 2 years of using it.

Eugene Kuleshov said...

Howard, you must have been using old Maven plugin for Eclipse. Recent versions actually allow to import a multi-module Maven project as several Eclipse projects where each of them will have its own classpath.

It would be also interesting to hear why Mylyn didn't work for you.

andyhot said...

Beware of http://www.jetbrains.net/jira/browse/IDEA-15948 (see the last comments), which currently makes idea lose custom settings of web-facets upon maven synchronization.

Alexey Epishkin said...

try the menu action: Help -> Productivity Guide ;-)

Merlyn Albery-Speyer said...

Congratulations, Howard. I'm glad IDEA is working out for you. I've seen that there's a setting in IDEA to allow you to build on loss of focus, which is handy when you want to switch to a browser to see your changes take effect.

Jacques said...

Actually the build automatically menu is in the Project menu.

I will stay with Eclipse, nonetheless. Cause it is free.

Cheers.

binkley said...

If your template changes are automatically picked up by the maven build, then you can attach a maven goal to be run before compilation and also before run/debug (you will probably want both attachments).

This saves the extra step of manually building at the cost of running maven more than necessary.

Browse the right-hand side Maven tab and you can right-click on goals to find how to attach them.

Mike said...

Welcome Howard,

Now you may begin "Developing with Pleasure"

fanf said...

Sorry for the last post,

I just saw that Jetbrain grant free access to IntellijIDEA for OpenSource project leaders. Perhaps you want to use it ?

http://www.jetbrains.com/idea/buy/buy.html#openSource_howToApply

Francois

Steve said...

fanf, I imagine that HLS is already enjoying a free license for IntelliJ via the open source licensing... :)