By Geertjan, Anton & John
The speakers did a comparison of key productivity features of Eclipse, NetBeans and IntelliJ. Each of the speakers was part of the development team of one of the reviewed IDE’s, so they had the inside knowledge to bring us all the details on their IDE.
This IDE was promoted to be very navigation friendly, with no mouse required (preferred). As a user, you are able to remove all toolbars and navigational bars. This frees up a lot of screen-space for the actual code. The user has lots of short-cuts (double-shift) to popup all other views. IntelliJ has advanced code-completion and code-generation, even across frameworks (eg. Spring config searching for beans injection). As a last feature the speaker showed the database browser and SQL-editor with database-integration and SQL completion. The downside of IntelliJ being proprietary was not mentioned.
Since this IDE is produced by Oracle itself, it is most in line with latest Java specs and features. It has excellent Maven support with a visual tree of dependencies and integration with Artifactory. Navigation is easy, eg. by scrolling through occurrences of an attribute. Users can even set bookmarks to lines of code for easy access.
One of the interesting features of NetBeans is its ability to refactoring existing code to Java 8. This can be done on a case-by-case basis and even by selecting specific refactoring strategies. For instance, developers can select only anonymous-innerclass-to-lambdas for refactoring and the IDE ignores all other refactoring opportunities. Also there’s integration with databases, so you get SQL-completion in eg. NamedQueries.
Lastly, NetBeans can directly “deploy” web-pages to Chrome and have the NetBeans inspector synchronize real-time with the Chrome browser-window. This allows you to edit css-styles and instantly see the result in the browser, without even save and refreshing.
As the most widely used IDE for Java developers, Eclipse has lots of plugins and there are many different distributions, specialized for different types of developers and technology stacks. Eclipse has lots of short-cuts to open & close views, similar to IntelliJ. Many of the features the other IDE’s have are also present in Eclipse and if not, you can always pretty easily implement them yourselves. The demonstration of Eclipse wasn’t really that impressive, but I may be biased here, because I use Eclipse myself. The thing I did catch up was the fuzzy matching on parameter names. his feature allows Eclipse to suggest parameters for function calls, based on the local variables that are visible in a piece of code.
As far as multi-IDE teams, there was absolutely no limitation according to any of the speakers. They all agreed that anyone should be able to pick his or her IDE of preference. The use of Maven allows teams to set up standardized project files specific to the IDE’s used, without having to check those files into versioning. On top of that, both NetBeans and IntelliJ are able to import Eclipse project-files as well, so even if you don’t use Maven, there are ways to interchange projects between IDE’s. As for coding standards and formatting, the Eclipse formatting config-XML is a good way to start standardizing coding styles.