An analysis of the most important IDEs for the development of Java applications. Which one to choose to create your own applications?
How do developers choose their IDE? There are many answers to this question and every developer takes into consideration some vestments that help him select the best development environment for himself, also because each IDE has its pros and cons. Today we want to focus on the world of Java IDE, analyzing the main projects dedicated to this programming language.
First of all it is necessary to consider some key features that must be taken into account when evaluating a Java IDE:
- Is it multiplatform?
- Does it support more programming languages?
- Support the most popular web frameworks?
- Does it have an in-built debugger?
- Is detailed documentation available?
- It’s free?
With these elements in mind, we begin to evaluate today’s first Java IDE or Eclipse. This project, available for Linux, MacOS and Windows, has a built-in incremental compiler among the main features for Java.
This is a feature included as part of the Java Development Tools project : the concept of incremental compiler refers to a calculation system applied to the field of software compilation. While the standard compilers generate a “clean build”, that is, they recompile all the modules of the program indicated by the developer, an incremental compiler instead recompiles only the parts of the program modified, greatly reducing the time required to compile new builds.
This IDE supports several languages in addition to Java, such as C ++ and PHP, not to mention that it is compatible with numerous Java servers like JBoss, WildFly and Tomcat. However, it has a good ecosystem of add-ons that allow you to add extra features in a simple and immediate way.
As for the debugging features, it integrates tools to operate code control both locally and remotely. Its documentation is very complete and it is also very simple to contribute to its development as it is an open source product.
Eclipse therefore presents countless positive aspects such as code completion , syntax checking and good support for refactoring applications. But also some negative points: several users have found for example a poor management of the plugin system. It often happens that you have to run several versions of the same extension on the same system to get the desired features and, in some cases, the same release of a plugin is not compatible with other versions of Eclipse and vice versa.
One of the main reasons why professionals choose Eclipse is its ability to perform multiple tasks simultaneously, being multitasking is in fact an important killer feature. With Eclipse it is possible to filter and debug simultaneously, and for beginners it is really easy to approach an IDE that supports all the major Java-related technologies such as Hibernate, Spring and Struts.
One of the main features of NetBeans is support for MySQL, Oracle and PostgreSQL databases, which often make it more appealing than Eclipse. Using the integrated Database Explorer tool it is possible to create, modify and delete tables or the entire database. NetBeans also has a good plugin ecosystem and discreet support for various frameworks such as Spring, JSF, Hibernate, Swing and JavaFX.
NetBeans also has an excellent error detection system and a well integrated smart code completion , without forgetting the native support for Maven projects .
NetBeans is therefore very interesting for those who need to work with databases and want a better plugin system than Eclipse. However, it seems that the features of the debugger are not exactly at the top because they are slower than the competition.
According to many professionals NetBeans is very attractive because it has so many features including out-of-the-box and a good integration with Java EE application server. NetBeans also has excellent tools for deploying applications and includes hot deployment, so it is possible to write and compile code and the IDE will simultaneously distribute the application in the background on the indicated server. When you are ready for the test phases, you will not need to implement the new code because it will already be distributed and ready for use.
Let’s go now on the third IDE today or IntelliJ IDEA. Available for major operating systems, IntelliJ IDEA is designed to maximize developer productivity. There is a free version, called Community Edition , and a paid version, called Ultimate Edition .
The debugging applications are one of the strong points of IntelliJ IDEA together with its extensive plugin system. The documentation is very complete and being an open source project it is also possible to contribute directly with the development or with the sending of patches and bugfixes. But probably the killer feature of this IDE is the Gradle build system, it’s an open source system for automation of development based on the ideas of the Apache Ant and Apache Maven projects. Gradle takes the best of two, implemented a Groovy-based domain-specific language , instead of the classic XML mode, to declare the configuration of the project.
The main “negative” aspect of IntelliJ IDEA is the cost of the Ultimate version . In fact, not everyone can afford the subscription, even if for a company should not be a problem, and some features are present only in the Ultimate version . However, according to different professionals, the standard version offers everything you need to create your own Java / Android project.
The latest project today is Android Studio, the official development suite of the Green Robots created by Google is one of the most complete among the various IDE for Java development.
Android Studio is a fork of IntelliJ IDEA so users who are already familiar with this IDE will find themselves at ease. In addition to Java it natively supports Kotlin and C ++ and is available for Linux, Windows and MacOS.
One of the key features of this IDE is its unified development environment. Google developers have realized that one of the ways to significantly improve a programmer’s productivity is to create a unified environment that collects and manages all the information necessary for programming, so as to automate most repetitive tasks.
Android Studio has many tools and extensions very useful for the development of Android applications, it is perfectly integrated with JUnit and other framerwork. Another strong point of Android Studio is the ability to interface natively with the Google Cloud Platform, so as to perform backups, deployments and other operations on the code even remotely, taking advantage of the versatility of the infrastructure of Big G.
Android Studio is able to inspect the contents of the APKs so as to optimize their size, reducing the space occupied by the application. One of the few negatives of this IDE is the automatic imports of the Java classes, for many developers this is a problem because it could impact on the performance of the IDE itself.
However, it remains one of the most popular IDEs on the market and being developed directly by the same team of Android is now the reference point for companies wishing to implement applications for this market.