"Friendly" is not the word I would use. Powerful, sure. But IDEA breaks quite a few universal GUI concepts and that takes a bit to get used to.
For example, Ctrl-w is a very important keybinding on IDEA, one that I use all the time (it expands the selection to the enclosing expression). It's literally wired in my brain now. To the point that I now use it in Eclipse as well and I even started using it in other places (Sublime, etc...) and... closing the window as a result. Very annoying.
Another one is that Ctrl-n sometimes creates a new file (expected) and sometimes... something completely different depending on your current window. Again, not friendly. Optimized for development and a life saver on the long run, for sure, but it's fairly user hostile.
The non-standard default keyboard shortcuts bug me as well, but on the plus side they can be rebound.
The thing that frustrates me most in IntelliJ is that all of the dialog windows are modal for no apparent reason. Why can't I focus the main window or at least interact with it to change tabs, select text, etc when I have dialogs open?
"Find in Path" is a particularly obnoxious example: it's fairly common that I want to search for a string fragment, so I open the search dialog and set up my search context, then try to select text to copy as the search term, but I can't, so I have to start over.
I want to be able to interact with the editor at all times, though I could see locking it during complicated refactors to keep me from changing code while the IDE is trying to change it too (only while a progress bar dialog is visible).
Modal windows should be the exception, not the rule.
---
To be clear I love IntelliJ. While I prefer simpler editors in many situations, I can't see myself going back to anything else for medium-to-large JVM projects (Scala especially). The modal niggle and a few other minor usability issues are small blemishes on an otherwise great IDE.
> The thing that frustrates me most in IntelliJ is that all of the dialog windows are modal for no apparent reason. Why can't I focus the main window or at least interact with it to change tabs, select text, etc when I have dialogs open?
Funny, as soon as you said that, I nodded and I immediately thought "For example, the universal search dialog should definitely not be modal". And then you follow with...
> "Find in Path" is a particularly obnoxious example
Totally agree and I'm surprised I missed it. Modal dialogs are not user friendly (and very old school UI).
I switched from Eclipse to IJ a couple months ago to match my team. Pretty happy that it comes with Eclipse key binding profile out of the box. Works pretty well.
I know, but that wasn't my point. I actually chose to keep Ctrl-w and extend it to other tools, because I use this functionality in an IDE much, much more often than closing windows.
It makes sense, but it's not user friendly, which is the point I was making.
Another annoying one is redo, they use ctrl+shift+z instead of ctrl+y. I've lost lots of code thanks to this after undoing something which i tried to redo but instead got the current code modified and the undo-stack wiped. (i might have been able to recover it in the local history but usually i'm too lazy to go dig so deep)
But IDEA differs from most software products in that it's one expert users will spent several hours a day using. Deviations from standard conventions are much easier to justify in this scenario than in most others.
About a year with eclipse and nearly two with IDEA now.
In terms of overall usability, speed, and stability IDEA is incomparably better. Yes, there are a few minor things that eclipse does better/IDEA can't do (so I keep reading). But this is hugely overshadowed by the fact that IDEA is a high-quality, well-supported professional-feeling product. In comparison, eclipse looks, smells, and acts like a kludgy, bloated, long-lived open source project.
The main important difference is that eclipse is free, and thus some folks seem to really go to bat defending it. There is a certain powerful frugality ethic among developers.
But really, if you're not going to get bent out of shape about spending a few bucks for a piece of software you spend many of your waking hours using, there is no serious comparison.
>IDEA is a high-quality, well-supported professional-feeling product. In comparison, eclipse looks, smells, and acts like a kludgy, bloated, long-lived open source project.
This times a million.
Though I do love open source both in principle and in many products, certain proprietary software tools are entirely worth paying for due to how much more productive they make you. IDEA is my prototypical example.
> IDEA is a high-quality, well-supported professional-feeling product. In comparison, eclipse looks, smells, and acts like a kludgy, bloated, long-lived open source project.
Proprietary, closed source development vs. Open Source software development in a nutshell.
I'm really glad a friend recommended IntelliJ IDEA to me. It's a great product. Having used both Netbeans and Eclipse on a rather powerful machine, the UI would lag. I don't like to wait for computers to finish computing things when I'm programming pretty much in just a text editor ("writing code mode")...which brings up another point - Atom is not a great text editor either because it is so UI laggy it slows down development.
Agreed. Switched to IntelliJ about 4-5 months ago. Haven't looked back since. Interestingly, what caused me to look at IntelliJ wasn't a lack of features in NetBeans, but rather the fact that still today NetBeans doesn't work properly on a retina MacBook Pro.
To elaborate, on a MBP Retina, you'll find that the UI lags slightly if typing fast, especially if a lot of syntax highlighting is happening on the screen. It does not happen if you are using NetBeans on an external monitor. The NetBeans team claims it's a Java issue, so in the end I just didn't want to wait anymore, and I downloaded IntelliJ.
One of my co-workers has a 5K iMac and definitely has this issue. I will have to test more carefully to see if this is also affecting me. Does not really matter because after reading this I am definitely moving to IntelliJ.
The only thing I don't like about IntelliJ vs Eclipse is unit testing. Because Eclipse eagerly compiles everything with its special compiler it seems to have a much faster startup time for unit tests. In fact with Eclipse I use JUnit as a Java repl because you can test a single method. Also I hate how I can't configure IntelliJ's gutter size. It feels massive. Other than that IntelliJ is far superior.
As for dark theme and theming Intellij/Eclipse both have their quarks (Eclipse being far more quirky).
Here is a screenshot of a personal port of the Atom One Dark theme (I love that theme) to both IntelliJ and Eclipse (left and right respectively): http://imgur.com/Myo4KxM
> Because Eclipse eagerly compiles everything with its special compiler it seems to have a much faster startup time for unit tests.
You can configure IntelliJ to behave similar, the option is disabled by default. Its the "Make project automatically" option in the "Build, Execution, Deployment -> Compiler" settings window.
Also, IntelliJ can use ejc if you like, the "Build, Execution, Deployment -> Compiler -> Java Compiler" window, the "Use compiler:" option.
I tried that before but its still faster in Eclipse by 3/4 of a second (I was wrong about being just the compiler). Its as though Eclipse doesn't fork a new Java process.
With all respect, I don't I understand your point. FTR, I'm also a developer in past and in present. If you have an argument in regard to actual points shared in my article, please share it with others.
The git "commit and push" workflow is less ergonomic than eclipse's - you have to wait for it to perform the commit and then ok another dialogue to do the push, rather than just hitting "commit and push" and letting it happen in the background.
There's no obvious way to search within a directory. I don't want to search everywhere which is the only option I see in ctrl-A. I want to be able to right click or similar on a directory in my project and search just in that directory.
I can't tell how to reorganize the UI. In Eclipse I have the Window > Views menu. In IntelliJ panels seem to appear and disappear arbitrarily as I invoke particular actions and I have no idea what rules it follows or how to control it. Edit: aha, there's a weird square in the very bottom left corner: having clicked that the tabs for the panels have appeared which makes it much easier.
No save button means I can't tell the IDE when not to try to compile. This is important when working on complex code (particularly Scala) and I know compiling it is going to take a few seconds of sluggishness.
The Scala presentation compiler (admittedly not really the subject of this article) has too many spurious errors (most prominently one I reported as SCL-9700).
Most importantly of all, continuous building simply isn't reliable enough. In eclipse, if I've hit save I can tell when the build has finished, and if the build has finished and there are no problems in the problems view then I am 100% confident that my code actually compiles. This simply isn't the case in IntelliJ (e.g. after renaming a class it won't necessarily complete the rebuild and so errors don't always show up until after you deliberately make).
I don't think it's improper for it to be pointed out that someone who works as the marketing manager for a product may have a slight bias towards talking up said product's benefits and downplaying its limitations.
It's just a fact, not a slight.
(And I say this as someone that happens to love just about everything this company puts out!)
I think that the point is that it would be a good practice to disclose that. In no way does it invalidate what you have to say (and by the way, I really liked having the nicely-written presentation of these features; this is something I'm bookmarking to show to people), but disclosing the potential conflict of interest makes it clear that you have nothing to hide.
If you are looking for something lighter weight to run java snippets checkout http://jpad.io I made it to avoid writing the usual class/main boilerplate when all I wanted was to write a few lines of code to explore something.
JPad looks like a IDE dedicated to learning new things in a programming language. Eg. you want to try java9 feature without creating new project, writing new class. Gonna try it today. Thanks.
I'm a long time user of Eclipse but recently have tried IntelliJ again, it's got some really nice features such as the inline values while debugging but by far the biggest annoyance is not being able to have multiple projects within a workspace.
At work I mainly work on two APIs that work closely together so in Eclipse I can have both open and just jump between the projects easily and at home I like to have all my scratch pad projects/ideas in one eclipse workspace so I can jump between them all easily.
I know there are kinda workarounds with modules but it doesn't really work well, if they allowed the ability for multiple projects in a workspace I'd jump ship but sadly it seems it'll never be supported (according to co-worker who is a die hard IDEA fan).
Same here. Not having multiple projects open is a total deal breaker for us. We have a couple of shared libs that go with our projects and not being able to have them all open together is painful.
I work around this by either checking the core libraries out into my new project folder, so ice got multiple copies around- and also I've got a core-Luba project that's literally all 12 core libraries we have that I can have open in one window with my other project open in another.
This may seem silly, but one of my main reasons for using IntelliJ over Eclipse is because it has a nice looking dark theme. I've tried using the dark theme on Eclipse, and on both Windows and OS X it had very bright scroll bars that clash with the dark editor.
I think my favorite keyboard shortcut in IntelliJ is double-tapping shift to get a really smart search to pop up.
Eclipse seems to take some its UI look and feel from the host operating system, resulting in a weird mish mash of conflicting colours and difficult to read text.
I ended up just settling for changing the editor colours (to my favoured Sunburst theme) and keeping everything else stock.
IDEA is great for dark themes though. No messing around getting everything consistent and readable.
For example, Ctrl-w is a very important keybinding on IDEA, one that I use all the time (it expands the selection to the enclosing expression). It's literally wired in my brain now. To the point that I now use it in Eclipse as well and I even started using it in other places (Sublime, etc...) and... closing the window as a result. Very annoying.
Another one is that Ctrl-n sometimes creates a new file (expected) and sometimes... something completely different depending on your current window. Again, not friendly. Optimized for development and a life saver on the long run, for sure, but it's fairly user hostile.
The thing that frustrates me most in IntelliJ is that all of the dialog windows are modal for no apparent reason. Why can't I focus the main window or at least interact with it to change tabs, select text, etc when I have dialogs open?
"Find in Path" is a particularly obnoxious example: it's fairly common that I want to search for a string fragment, so I open the search dialog and set up my search context, then try to select text to copy as the search term, but I can't, so I have to start over.
I want to be able to interact with the editor at all times, though I could see locking it during complicated refactors to keep me from changing code while the IDE is trying to change it too (only while a progress bar dialog is visible).
Modal windows should be the exception, not the rule.
---
To be clear I love IntelliJ. While I prefer simpler editors in many situations, I can't see myself going back to anything else for medium-to-large JVM projects (Scala especially). The modal niggle and a few other minor usability issues are small blemishes on an otherwise great IDE.
Funny, as soon as you said that, I nodded and I immediately thought "For example, the universal search dialog should definitely not be modal". And then you follow with...
> "Find in Path" is a particularly obnoxious example
Totally agree and I'm surprised I missed it. Modal dialogs are not user friendly (and very old school UI).
Just swap the CTRL+F4/CTRL+W and ALT+INS/CTRL+N bindings and IDEA behaves like every other piece of software in the world.
It makes sense, but it's not user friendly, which is the point I was making.
In terms of overall usability, speed, and stability IDEA is incomparably better. Yes, there are a few minor things that eclipse does better/IDEA can't do (so I keep reading). But this is hugely overshadowed by the fact that IDEA is a high-quality, well-supported professional-feeling product. In comparison, eclipse looks, smells, and acts like a kludgy, bloated, long-lived open source project.
The main important difference is that eclipse is free, and thus some folks seem to really go to bat defending it. There is a certain powerful frugality ethic among developers.
But really, if you're not going to get bent out of shape about spending a few bucks for a piece of software you spend many of your waking hours using, there is no serious comparison.
This times a million.
Though I do love open source both in principle and in many products, certain proprietary software tools are entirely worth paying for due to how much more productive they make you. IDEA is my prototypical example.
Proprietary, closed source development vs. Open Source software development in a nutshell.
I'm really glad a friend recommended IntelliJ IDEA to me. It's a great product. Having used both Netbeans and Eclipse on a rather powerful machine, the UI would lag. I don't like to wait for computers to finish computing things when I'm programming pretty much in just a text editor ("writing code mode")...which brings up another point - Atom is not a great text editor either because it is so UI laggy it slows down development.
The Ultimate Edition is worth the money, but the whole system is just a bunch of very well built plugins atop the CE.
To elaborate, on a MBP Retina, you'll find that the UI lags slightly if typing fast, especially if a lot of syntax highlighting is happening on the screen. It does not happen if you are using NetBeans on an external monitor. The NetBeans team claims it's a Java issue, so in the end I just didn't want to wait anymore, and I downloaded IntelliJ.
As for dark theme and theming Intellij/Eclipse both have their quarks (Eclipse being far more quirky).
Here is a screenshot of a personal port of the Atom One Dark theme (I love that theme) to both IntelliJ and Eclipse (left and right respectively): http://imgur.com/Myo4KxM
IntelliJ One Dark Theme: https://gist.github.com/agentgt/bf2271786c250e86ab19
Eclipse One Dark Theme: https://gist.github.com/agentgt/fcaf75eb8acf92e08926
You can configure IntelliJ to behave similar, the option is disabled by default. Its the "Make project automatically" option in the "Build, Execution, Deployment -> Compiler" settings window.
Also, IntelliJ can use ejc if you like, the "Build, Execution, Deployment -> Compiler -> Java Compiler" window, the "Use compiler:" option.
Also the Save Actions in general, I have found eclipse to be better (even over the special Save Action plugin for IJ).
The git "commit and push" workflow is less ergonomic than eclipse's - you have to wait for it to perform the commit and then ok another dialogue to do the push, rather than just hitting "commit and push" and letting it happen in the background.
There's no obvious way to search within a directory. I don't want to search everywhere which is the only option I see in ctrl-A. I want to be able to right click or similar on a directory in my project and search just in that directory.
I can't tell how to reorganize the UI. In Eclipse I have the Window > Views menu. In IntelliJ panels seem to appear and disappear arbitrarily as I invoke particular actions and I have no idea what rules it follows or how to control it. Edit: aha, there's a weird square in the very bottom left corner: having clicked that the tabs for the panels have appeared which makes it much easier.
No save button means I can't tell the IDE when not to try to compile. This is important when working on complex code (particularly Scala) and I know compiling it is going to take a few seconds of sluggishness.
The Scala presentation compiler (admittedly not really the subject of this article) has too many spurious errors (most prominently one I reported as SCL-9700).
Most importantly of all, continuous building simply isn't reliable enough. In eclipse, if I've hit save I can tell when the build has finished, and if the build has finished and there are no problems in the problems view then I am 100% confident that my code actually compiles. This simply isn't the case in IntelliJ (e.g. after renaming a class it won't necessarily complete the rebuild and so errors don't always show up until after you deliberately make).
It's just a fact, not a slight.
(And I say this as someone that happens to love just about everything this company puts out!)
What really really turned me off was when I found and reported a really annoying bug only to be told to buy the not yet released(IIRC) upgrade.
At work I mainly work on two APIs that work closely together so in Eclipse I can have both open and just jump between the projects easily and at home I like to have all my scratch pad projects/ideas in one eclipse workspace so I can jump between them all easily.
I know there are kinda workarounds with modules but it doesn't really work well, if they allowed the ability for multiple projects in a workspace I'd jump ship but sadly it seems it'll never be supported (according to co-worker who is a die hard IDEA fan).
I think my favorite keyboard shortcut in IntelliJ is double-tapping shift to get a really smart search to pop up.
I'm starting to use IntelliJ for other reasons though - double-shift is one of my favorites as well.
Eclipse seems to take some its UI look and feel from the host operating system, resulting in a weird mish mash of conflicting colours and difficult to read text.
I ended up just settling for changing the editor colours (to my favoured Sunburst theme) and keeping everything else stock.
IDEA is great for dark themes though. No messing around getting everything consistent and readable.