It's a smart Java development IDE that can 'think'! ~ 'nuff said
Every aspect of IntelliJ IDEA is specifically designed to maximize developer productivity. Together, powerful static code analysis and ergonomic design make development not only productive but also an enjoyable experience.
I’ve been using IntelliJ IDEA for several years now, and it is my IDE of choice. It makes development much easier.
While having all the IDE features you would expect, IntelliJ also has many small features built in that make coding and refactoring a breeze. Some examples:
As with most IDEs, IntelliJ has a large number of plugins available – both those available from IntelliJ themselves, but also from 3rd party developers. Adding these plugins is remarkably simple compared to other IDEs. Type the name of a feature you want, and if IntelliJ doesn’t recognize it, it will ask you if you want to search for a plugin that might provide this feature. Temporarily disabling or permanently removing these plugins is also simple.
When working in IntelliJ, I feel that my productivity is increased simply because I am not trying to make my workflow fit the IDE. Rather IntelliJ tries to make it simple for me.
IntelliJ IDEA is my IDE of choice for almost any Java programming project that I work on both in a professional capacity and for personal projects also. I'm a professional Software Engineer working with JVM applications and I use IntelliJ every day, as do almost all of my colleagues. I have used and experimented with a number of other IDEs in the past and IntelliJ IDEA is the one I have stuck with for many years.
IntelliJ has all of the features you have come to expect of a modern IDE. Syntax highlighting, code completions, project compilation and execution, run time debug tools, etc etc, all for a range of different programming languages, but somehow IDEA manages to do all those things just that little bit better and more intuitively. There is one aspect of IntelliJ, however, that I propose is far far superior to anything offered by any other IDE and that is the Refactor Tools available for Java. Where other products fall flat by doing too much, not enough, or just plain doing the wrong thing, IntelliJ shines with consistently complete auto refactoring. When working on an ever evolving code-base having trust in the IDE refactor tools gives you the confidence to make quick incremental improvements with minimal ceremony and fuss. An invaluable tool that I would not be without.
It's pretty well known that IntelliJ requires the purchase of a licence, and that is certainly true for the Ultimate edition but don't forget there is a Community Edition of IDEA that is available for free. I was pleasantly surprised to find that the free CE version is a very capable IDE in its own right and contains the refactor tools I talked about earlier, which I hold as the most valuable feature, so to get that for free is excellent.
If I were to have any criticism if IntelliJ it would be that it can be very heavy on system resource which may become a problem for users with lower powered machines.
In summary, IntelliJ is a 'best in class' IDE jam packed with top quality features and a set of refactor tools to die for. An absolute must for any serious developer, as long as you've got a half decent machine to run it on. Go and download it without delay.
Worth to mention, that I'm using Intellij IDEA for around 2 years now. Moved from the other well-known IDE which I used not only professionally, but also for my personal projects. I switched both.
I couldn't say the transition was difficult, actually quite an opposite experience, it was smooth, mainly I believe because of the resources provided by JetBrains. Personally myself I watched recorded sessions for tips and tricks by Hadi Hariri and learned from them a lot.
As working on a big code bases lately, the very first thing after the IntelliJ IDEA install I was looking for my TOP 1 feature in IDE - "quick search" for phrase occurrences across the project. Having this feature as a separate plugin on other IDE, I was pleasantly surprised it was a native functionality in IntelliJ, moreover, much richer and more naturally to use than I expected.
Second thing I enjoy mostly about the IntelliJ is an ability to have main editor screen without the tabs. I learned that from [url=http://hadihariri.com/2014/06/24/no-tabs-in-intellij-idea/]Hari's blog post[/url] - that helps me to concentrate on a singular source code file at a given point in time as well as to use mouse way less than I used before as switching between the different source code files I'm able to achieve solely using shortcuts of rich navigation functionality.
Next to mention are refactoring tools. These tools are in constant use by me refining code day to day. Also I strongly position refactor suggestions by the IDE itself, starting from Java 8 I completed lots of refactoring suggestions to use functional approach along with the Stream API which I like a lot. It cuts the time significantly for the code refactoring, yet again, heavy use of shortcuts. I catch myself I barely use mouse nowadays using IntelliJ, I got an impression that whole ideology of this IDE is to drift out from the mouse use, and I quite like it.
Comparing to other IDEs, I found IntelliJ to be better integrated with version control systems, it helps me in an easy way identify which parts of the code I changed after the latest pulled version, so before I commit I can easily navigate through and revise them using provided diff tool.
The list of liked features getting long, we possibly could end up on New Year's Eve describing it all here, however, intentionally I won't mention easy debugging process where I think most of the developers supposed to spend as less as possible time at, presumably by more unit testing code - for which I usually have screen split where left part of the screen is for unit tests, while right part of the screen is for production code.
Due to the work nature I do, sometimes I have to have opened several different projects at a time, which IDE tend to handle that very well, so I can have them opened on multiple monitors.
As a slight downside, maybe I just didn’t quite figure it yet is, when the indexing of the project files kicks in, couldn’t quite predict whether opening a project would require that or not. Sometimes I get an impression that it starts for no reason, granted, it serves a good purpose in general - to provide smart completion. But as I said, it is only a slight downside, and not sure whether it happens after the latest upgrade, and even if that happens, that usually doesn’t take so long so I’d manage get bored.
If I’d need to name one of the most pleasant IDE’s to work with, IntelliJ IDEA would be my current choice.