I think without question it's the best Java IDE out there. I try to avoid writing code in Java like the plague but if I really have to, I use IntelliJ IDEA.
I may have one of the single dumbest reasons every to not be able to use IntelliJ as my primary dev environment: their comment/Javadoc formatter isn't as robust as Eclipse's.
I am very verbose commenter for both other people coming behind me (in closed or open source software[1]) as well as myself a year down the road going back through thick code and needing to get back up to speed on it.
Because of this I frequently use HTML formatting in my Javadoc (lists, code snippets, etc.) and find Eclipse's Javadoc formatter more or less perfect.
It breaks lines exactly like I want it to, leaves blank lines entact where I want it to, etc.
I've attempted to file bugs for IntelliJ over the years to refine their Javadoc formatter and they have been fixed, but it still misses the boat on complex single, multi-line or Javadoc comments that requires hand-editing.
I know it's silly, I just can't get over that.
I also find the module/web/deployment/artifact model untenable; but even that I could get around if I had an effective formatter. (FWIW the Eclipse/WTP model is just as stupid when it comes to J2EE project modeling, so no one wins that battle)
If you can't get IntelliJ IDEA's JavaDoc formatter to do what you want there exists a plugin which lets you use Eclipse for formatting call Eclipse Code Formatter: http://plugins.intellij.net/plugin/?idea&id=6546
I have never used it, so I cannot comment on its quality, but it might be worth a try.
However submitting bugs and feature requests with examples would be better. Many reports are fixed quite quickly. I did not manage to find the bugs you filed though: http://youtrack.jetbrains.net/issues?q=%23rkalla
Bas thank you for the link; I gave that plugin a try before going back to Eclipse. Unfortunately the workflow of actually using it is terrible for someone that formats frequently (like I do).
I don't know what happened between the report and the fix in 10.x, but I didn't notice changed behavior. The formatter still didn't wrap correctly for me and indent.
For example, take this:
/* This is a really long line */
and turn it into:
/*
* This is a really
* long line.
*/
IIRC what it did was break the line but not prefix it with star, or it prefixed it but put no space between star and the chars... something like that.
It also didn't handle longer // comments well from what I remember and most importantly would mangle the HTML embedded in my Javadoc comments.
These are little touches that Eclipse takes care to handle... like ul-li lists inside of Javadoc that it will leave as a list and not try and compact down into a run on sentence.
Or things like p-tags formatted nicely as paragraphs.
I literally just want the default formatter from Eclipse in IJ and I'd be a happy camper.
I am surprised more people don't notice these discrepancies, but I don't want to be the only one pestering the IJ team for these fixes. They have plenty of other things to work on.
As I said I like to write a lot of comments; so I notice this more than most. I don't think I represent the norm here.
Thanks kitt, I really try hard to write enough documentation that no one (including me) is confused by my code if there are interested in understanding it.
I have just given this version a ride on a personal Android project. The new layout preview for Android interfaces works fine in the Community Edition (the free, open-source one).
So really - IntelliJ IDEA Community Edition is right now the best IDE for Android development and it's free too. Forget about Eclipse.
I also tried this new IntelliJ release for a test Android project and I couldn't deal with the fact that I had to fight the logcat window scrolling (every time a new message appeared the logcat window jumped to the bottom even if I was actively scrolling back to look at some previous message).
Do you know if there is an option to turn this behavior off? This seems like a small thing but it is a complete dealbreaker for me.
The key new features introduced in IntelliJ IDEA 11 include:
* Support for web development with the Play framework.
* Groovy 2.0 support with new intention actions and refactorings.
* Gradle integration.
* CoffeeScript editor with code assistance, inspections and formatting options.
* Grails 2.0 support with all its features, including also Grails web-flow and Spock framework.
And most importantly,
* The updated IntelliJ IDEA Community Edition gets important improvements for Android development, including live preview of Android UI layouts and compatibility with the latest Android 4.0 SDK (Ice Cream Sandwich).
Also: it is very col to be able to grab the source code for the community edition, and build the IDE yourself. That said, I buy the Ultimate edition because I live in IntelliJ (even to the point of doing about half of my CLojure dev in IntelliJ - don't laugh, it is pretty nice.)
Intellij falls squarely into that category of software that I'm always happy to pony up money for, year after year. The product is excellent, and support is just incredible.
A few times a year I'll run into an issue and fire off a support request. "Serge" usually responds within minutes, either with helpful guidance or an offer to create a bug report (that actually gets fixed). This same guy has been answering my support requests for something like 4 years now... incredible.
I like the editor itself, code completion and scala support in IDEA, but that's about it. The UX is almost as bad as Eclipse's. Once you stop for a moment to look at it, it's almost ridiculously bad.
Give it a go: in your project right-click "External libraries". What would you expect? Something like "add new one", "manage", "copy from..."? No such luck - this is what you get instead.
- refactor, add to favourites (expands but all options inactive)
- local history (never active, not what you'd imagine)
- various file operations (for "collections" of external libraries?)
- update copyright (active, but seems to be a noop)
Ah - you actually wanted to manage the external libraries? Try right-clicking the module, "open module settings" (how about "settings"?), "libraries" / "global libraries" (there's no mention of "external libraries"). And that's just one trivial issue that every single user of idea will see fairly frequently. IDEA is full of them.
FWIW: IntelliJ is an excellent IDE, but all this anti-every-other-IDE commentary is silly...
Eclipse, NetBeans and IntelliJ are all fantastic; seriously, all of them.
They all have a slightly different fit and feel to them. Just figure out which one meshes with your mental model and workflow best and have at it.
The idea that one is categorically better than another is just not accurate. They are certainly better than each other at different things, but not better or worse at EVERYTHING than one another.
E. I used it for 5 months before switching to IntelliJ. Code completion isn't worth using in Eclipse on large projects, it often took an entire second to show up. Partial building happens on every save, which seems like a nice idea, but on android it has to rebuild a substantial part on every deploy anyways, so it doesn't speed anything up. Often times the building would cause the UI to simply lock up. The debugger would often crash on breakpoints, windows would reset themselves and jump around, and when you modify files outside of eclipse, it would take multiple refreshes before it picked it up. Add that to no native support for color schemes (they're laggy at best with the Eclipse Color Theme plugin) and an insanely slow load time, and you wonder how this software has lasted so long. Switching to IntelliJ has not only made me significantly more productive (30% additional maybe?), but in general I feel less frustrated at work.
Back around version 8.1 I switched to Idea for several months. I got the hang of it, but always came back to Eclipse for some reason. SpringSource Tool Suite is much better than plain vanilla Eclipse, but I think I'll try out the Idea Community Edition and see how that works.
I have been using Eclipse since at least 8 years. This year an employer insisted that I use Intellij. It took me around three weeks to get used to it. I never want to switch back to Eclipse. It just runs so much smoother
I started using IDEA with this latest version, and it's the version that has convinced me to come over from Eclipse.
I don't particularly like Eclipse (I don't hate it either, but it's not exactly winning best coding environment for me), but in the past IDEA has just felt "clunky" to me. The text always looked off, the environment itself seemed difficult to use, and the whole experience just seemed jerky and slow. Then I tried out 11 on my MacBook, and man, they've really taken the time to clean things up. I haven't tried it on Windows yet, but it really fits in well with Lion. It's also WAY more performant than past versions, at least from my subjective experience.
Combined with the fact that it works really well with Maven out of the box (and that it's been one thing after another with m2eclipse), this'll be the first time I purchase an IDEA license.
I really urge anyone who's in a situation where they have to write Java to use IntelliJ. Java is the language of choice for much of my CompSci course, and it is the only tool that makes that bearable.
yeah, for the extremely heavyweight enterprise stuff in a comsci course at a small uni, one definitely needs a commercial IDE. I cannot imagine what would it have been like if I had to use a mere text editor for that back in the days...
A small uni? The University of Southampton is a leading research university here in the UK, it is a member of the Russell Group and the ECS school is incredibly highly thought of. I'd thank you not to refer to it as small.
Have you tried working in Java? I happily use Emacs for every other language I use, but even doing simple XML processing becomes unmanageable without intelligent auto-complete.
Further when you're marked on code style in an OO context the ability to refactor code smoothly is a huge bonus, that you just don't get from a mere text editor.
Is Tomcat integration still left out of the community edition? I paid for a full IDEA 10 license, basically for this feature. I don't mind paying for software, but I think leaving Tomcat integration out of the community edition makes it hard to compete with Netbeans and Eclipse.
On the other hand, the Maven integration in either edition of IDEA is much nicer than either Eclipse or Netbeans.
I have been working with the RC/Beta-version for some time now because I need the Grails 2 integration for a new project - and it works really well, it's a joy to work with this IDE.
Also, bugs in the development versions were fixed quite fast (in my experience).
IntelliJ is very impressive. Only started using it when I noticed how good its Scala plugin is. Feels like the level of polish I'm used to with Java editors. Code completion, refactoring etc.
Hopefully this fixes the random "I'm tired, so I'm going to stop doing code analysis and inspections until you restart me" bug that is the bane of my existence in 10.5.
I'd like to second that comment. Unlike most companies, e.g. Apple, JetBrains is really responsive to bug reports.
They have fixed everything I have ever filed a bug about. (I use RubyMine for some Ruby projects, because even though the UI is kinda insane, coding without text completion is IMO more insane.)
On a related note, their bug tracker, YouTrack, is also probably the best of the dozen or so major ones I've used. Really fast, great keyboard support, and free for small teams.
Pedantic note: I wrote 'text completion', but I meant 'reasonably intelligent text completion based on either a compiler's knowledge about your source code, or good heuristically derived inferences about your source code for dynamic programming languages where that is the best approach'.
Back in 2001 or so, IntelliJ was fuckingmind-blowing with its Java completion and high-level insight into your code. Now, Microsoft's Visual Studio or Apple's Xcode can hang, and the other Java IDEs are at least in the same league.
But very few IDEs can do a decent job of completing code for dynamic languages (especially those unlike Objective-C, with its opt-in (but fairly ubiquitous) type declarations). RubyMine (which is a variant of IDEA) does this much better than anything else I've seen.
Most IDEs and editors tend to offer to complete e.g. every method defined by every class, or they fail to offer to complete the thing that you mean. That's pretty much garbage.
As a long time Java programmer I've found that Scala had made programming fun again. As much a I like Java I find coding in Scala more enjoyable. I am constantly surprised by the number of colleagues who have taken an intense interest in this language.