Java Development: Eclipse or IntelliJ IDEA?
Java_Good_COBOL_Bad asks: "For Java development, would most people recommend using Eclipse or IntelliJ IDEA?
I am currently using Eclipse and it took a long time to get the environment set up. I understand that Eclipse is a framework that can be used for many things, not just Java development, but all I really need is an IDE for Java. So, I wonder if Eclipse is more complex than I need.
I have never used IDEA before. Is it more straight-forward? Has anybody here migrated from Eclipse to IDEA? How steep was the learning curve?"
Huh? If it's working, why switch?
I bet you were one of those "vi" types back in the day, weren't you? No editor can ever have too many features: Emacs all the way!
"He who would learn astronomy, and other recondite arts, let him go elsewhere. " -- John Calvin, commenting on Genesis 1
If your doing java development netbeans is an option. Eclipse has forced it to become much better. Although it doesn't use SWT. I prefer eclipse, but have friends who swear by net beans. Unlike most people in this situation we still talk to one antoher (java ide's seems to cause religous battes, like vi vs emacs.. etc..). This kind of battles are silly.
i ndex.html?cid=16052
http://www.netbeans.org/
http://community.java.net/netbeans/
than there is sun's java studio...what is this?? I don't know , but its free now and seems to be yet another ide.
http://developers.sun.com/prodtech/devtools/free/
IDEA is the best IDE I've ever used. It automates pretty much every mindless code navigation/generation/refactoring task, but stays out of your way otherwise. Really, it's not so much an IDE - more an souped-up, heavily-Java-specific text editor. There are no wizards, and it never hides code from you. It just takes a lot of the tedious tasks out of coding.
It's not hard to use, but the sheer array of features can take some time to discover and learn to use. It is very definitely "straightforward".
Eclipse is not bad - IDEA is expensive, and Eclipse is a decent free alternative. But if you have the money, there's no reason not to use IDEA. Eclipse has always seemed to me like a poorly-executed IDEA clone. Similar to most open-source desktop software, really.
And don't listen to the masochists who will tell you a text editor and the command line is all you need.
IDEA has a 30-day free trial - why don't you download it and give it a spin?
This space intentionally left blank.
I use CodeGuide5, which's interface is optimized for dealing with Java and it's refactorings. I also have Eclipse installed, but I find it tedious to use because it is too generic. I keep Eclipse for it's most robust CVS client so I can access some temperamental CVS servers.
I find it a valid question that IDEA is worth the few hundred dollars it may cost in order to have a more streamlined experience.
Depends on what you need to do, which frameworks your using. I've found IntelliJ integrates with a standard IDE-neutral build xml and custom tools like XDoclet much better than Eclipse. Eclipse demands that your project be built inside Eclipse to use any Eclipse tools. The default Java editor in IntelliJ is nicer than Eclipses as well.
If you're supporting multiple developers, Eclipse can be easier to get people to standardize on, making debugging the dev environment easier. If your doing JBoss work, the Eclipse based JBossIDE might be nicer than IntelliJ, just because everything is setup already. Avoid Rational Application Developer at all costs though, it probably needs a couple of revisions before the IBM over engineering gets out of your way and lets you work.
It's been a while since I've tried to do web framework stuff in IntelliJ, although it's always handled this a lot better than the plugins for Eclipse that I've seen, it never handled XDoclet integration well enough to deal with tag library and struts tags. That always made some nice features useless. Eclipse is just as bad, I've yet to see a good set of plugins that handle all the tools I use in a standard Java dev environment. Many of the plugins seem to expect things done the Eclipse way, or they become useless. I wouldn't mind doing things the 'Eclipse way' if that were synonymous with IDE-neutral, but until then, the Eclipse way won't cut it.
The thing that annoys me the most about all these IDEs is the lack of imagination in tool-building. Very few graphical tools handle the IDE-neutral environment well, the wizards and syntax highlighting engines tend to be extremely inflexible. If my project needs JUnit testing, why wouldn't I do an automated nightly pull and generate a public report everyday? Wouldn't my IDE only be helpful if I could do the Unit tests outside the IDE, without figuring out a boatload of crypticlly stored dependencies?
Anyway, I'd try each of them out with the particular features you need, and make sure to check that they will easily integrate other tools you'll need. Java IDE's could be a lot nicer. Both Eclipse and IntelliJ have made great improvements, but this is more a half-way point than anywhere near a victory lap.
Arrogance is Confidence which lacks integrity. -- me
You should also at least look at NetBeans.
Anyway, I have used all three of the big Java IDEs.
While they all share the same basic functionality, like great refactoring, ANT, and JUnit support, each has some areas it excels in. I would say IntelliJ is slightly better than eclipse (the free version, I have never used IBM's eclipse based environment), and both of these I prefer over NetBeans.
The main reason I prefer IntelliJ (if you can afford it) is that it has more useful shortcuts, more intelligent formatting capabilities (if you press enter while in a quoted string it will automatically insert the needed quotes and plus sign and place the rest of the string on the next line, and back again).
One feature I really like, that from what I remember is only in Eclipse, is incremental building. The other two require you to hit a build button before hitting the run/debug button. Not that I'm lazy, but you really get used to it building automagically when you hit save. One thing I find kind of annoying about Eclipse is that it doesn't include support for say, xml editing, which the other two support out-of-the-box, instead requiring you to go to their site and finding web-tools plugin. Also the internal parser used for error marking often requires saving the file before it will refresh the markings on the page.
The reason I put NetBeans last, is that it doesn't include quick fix suggestions. Its nice to be able to hit a couple of keys and have the IDE suggest and fix simple problems without having to look at a reference, or moving a bunch of code around.
From my experience all three of these IDEs take about the same amount of setup when you get passed simple applications, so if you had trouble with Eclipse, I don't think IntelliJ or NetBeans will be much simpler.
There is always javac I guess.
Respectfully, in addition to asking which IDE to use, you should be asking yourself why this is. Particularly if you do not work in soloist isolation, collaborating with a colleague is in your best interests - you should have asked a college with expertise to assist you. If you are not fortunate enough to be in a master-apprentice relationship with a more experienced colleague, you ought at least shift your automatic frame of mind towards the collaboration of a working group. You could later repay with collaborative expertise in a particular subset of specialty you possess. Even in open source projects, such instincts for teaming and efficiency will serve you well. Your question has been good, but it's basis is suggestive an compartmentalized perspective or environment that may be at least as important to ponder as the finer points of IDE efficiencies.
I work with both simultaneously. Both are adequate workspace environments, relatively easy to migrate and setup(*). However, I find it more interesting to redirect to asking if have considered using both IDEs for their strengths, if costs permit. After migrating, I found no need to actually choose between them, and would ask you if your post hides a false framing question, implying a binary choice when other options exist. You need not fully setup a project in an IDE to reap many of the benefits of it's use. You may load a single source file and still perform a fairly broad number of powerful actions. (As other will no doubt point out, the mix of refactorings offered between them varies, it can be pleasing to utilize both for a combined pool of available IDE refactorings.)
With Murphy as my witness, I currently have Eclipse, Visual SlickEdit, NetBeans, and IntelliJ installed. I use Eclipse for a subset of some of it's refactorings, SlickEdit as needed for things such as horizontal column cuts and power-editing macro recording/replay (the other IDEs simply don't provide these features suitably), and IntelliJ for most development. NetBeans I confess to not much using; I've tried JDeveloper on a colleagues box. Such evaluations are useful - an IDE with even one or two favorable unique features easily run on singleton files repays the exploratory time.
That you may not wish the setup costs is a valid point, as is ability level at maintaining familiarity with multiple IDEs, however the counterpoint here about maximizing efficiency by selection and mix of the right tools, and about continual learning, are, I think, valid. In both regards to increased colleague collaboration and avoiding binary choices to build a robust mix of tools, please consider keeping an active mind.
(*) There are some occasional stray bits of migration errata in either direction, but nothing severe. For instance, Eclipse awkwardly roadblocking on, say, encountering a mixed case windows directory vs an all lowercase Java import. That was bad coding by a third party developer, but an awkward case to workaround in Eclipse that IntelliJ handled smoothly. Both are good IDEs, IntelliJ is perhaps a bit smoother and more robust.
"The hottest places in Hell are reserved for those who, in times of moral crisis, preserved their neutrality." -Dante
Eclipse has a billion and one plugins, it runs on all platforms, it's awesome... Oh, but also it sucks. Absolutely anti-intuitive (perhaps holdover from it's IBM days? IBM couldn't design a UI to save thier lives). Inconsistancy, primarily, is my main beef. In one set of menus, FooBar is right on top, but on another it's two levels deep, but on the right-click context menu it's three levels deep in a completely different heirarchy... on one pane, but on another pane the right-click context menu for FooBar it's only one level deep, but is named slightly differently. It makes it's a nightmare to find what you are looking for even when know exactly what it is...
Dear Ask Slashdot: I am currently an Agnostic, but I've read a lot about this "Jesus" thing on the internet and it sounds really cool!! Although I don't plan to now, I would like the option to sin, and I would prefer something that keeps my weekends free because I really like to sleep in. I've read a little bit about Catholicism and it seems interesting, and I've looked at Judiasm, but I think I would have a problem fasting for a whole day even though eight days of gifs would be neat. Hopefully someone can point me in the right direction!
====
Will we actually see this on Ask Slashdot? Well, why not have a real religious argument, that would probably be less controversial than what IDE to choose!!
ACHTUNG! Das computermachine ist nicht fuer gefingerpoken und mittengrabben. Ist nicht fuer gewerken bei das dumpkopfen.
Eclipse == free
IntelliJ == NOT free
That's enough for me right there.
Is that how you make all your decisions?
No condoms == free
Using condoms == NOT free
Cost/benefits analysis... more than just a buzzword!
Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
Personally, I have used both in the workplace. I have found IntelliJ to be:
1) more expensive
2) more intuitive
3) more reliable (ie: searches in Eclipse regularly left items out)
4) faster
I would say that #1 is your deciding factor. If you are willing to spend the money on it (you can usually get it for 1/2 price for a Personal copy -- and free for open source projects), it is a much better product.
Some will argue that Eclipse is better because of the fact that it is open source. As much as I prefer open source software, I was willing to spend the money on IntelliJ for home because of #2-#4.
Some will likely point out that #3 just means that I was likely doing something wrong. It wasn't just me - it was the entire team. At the time that I noticed this deficit (last year), the entire work team was required to use Eclipse; and a few of us switched to IntelliJ (and honestly a couple to JBuilder as well; no one switched to NetBeans, though we tried it) because all but 1 of us despised how Eclipse performed.
If you aren't looking for something with all the bells and whistles, you might just want to go with a much cheaper solution like JCreator (which I also paid for) -- but I personally would recommend IntelliJ.
http://www.google.com/profiles/malachid
I've never been a huge fan of Integrated Development Enviornments. The learning curve is usually quite steep, each has its own peculiarities, and each does things you originally had no intention of doing.
Case in point, Anjuta, on the creation of a new app, creates a 500K config file and I have no idea what it's doing. Each IDE also has a tendency to create its own directory hierarchy, make file or equivilent, and if versioning is included, will pick its own scheme.
What this usually entails for me is loss of control over the project. I sort of feel trapped within the IDE, and unable to get out. The Visual Studio effect; I don't know where my code ends and the automatically generated stuff begins.
As such, I prefer keeping it simple. I use a bare text editor where possible. Syntac highlighting is a must for me, and I've found very few editors that do this correctly. Emacs will work if your colour scheme is OK, but Emacs is a quasi-IDE to begin with.
I find writing computer programs to be just that. Writing. It's a personalised sort of thing. A few personally written shell scripts, a handmade makefile, the command line and a decent editor can go a long, long way. You are intimately aquainted with all aspects of the project. On the downside, you are intimately aquainted with all aspects of the project.
Your milage may vary, considerably. But before you begin to use an IDE, as what it is giving you, good and bad, that a personalised DE is not. There's a trend towards monolithic IDE programs that do it all in one, but do they really deliver on their promise. Are you really more productive. Your troubles with Eclipse could be symptoms that IDE are really not for you.
May the Maths Be with you!