I honestly can't understand why people love IDEA so much. I know lots of people who swear by it, but absolutely none of them can articulate why.
Often they say Eclipse sucks, which is completely ignoring the question, and usually doesn't come with any substantial explanation of the supposed suckage. Moreover, talking about how one thing sucks and then silently comparing it to something else implies the other thing has no flaws, which is clearly unfair and stupid.
The only positive non-eclipse-hating arguments I've heard is that it's "easy to use" or "slick", both of which aren't useful to me since I'm familiar and comfortable with Eclipse's user experience. The rare time a feature is mentioned it's something Eclipse has as well.
I've tried to learn it a few times but since no one has been able to articulate any good reason to use it past a kind of anti-eclipse zealotry I haven't spent more than a few hours on it.
I'm not saying it's stupid to like IDEA, I'm saying that I think that preference in this case comes down to wishy washy things like 'feel', which is entirely subjective and entirely inarguable.
I will say this, I've heard plenty of IDEA users be snarky and condescending to people who use Eclipse (I've recently changed jobs and now work in a place seething with them), and I've not once seen it the other way. Anicdata I know, but that is life.
Ridiculous attention to detail. It isn't the big things, mostly, that draw me to IDEA (though some of them, like the way it handles projects and that Maven Just Works, help a lot), but the thousand little things that someone, somewhere, got right that you don't think about. Unless I think about it, I just notice that the overall experience is somehow more pleasant.
Stuff like what comes first in autocomplete (Eclipse's quality in this regard has been somewhat inconsistent). Refactor suggesting intelligent names for variables based on their types.
And then there's the theming. Normally, Swing apps are somewhat ugly and generally obnoxious. The JetBrains folks have put together a Swing LaF that's beautiful and compact, which also contributes to the overall experience just being pleasant.
For example; for some reason Flash pretty much always crashes when you're pausing the VM (stepping through commands) for too long, but it's impossible for the IDE to detect that.
That meant that every time this happened you would need to first stop the debugger and start it again. In IntelliJ IDEA 12, only for Flash, the debugger's start button now turns into a 'restart' button which does just that in one click.
It might be a tiny detail, but somebody actually looked at my specific use case and added an improvement for it which is quite an amazing level of attention to detail.
Well, it is a Swing app and Swing apps on Linux look atrocious. Especially the font rendering looks like taken from Linux distributions from 10 years ago.
When you see this on the first run, it kind of successfully undermines the argument about ridiculous attention to detail. I know that Swing is not under JetBrains' control, but Eclipse looks fine.
IntelliJ used to look quite a bit like a Swing app. At least on OS X, going from 10 to 11 was a major visual improvement. You can tell it's not native, but it's MUCH closer than it used to be.
Hmm, I don't use Linux myself so I can't really be 100% sure. But I found the info here. Maybe they don't mean "platform rendering engine" when they say "system fonts"?
Your belief appears to be that things you have a hard time noticing, like "feel" and "ease of use", are entirely subjective.
That's definitely not true. You not seeing X isn't proof that X doesn't exist. Germs are too small to see, but they matter a great deal.
The same is true of usability. You can definitely measure it. It isn't subjective, but it is personal. Even so, it still matters, because those personal factors have a lot of regularity across individuals that can be exploited. A great example is the iPod. It wasn't the first MP3 player, and it arguably wasn't the best when it came out. But it crushed the existing players because Apple spent a lot of time on making it easy to use and slick.
The amazing thing to me about the iPod isn't that it was better than the competition. It's that the competition never caught up. Precisely because, like you, many of their engineers and executives never took usability seriously.
I'm sorry if I confused you by using the term subjective. You're right, I meant personal. And I certainly care about usability, my point is that no one has ever been able to convince me about why IDEA has better usability, or if the supposed usabilty improvements are things I'll care about.
IDEs are interesting because you get very used to the one you're using. I am much faster and efficient in Eclipse than I am in IDEA (I've used a few times over the years, for about a day each time).
Could I become faster and more efficient in IDEA that I am at Eclipse if I spent a month learning it? Maybe, I don't know. No one has made any arguments convincing enough for me to sink an entire month into finding out.
Usability, in fact, is why I prefer Eclipse to IDEA. I've tried IDEA before but it always felt like a Swing app. From the obvious, like the way file dialog works to the subtle, like how the UI reacts, makes Eclipse feel more usable to me.
Eclipse's Maven support is not great. IntelliJ's is better but Netbean's is the best in my opinion. The problem with IntelliJ's Maven support is it doesn't handle multiple non-nested projects well.
If I were able to set up global Maven build configurations without having to jin up a dummy parent project, I'd make the switch. IntelliJ has superior support for running and debugging individual JUnit tests and application debugging in general.
I also like the ability to set up a variety of "runners" in IntelliJ and then execute them with a fuzzy find as if I were on the command line.
I use IntelliJ with multiple non-nested Maven projects all the time.
I typically have a projects directory under which I have many subfolders containing Maven projects. In IntelliJ I create a single module rooted at my "projects" folder but for this module do not set up any sources. Then it is just a matter of right-clicking any POM and selecting "Add as Maven project..." I can enable/disable these projects at whim.
You can also simply add each module at a time.
I've always been impressed that it "just works". It'll even do in-IDE compilation against latest sources if it detects a snapshot dependency across (even non-nested!) modules/projects.
I had issues with updating Eclipse itself. The last time I used Eclipse was when I updated the main IDE itself. The update somehow broke my plugins (including Google's ADT) so badly that I had to remove Eclipse and reinstall it and the plugins from scratch. I decided to move on to IntelliJ after that, and I have not had any update issues since then.
This was back in the Eclipse 3.5-3.7 days, but with 4.x already out, it's possible that this issue has already been fixed.
I've been out of the Eclipse world for about two years but that was always something that confused me. With Eclipse it was also so hard to find the right version to download. You couldn't download Eclipse, you downloaded the Something pack or the Other Thing pack.
Then there were plugins you might want but they were only distributed as Eclipse installs so you either had to install that version or download it and steal the plugins you wanted out of the directories after you unzipped it.
Once you got it running it wasn't much of a problem, but it was one of those things that I hated dealing with the few times it was necessary.
I find Eclipse's Scala support to be somewhat lacking. Don't get me wrong, it's usable. Apparently it has come a very long way...before I began doing Scala dev, I guess it was really rough. Still, there are enough annoyances that I typically find working in vim more productive.
1) Inability to automatically import types within a project the way java projects can means I have to manually enter all my import statements. No productivity increase over a plain text editor there.
2) Autocomplete bugginess. Sometimes deleting text too quickly causes the autocomplete to have fits, and I end up watching a single character deleted every few seconds as it struggles to catch up. On a 2012 MacBook Pro with 16GB of RAM under light load, this is terrible performance. Again, a plain text editor works better.
3) Hit-or-miss (mostly miss) ability to evaluate Scala expressions while debugging.
4) Occasional error-recognition bugs. Sometimes the IDE will insist something is an error. Compiling the code will work, and after I close and reopen Eclipse, it agrees that there are no errors.
5) Constantly fighting with out-of-sync issues with the file system. Roughly 50% of the time that I click a file to open a code-editing window, the code editor window will simply say, "Out of sync with the file system". I then have to hit f5, which sometimes works - sometimes I have to refresh the entire folder above that, or its parent, or...etc. This happens even when there are no external programs editing the file in question.
None of these things truly prevent me from getting my work done, but they slow me down and are irritating.
IDEs, no matter which vendor they come from, are complex things. A zillion options, keystrokes up the wazoo. Moving from one to another is like having an arm lopped off. It takes a lot of time to get comfortable. Muscle memory is a powerful thing.
For software I use a lot, I find learning in bursts works well.
On first use I have an initial explore until my brain starts to overload and then just try to get stuff done.
From then on, every so often - perhaps a month later and even a year or years later, I'll go on another exploration session to build on top of what I know.
If you've never done it, it's worth trying. It worked wonders for my vi skills many years ago!
Often they say Eclipse sucks, which is completely ignoring the question, and usually doesn't come with any substantial explanation of the supposed suckage. Moreover, talking about how one thing sucks and then silently comparing it to something else implies the other thing has no flaws, which is clearly unfair and stupid.
The only positive non-eclipse-hating arguments I've heard is that it's "easy to use" or "slick", both of which aren't useful to me since I'm familiar and comfortable with Eclipse's user experience. The rare time a feature is mentioned it's something Eclipse has as well.
I've tried to learn it a few times but since no one has been able to articulate any good reason to use it past a kind of anti-eclipse zealotry I haven't spent more than a few hours on it.
I'm not saying it's stupid to like IDEA, I'm saying that I think that preference in this case comes down to wishy washy things like 'feel', which is entirely subjective and entirely inarguable.
I will say this, I've heard plenty of IDEA users be snarky and condescending to people who use Eclipse (I've recently changed jobs and now work in a place seething with them), and I've not once seen it the other way. Anicdata I know, but that is life.