Matt RaibleMatt Raible is a Java Champion and Developer Advocate at Okta. developer.okta.com

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

My IDEA Evaluation - Eclipse is better

I've been trying to use IDEA (on OS X) for the past few weeks and I keep reverting back to Eclipse for features that seem to be missing. I know the features must be there, but I just can't find them. Why else would everyone like it so much? Sidenote: I've never used IDEA for a feature that doesn't exist in Eclipse - I'm sure there are some, I'm just not using them. It sure would be cool if someone created a HowTo explaining how to migrate from Eclipse to IDEA. In the meantime, I'll settle for posting my questions here:

  • Debugging in Tomcat - I'm currently using Sysdeo's Tomcat Plugin in Eclipse for Tomcat 4.1.27. It's super easy to setup and use - I expect the same ease-of-use from IDEA. I haven't looked much, but I'd love to hear feedback on IDEA's Tomcat debugging support.
  • Renaming a variable in a JavaBean renames getter and setter methods. Sounds simple enough, in my 10 second search, I couldn't find it. In Eclipse, right-click -> Refactor -> Rename.
  • Override/Implement methods (from parent classes and interfaces). Right click -> Source -> Override/Implement methods in Eclipse.

I'll add more as I think of them throughout the day. So far, I like IDEA, but to be honest - it's not saving me any time over Eclipse. It also locks up as much as Eclipse and it's responsiveness is still a big sluggish on OS X (10.2.8) with 1 GB of RAM (1.33 MHz processor). Hopefully Panther will make both IDEs faster. Two weeks ago, I was thinking of buying it (as well as Dreamweaver) - now I'm frustrated with IDEA's lack of features and Dreamweaver's slowness. I'll probably pass on shelling out the cash since Eclipse and BBEdit are giving me all the features I need in IDEA and Dreamweaver.

Posted in Java at Oct 20 2003, 06:17:51 AM MDT 22 Comments
Comments:

To rename a variable, just highlight the variable in the code, right-click, select Refactor->Rename

Posted by Erik on October 20, 2003 at 06:33 AM MDT #

To Override and to Implement, just click Ctrl-O or Ctlr-I

Posted by Erik on October 20, 2003 at 06:34 AM MDT #

Do you know there is a help integrated into Idea ? It sound always strange to me that people complain but never read the documentation... OK, I agree that feature should be intuitives, but intuitivity depends from what ide you are comming from. Idea is really intuitive for someone coming from Jbuilder (ex: ctrl+J for template is the same as in JBuilder... this is not a coinsidence !). So if you want to know all the features and short cuts on a single look, just download the Idea reference card : http://www.intellij.org/twiki/pub/Main/IdeaReferenceCard/IDEAReferenceCard.pdf, and you will soon forget about Eclipse...

Posted by nicolas on October 20, 2003 at 07:10 AM MDT #

Tomcat: I didn't find it particularly difficult to configure this =/ I guess mileage varies.

Rename: Refactor->Rename. It will ask if you want to rename the getter/setter or not.

Override/Implement: The aformenetioned keystrokes, or Code Menu -> Override Methods / Code -> Implement Methods.

Or even easier, when you declare it to implement/extends it will give you a context option (the little lightbulb) that will let you bring this up immediately.

As has been pointed out, IDEA has an excellent help system if you try it. I have found that finding how to do things doesn't require me to go to the help, usually -- at least not as much as in Eclipse. The only real bug I have seen on 3.0.X series on my TiBook is that sometimes a dialog box won't die if I go through a specific sequence of things. It seems much snappier to me than Eclipse, but the latest Eclipse milestones are supposed to make Eclipse bearable on OS X, and I haven't played with the last couple milestone releases.

I think, in the long run, the more open model Eclipse is developed under will make it win out. It hasn't yet, in my opinion, though.

Posted by Brian McCallister on October 20, 2003 at 07:48 AM MDT #

Re-reading your article I am thinking it is a skillfully constructed troll =) You got me.

Posted by Brian McCallister on October 20, 2003 at 07:49 AM MDT #

Tomcat usage within IDEA is not supported by the company. If you get it working, great. If not, you're on your own. Also, you cannot debug JSP's in Tomcat 4.1 from IDEA. You can from JBuilder, but not IDEA. IDEA people say it's Tomcat's fault. It's very interesting that it works under JBuilder. Of course, since you are talking about a non-supported feature, it doesn't matter. After my evaluation of the productions on the market, Eclipse/My-Eclipse blows IDEA away.

Posted by No one on October 20, 2003 at 08:06 AM MDT #

Support for JetBrains/IntelliJ in PDF form linked prominently on the company's home page.

Also, there is a whole big "Web Applications" configuration for your project, it supports starting web apps in debug mode from a Tomcat install elsewhere on your machine, happily grabbing a context and overriding its docBase for you, etc etc.

I have no idea where you got your ideas No One, but they are absurd.

Posted by Brian McCallister on October 20, 2003 at 08:21 AM MDT #

btw - I like the email feature for comments on your blog.

-Brian

Posted by Brian McCallister on October 20, 2003 at 08:28 AM MDT #

A good friend mentioned that IDEA is great for EJB work, better than the others. But I have no proof besides what has been told to me

Posted by Kris Thompson on October 20, 2003 at 08:29 AM MDT #

Concerning the EJB support, it kind of enforces the specification for you (knows about the relations between home/remote interfaces and bean class, thrown exceptions etc.). I believe no other IDE can allow you to add a new method to remote interface and then quickly introduce it in EJB class. Having worked with IDEA for over 2 years now, I still can't work comfortably with Eclipse. Overally,it's very nice, but I would gladly see a major rehaul in keys mapping/functionality (many things are unavailable from keyboard, others need two different keystrokes to turn on/off (like comment-out functionality)). The IntelliJ just seems much more effective to me. Then,there's the case of JSP support. No other IDE comes close, with complete support for user defined taglibs etc. Same for working with XML (DTD-based autocompletion, or completion based on something I may call "predicted DTD")

Posted by Grzegorz Mucha on October 20, 2003 at 08:49 AM MDT #

If you decide to stick with Eclipse you really should check out MyEclipse.

Posted by Göran Damberg on October 20, 2003 at 08:56 AM MDT #

Well, I like Eclipse too and use it all the time. Some of my coworkers use Idea. But have you tried to edit XML in eclipse? Yeah, there is XML buddy, but IDEA rocks when it comes to XML editing. It you have DTD defined, it allows you tag completion based on DTD, think the way eclipse supports ant tag completion. You can just click on the DTD definition in XML file and it takes you to the DTD. Very useful, if you don't remember what tags are supported where you are working. I like eclipse, but Idea is much better in some areas.

Posted by Prashant Rane on October 20, 2003 at 09:43 AM MDT #

>>My IDEA Evaluation - Eclipse is better Should read : My IDEA Evaluation - Have done nothing yet.

Posted by Zohar on October 20, 2003 at 10:24 AM MDT #

Matt, you just take a look at these pdfs: </br> * http://www.intellij.com/docs/ReferenceCard.pdf </br> * http://www.intellij.com/docs/WebApps.pdf </br> </br> You're not using IDEA if you don't master the keymaps. </br> Ara.

Posted by Ara Abrahamian on October 20, 2003 at 12:28 PM MDT #

As I expected, I just need to read more and bitch less. Thanks to all for your suggestions.

Posted by Matt Raible on October 20, 2003 at 02:20 PM MDT #

About Tomcat debugging, I'm able to debug with Tomcat using IDEA but I have found the Tomcat integration in IDEA supports debugging with Tomcat 4.0.5. If you want you can get the binaries for Tomcat 4.0.5 and after that you can follow the instructions that are found in the JetBrains site

Posted by Johann Reyes on October 21, 2003 at 06:16 AM MDT #

I'm using Eclipse right now having been an IDEA user for several years. I'm only using Eclipse because it is what the company I'm contracting with mandates.

The refactoring support in Eclipse does not match that in IDEA. Changing perspectives in Eclipse is painful - I don't really like the metaphor. Eclipse freezes up, which I assume means it's doing a garbage collection - you can tell IDEA is doing this because the trash icon in the bottom right will show that most of the allocated memory is being used. If you're using Tomcat 3 - I spent most of last year developing a Tomcat-based solution with IDEA - debugging is simple: if none of the other sources have the information you need have a look on jguru, I posted how to set up IDEA for Tomcat debugging there.

Re: Zohar's comments: +1 informative.

Posted by Walter Rumsby on October 22, 2003 at 02:49 PM MDT #

I think it all comes down to this. If you grew up on IDEA, you're going to have a hard time moving to Eclipse because Eclipse is right-click driven. If you learned Eclipse and how to do to everything in it, you're going to have a difficult time migrating to IDEA and all its keyboard-driven stuff (like I am).

As far as debugging Tomcat in Eclipse, it's a breeze - drop in the plugin, configure and run. With IDEA, I've tried this howto and I get the strangest thing. I can start Tomcat but it says "Apache Tomcat/5.0" and I don't even have 5.0 installed on my system. None of my apps run but the default Manager and Admin apps. It's probably because I'm running 4.1.27, but I'm not about to revert to Tomcat 4.0.x just so I can debug in IDEA. I'll continue to use Eclipse for that.

I do have to admit that the JSP support in IDEA is very good - Ctrl+B to go to an included file rocks. I can't import tag libraries to get code completion in Tag Libraries. I tried in both 3.0.5 and 957, but no luck in either (on OS X). I read the documentation and tried and tried again, but no luck. Oh well, none of my other editors support JSP Tag completion so I can't argue too much.

A lot of folks keep suggesting I use MyEclipse for JSPs in Eclipse, but I've tried to install it twice (on XP and OS X) with no luck. I don't like to waste my time on bad installers, so I'll continue with BBEdit and Homesite when using Eclipse.

Posted by Matt Raible on October 22, 2003 at 03:08 PM MDT #

More on this...

As an example of IDEA's superior refactoring, I just created a JUnit test case with Eclipse. Eclipse created a default constructor<c ode>public ProviderRegistrationTaskTest(String arg0)</code>. Well <code>arg0</code> is the test case's name, so I refactored this to <code>name</code>. IDEA would also update the <code>@param</code> tag in the JavaDoc. By default Eclipse doesn't. Furthermore IDEA has really nice code formatting features, so IDEA would make sure that the method signature is formatted the way I want it, i.e. <c ode>public ProviderRegistrationTaskTest( String name )</code>.

Sure, Eclipse's implementation is not the end of the world, but it's symptomatic of the fact that while Eclipse, in a general sense does the same things as IDEA, IDEA does them better. Also, I'm running IDEA at home on OS X 10.2.8 with a sub-1GHz G4 and performance is nice and fast.

Posted by Walter Rumsby on October 22, 2003 at 03:10 PM MDT #

I agree - Javadoc support in IDEA is truly outstanding. Eclipse doesn't even seem to care about Javadocs. As far as formatting in Eclipse, Jalopy is your best friend. It's seems strange to me that your company (or supervisor) should <strong>mandate</strong> an IDE. Don't they want productivity rather than uniformity. On my current project, there's 3 developers. We all switch between Eclipse, JBuilder and IDEA w/o issues at all. We each more comfortable with different IDEs (or none at all), so who cares? When I started, they gave me JBuilder and there was a "mandate" to use it. However, my supervisor was smart enough to tell us he didn't care - just use whatever you work best with.

Posted by Matt Raible on October 22, 2003 at 03:18 PM MDT #

They didn't really mandate Eclipse - rather they didn't want unlicensed copies of IDEA in use (I own my own license, so I guess technically I could use it). Actually I fired up IDEA yesterday and spent an hour trying to get it to work with our project, but there's so much code and it's so structured around Eclipse (e.g. I've set up debug options for debugging that require certain JVM flags) and the set up of the whole project is quite... idiosyncratic... I figured it wasn't worth the effort to get IDEA running (contract is only for a couple of months - I can live without IDEA for a couple of months at work).

Posted by Walter Rumsby on October 22, 2003 at 03:29 PM MDT #

Oh yeah, the way Eclipse handles instances of non-imported classes sucks too: hang around, wait, double click. I find myself writing X.toString();, saving the class, waiting for the red underline squiggle, double clicking, choosing the class I want, then finally getting the method I want.

Posted by Walter Rumsby on October 22, 2003 at 04:34 PM MDT #

Post a Comment:
  • HTML Syntax: Allowed