The battle of the IDEs
How can developers choose between IDEs? There are so many out there and all of them have their pros and cons. In this article, Aaron Lazar goes over some of the top IDEs in the game and explores their advantages and disadvantages.
Choosing an IDE is one of the biggest decisions a developer has to make. Making a decision isn’t any easier thanks to the wide variety of IDEs to choose from or strongly held opinions by developers.
Java is one of the most widely used programming languages on the planet, so it’s understandable that there are a lot of Java IDEs out there. But which one should you use? Let’s take a look at some of the best Java IDEs and how they compare to one another.
Here are some of the key parameters we’ll consider while evaluating Java IDEs:
- Whether the IDE is cross platform
- Whether it has multi-language support
- Whether it supports popular web frameworks
- Whether it has an in-built debugger
- Whether there’s support and documentation available
- And last but not least, whether it’s free
So, let’s start with the big three.
Eclipse is one of the most popular IDEs used for Java development. Currently standing at version 4.7.3 (Oxygen), it can be used on a variety of platforms including Linux, Mac, and Windows. One of the main features of Eclipse is its built-in incremental compiler. It identifies errors as you type, which can be very useful. Eclipse provides various packages of the IDE catering to Java EE, Java, C++, and PHP developers, allowing you to use the comfort of the IDE for multiple languages.
When you talk about server support, Eclipse comfortably supports most of the Java servers, including JBoss, WildFly, and Tomcat. Moreover, it has great plugin support, making it capable of supporting over a hundred programming languages and almost twice as many frameworks. Eclipse supports fairly straightforward debugging, both locally and remotely.
On the documentation front, Eclipse has a great amount of documentation and great product support. Last but not the least, it’s free and open source.
Advantages and disadvantages of using Eclipse
Eclipse has some great features like code completion, syntax checking, and great support for refactoring your applications. On the downside, however, Eclipse can sometimes be a plugin-nightmare. Various plugins require different versions of the same plugin running for different reasons. The same plugins for the core Eclipse release don’t work for everything. This can get quite annoying.
Expert’s choice: Tejaswini Jog, Java trainer
Tejaswini says, “I use quite a few IDEs like NetBeans, IntelliJ and Eclipse, but the one I prefer is Eclipse. The primary reason is that most of my clients prefer Eclipse, so I have to stick to it. Another reason is that Eclipse does multitasking, filtering, and debugging easily. It has a huge set of plugins, which makes it a versatile IDE. The plugins are easy to download and enables adding new features as well as technological support in existing workspaces.”
“Even for a beginner, it doesn’t take much time to get up to speed with Eclipse. It supports creating projects for most of Java related technologies such as Hibernate, Spring, Struts, etc. Such projects provide basic infrastructure for development and are important. Lastly, along with Java it also provides the plugins for JUnit, Angular, CSS, HTML and many more.”
SEE ALSO: Eclipse 4.9 marks the beginning of the Eclipse Foundation’s quarterly Simultaneous Release
One of the major features that might make NetBeans a choice over Eclipse is that it provides database support with drivers for MySQL, Oracle and PostgreSQL. Its Database Explorer lets you easily create, modify and delete tables and databases. NetBeans also has fewer plugins than Eclipse, but they’re quite simple to install and use.
NetBeans offers great support for frameworks like Spring, JSF, Hibernate, Swing, JavaFX and more, although not as much as Eclipse. When it comes to “editorial support”, it offers great error detection and smart code completion. Its debugger and profiler are also worth mentioning and add to the joy of using the IDE. Finally, NetBeans has decent documentation and community support and is freely available for developers to use.
Advantages and disadvantages of using NetBeans
On the positive side, NetBeans is much better when working with plugins – it keeps things simple. On the other hand, some of you might agree that the debugger on NetBeans can sometimes be a pain; it’s quite slow.
Expert’s choice: David Heffelfinger, Java Champion; a Jakarta EE consultant and instructor
David says, “I’m a big NetBeans fan since it comes with a lot of functionality “out of the box”, no need to hunt down plugins to do what you need. Particularly, I really like NetBeans’ Java EE functionality. It provides tight integration with several Java EE application servers such as GlassFish, JBoss, WildFly and more, in addition to integrating neatly with Apache Tomcat. Integration with these application servers allow us as Java EE developers to start/stop/deploy and undeploy code right from the NetBeans IDE. In some cases, we can even perform “hot deployments”. This means that as we write and compile our code, it gets deployed to our application server of choice in the background. When we’re ready to test we don’t need to deploy our code, it is already deployed and ready to go.”
“Another killer NetBeans feature is the tight Maven integration. NetBeans can load any Maven project natively. There’s no need to import the project into NetBeans; just go to File | Open project, and navigate to a directory containing a pom.xml file. NetBeans will just load the project, no muss, no fuss!”
SEE ALSO: NetBeans IDE: Features, tips & future
Now, this one is my personal favorite! Mostly because the creators are called JetBrains! How cool is that? Okay on a serious note, IntelliJ is one of the most popular Java IDEs completing the triangle of the big three IDEs!
IntelliJ IDEA offers superb support for debugging applications and has a great many plugins that you might find useful. There’s amazing documentation available to help you get started with the tool. The community edition is free whereas the ultimate edition is charged at $500/year.
Advantages and disadvantages of using IntelliJ IDEA
One of the main advantages of using IntelliJ IDEA is that it brings with it some really cool and advanced features like a Gradle build system. On the downside, the Ultimate version is quite expensive. Also, the community support isn’t that great, as it’s only open-core and not completely open source. This means that you will not have as many plugins developed as the other IDEs.
Expert’s choice: Peter Verhas, Senior Software Architect at EPAM
Peter says, “I use the IntelliJ IDE community edition. I can work with any IDE but currently IntelliJ is the easiest to use and the one that gives the least hassle, so that I can focus on the coding and not on the configuration of the IDE or other development tools. The same company also has Python, Go and other language support so that I can use a similar IDE for different languages.”
“Formerly, I used Eclipse and before that I used NetBeans like 15 years ago; they were good at the time. Selection of IDE is mainly a matter of taste, usually in a professional environment every developer is free to use the IDE they want. It only matters when the code formatting is taken into account – to configure the different IDEs to format the code the same way may be more expensive than convincing some of the developers to use the same IDE as the others.”
Now let’s look at the other popular IDEs…
Eclipse Che is a modern, browser based IDE for Java and can be considered as the beginning of the browser IDEs trend. The IDE, currently in version 6.2, is built on the foundation of emerging trends like social coding and light-weight containers. Written in Java and running on a Tomcat server, Che is a highly extensible IDE.
Adding a new language or framework is as easy as creating a new plugin. The runtime is packaged as a Dockerized container that runs specific environments such as Node.js, Java, Python or Ruby. Che currently supports debuggers for Java, C/C++, Node, and PHP. The IDE allows you to refactor code with ease and also has some great features like code auto-complete.
There’s some great documentation available on the webpage and most recently, it has obtained support from OpenShift.
Advantages and disadvantages of using Eclipse Che
Well, you’re getting all the portability you could ever think of when working with Che. On the downside, the only thing I can think of is that the project is quite young. Most if not all the features need and will undergo changes in the near future. However, it’s still something you should try your hand at.
Oracle JDeveloper is an IDE for Java that simplifies the development of applications by supporting developers at every step of the application lifecycle. Oracle claims that JDeveloper offers a complete end-to-end development solution.
Currently in version 220.127.116.11, JDeveloper supports Spring for application development as well as Oracle’s PL/SQL database. There is also support for JavaEE and other frameworks like Swing for GUI. Some of the features it offers are Unit Testing, Version Control, Audit & Metrics, Debugging and Profiling, etc.
The documentation is not that impressive and neither is the community support for the IDE. The good thing is that the IDE is available for free.
Advantages and disadvantages of using JDeveloper
JDeveloper offers a rich set of coding features, including visual as well as non-visual utilities that provide different views of your code. The downside would be the documentation and the community support.
SEE ALSO: Oracle JDeveloper Gets OSGi Updates
Ahh, we’re talking about hardcore mobile app development now, eh? Android Studio is the official IDE for Android development. What’s great about this IDE is that it’s based on IntelliJ IDEA! Currently in version 3, the tool is built to be fast and feature rich.
On the language front, there is support for Java, Kotlin and C++ as well for the NDK. It provides some great features like a unified development environment for all Android devices, extensive testing tools like JUnit and frameworks, in-built support for GCP, and much more. It works well on Windows, Mac as well as Linux platforms.
The IDE provides great customization options and also allows you to reduce the size of your Android app by inspecting the contents of the APK file. It’s free to download and use, although a one-time developer’s license fee of $25 is necessary to push your apps to Google Play Store.
Advantages and disadvantages of using Android Studio
Since it’s built specifically for Android, you can expect great support for Gradle. On the negative side, some might agree that auto-import of Java classes is a pain. Since it’s written in Java, it can tend to feel slow at times.
In the end, all of the above IDEs come with their own advantages and disadvantages. It all depends on what you are working on and what you’re looking for, as a developer. Sometimes you might have to choose an IDE because the company you work for asks for it, sometimes you might choose one because it works well for what you want to do. Lightweight tools like Eclipse Che might be the future of application development, pushing modern application development to the forefront. However, many will always have a soft spot for the good ol’ IDEs.