solar eclipse and earth

Why would you use an IDE over a text editor when creating an application? While text editors like Sublime allow you to write and edit code easily, for Java developers in particular sometimes you need a little more under the hood to get started and stay organized. When more complicated Java concepts come into play (things like Applets, the Swing GUI, frameworks like Struts, or Servlets) that’s where an IDE like Eclipse or NetBeans can really accelerate productivity.

From small applications to large applications with millions of lines of code and thousands of libraries, IDEs can make life a lot easier, giving developers helpful tools and more visibility into their code. An IDE bundles modules that help you get started quickly and extend capabilities with plugins and support for different languages, servers, and frameworks. All told, many developers who have worked extensively with the top Java IDEs find each to be great in its own right. So, how do they stack up with one another?

The Java community is divided between a few options including NetBeans and the long-time frontrunner, the Eclipse IDE. Eclipse has lost some of its market share over the years to IntelliJ IDEA (the basis for Android Studio) and the NetBeans IDE. Here’s a look at NetBeans vs. Eclipse to see how these two IDEs compare.

Note: With regular version updates, things are always changing in the IDE world. Things that may be lacking or lagging at the time of this article may be updated and upgraded in a soon-to-come release. For the best comparison possible, developers should give each IDE a try and see which best suits their workstyle and preferences.

Intro to NetBeans

Current release as of March 2017: 8.1

Neither NetBeans nor Eclipse is just an IDE—they are entire platforms, with IDEs being just part of the offering. For the sake of this comparison, we’ll just look at the IDEs—starting with NetBeans. NetBeans describes itself as an IDE that “lets you quickly and easily develop Java desktop, mobile, and web applications, as well as HTML5 applications with HTML, JavaScript, and CSS.”

It’s a great tool for large-scale projects and makes it easier to bring on new developers because the structure is so visible.

Some quick points about NetBeans:

  • NetBeans is module-driven. Nearly everything in NetBeans happens via modules, which power and extend all of its functionality. There are reusable features for UI development, data storage, and more. One great feature to note: with the Update Center module installed, developers can update features in an app without users having to download a new release.
  • NetBeans is excellent for converting to Java 8. If you want to upgrade to Java 8 and take advantage of the language’s new features, NetBeans makes this pretty seamless.
  • It’s not just for Java developers. NetBeans has sets of tools for both PHP and C/C++ developers, as well. The JavaScript editor bundle also offers support for JavaScript, AJAX, and CSS. It offers support for Gradle, Maven, Ant, and includes a debugger tool.
  • Other modules to note: NetBeans’ GUI design tool gives you drag-and-drop capabilities, and the NetBeans Profiler lets you optimize and monitor app performance.
  • The NetBeans Editor is a text editor and so much more. It’s an extensible tool that can easily be ramped up to add support for languages other than Java like JavaScript, C/C++, PHP, and more. It’s also language-aware, which means it can suggest edits when it detects errors, and hints that can help you fix or enhance code as you write. Learn about its other helpful features here.

This is by no means an exhaustive list of top features—developers will find that the more they learn about NetBeans, the better they’ll be able to see if it aligns with their development style or project. Visit the NetBeans site for an in-depth look at its features.

Intro to Eclipse IDE

Current release as of March 2017: Neon

Before Android announced it was halting support of the plugin that gave the Eclipse IDE Android development functionality, Eclipse was a frontrunner, and a direct competitor with Android Studio. But Eclipse is an incredibly powerful Java IDE in its own right—just be sure to account for the bit of overhead that some developers say causes it to run a bit slower.

The Eclipse IDE is more of a shell-like architecture that is extended through plugins—and there are thousands of plugins to choose from. Its core foundation is written in Java, but its extensibility gives it compatibility with other languages, similar to NetBeans.

Some quick points about Eclipse:

  • Eclipse offers desktop and cloud-based development environments. Features include Gradle support, Git version control and Apache Maven integration, XML editing, code recommendation, and the Mylyn task list tool.
  • In Eclipse, Workspaces are how related projects are managed. You can work on more than one app in a Workspace, which contains related configurations like perspectives, bindings, and other preferences you may want to reuse in different projects.
  • For newbies, Eclipse can have a steeper learning curve. NetBeans is easier to learn if you’re just starting out, but it can get complicated as projects grow.
  • Eclipse has the larger plugin library. Although there are plenty of excellent plugins, make sure you’re choosing reliable third-party plugins and staying on top of updates. The more plugins you opt to use, the more of a headache updates can be.

These are only a few quick points about Eclipse. There’s plenty more for developers to dive into about the Eclipse IDE.

Now, let’s look at some major similarities between the two:

Both are free, open-source, and cross-platform.

NetBeans and Eclipse are compatible with Windows, Linux, OS X and Solaris.

Both offer support for Java 8.

NetBeans refers to itself as “the official IDE for Java 8” and it is optimized to leverage all of the great new constructs of the Java 8 language. If you’re looking to convert your Java project to Java 8, it makes upgrading pretty smooth. Eclipse’s Luna release included support for Java 8.

Both IDEs have versions for different languages, including C/C and PHP.

NetBeans has “bundles” for both of these languages, or an all-in-one bundle that has PHP and C/C++, as well as support for HTML5, JavaScript, AJAX, and CSS. Eclipse has a Java IDE and versions for C/C++ and PHP, as well as cloud-based development environments for Java, JavaScript, CSS, and HTML.

Both offer plenty of plugins to extend the IDE’s capabilities—including version control support like Git.

Visit the Eclipse Marketplace for thousands of plugins. The NetBeans equivalent is the Plugin Portal. Eclipse has more to offer in this department, however, as Jason Tee notes in his article about the two IDEs, “Sorting through the plugins and dealing with plugins that break because of updates to new versions can be a headache. Third-party plugins offer lots of variety but aren’t necessarily reliable because of a lack of quality control.”

Both offer rapid UI design with GUI drag and drop functionality.

If you’re used to laying out your visuals in a graphical user interface editor, both IDEs offer this with a view that lets you see your edits from a user’s perspective. It’s possible to edit UI elements or other related elements right in the editor of both IDEs, too.

Both have debugging, testing, and profiling capabilities.

The NetBeans debugging and profiling tool is great for ensuring optimized code, as is Eclipse’s reporting and testing tools.

Both offer code completion tools to make coding even more efficient.

Aside from drawing out the interface, on the coding side there’s code completion to reduce the amount of time programmers spend cranking out code. NetBeans offers a Code Completion module with access to a simple Code Completion API. There are code recommender tools in the Eclipse Marketplace, as well.

So, which IDE is right for you?

This is just a brief introduction to these tools, showing that as far as standard capabilities go, they’re pretty on par with one another. Many developers even use both IDEs, rather than one or the other. There’s plenty of discussion that will give you deeper insight into which aligns with your development style, needs, and application. That will largely depend on a few things, including:

  • The size of your project.
  • The nature of your project. Some have felt that NetBeans has better out of the box support for Java Enterprise, which is something to look into if you’re doing enterprise-level development.
  • Whether Android development is a priority.
  • Your development team’s existing process and standardized tools, if any. You want the IDE you choose to be compatible with whatever build systems and version control tools you already use, whether those are Apache Ant or Git, or something else. If you’re developing in a test-driven development (TDD) environment, be sure your IDE is compatible with your testing tools so you can test and debug easily.
  • Skill level. NetBeans has an easier learning curve according to many Java developers.
  • Personal preference.