Intellij IDEA vs Eclipse: Which Is Better for Beginners

in #dev6 years ago

Choosing the best Java IDE for a beginner is not an easy task, given how heated the argument can get. We did it anyway and lived to tell the tale.

Disclaimer: This post is a "director's cut" of an article I wrote for the blog of Codota, a cool startup with an AI coding assistant plugin. You can read the edited version here.

When asked what integrated development environment programmers prefer, whether they code in Java or other languages, the most common answer is “the one I am used to”. Developers are creatures of habit. As such, they will most often stick to the tool they learned to work with initially and rarely switch IDEs without a very good reason. Many will even stay with the default settings of the IDE they installed when they first got coding. Yes, senior Java developer who hasn’t updated their IDE since 2013 and still uses the default light color theme, I am looking at you. 

Oftentimes programmers are forced out of their IDE comfort zone when joining an organization that employs a development process and version control that require all programmers use the same tools to code. Some see it as a punishment from the Gods of Development, while others discover a more convenient solution and never look back.

For this reason, participating in a discussion comparing Intellij IDEA and Eclipse for Java development can be tricky. Intellij loyalists scoff at Eclipse fanboys, Eclipse fanboys get mad, and once everyone starts naming plugins and waving software licenses around? All hell breaks loose.

 It’s no wonder beginners find themselves confused when deciding what IDE to install as their default, after moving up from the world of lightweight student development environments. Should they pick the one used in most tutorials or preferred by their teacher and colleagues? The one with more positive reviews online or with the most users?

To settle this once and for all, we need to look at both IntelliJ IDEA and Eclipse from the perspective of a confused (but objective) junior Java developer with a new laptop. Considering the subscription costs of the Ultimate edition of IntelliJ (sometimes dubbed “the Cadillac of Java development”), we’re going to assume our junior developer is not looking to spend cash on an IDE subscription license at this point. So in this comparison, we’ll be talking (mostly) about the free version of IntelliJ offered: IntelliJ IDEA Community Edition.

Let’s meet our lovely contestants.

IntelliJ IDEA

IntelliJ IDEA was released in 2001 by JetBrains, an established company known previously for its Resharper plugin for Visual Studio. The Community Edition, available for free and aimed mostly at Java and Android application developers, offers support of a number of languages including Java (obviously), Kotlin (which was developed by JetBrains), Groovy, Clojure, Scala and others. 

IntelliJ IDEA includes features like advanced forecasting, code analysis, and smart code completion as well as a selection of plug-ins and extensions to customize the IDE to your needs if you’re not satisfied with its out-of-the-box feature-set.

Eclipse

 Released by IBM in 2001, the open source IDE Eclipse was initially created to eclipse Microsoft’s Visual Studio. Since then, Eclipse has become a major platform used in both open source and commercial projects. Highly versatile and flexible, Eclipse was designed to serve the needs of complex enterprise projects and embedded system application development. It offers support for a variety of programming languages in addition to Java, as well as popular frameworks. With a plethora of plugins, thorough documentation and a large developer community, Eclipse has rightfully gained a loyal following.

What Devs Want

At a glance, IDEs are like apples and oranges, if apples and oranges were the base and home for all your future development work. So let’s set some basic criteria, still assuming we’re a Java junior fresh out of programming course diapers.

Cost

Both IntelliJ IDEA and Eclipse IDE are free to download and use, with IntelliJ offering a paid version for additional functionality (the “Ultimate Edition”) that we mentioned above. Being a junior developer, free is the perfect price-tag, though it’s important to remember there are other non-monetary costs to “free”. But we’ll get to that later.

Software License

IntelliJ IDEA Community Edition is open core, rather than open source, and is covered by the Apache 2.0 license. While this means that you can use the IDE freely for any type of project, it also reflects on the plugin ecosystem as the license does somewhat limit the development of plugins and extensions. However, as a commercial project, IntelliJ IDEA has the advantages of a corporation with a budget behind it, rather than a community-driven non-profit.

Eclipse IDE is fully open source under the Eclipse Public License (EPL) v2 and the code is maintained by a non-profit – The Eclipse Foundation. While having very little implications on the development experience, the open source license of the IDE allows for a more extensive plugin ecosystem, and makes open source supporters feel warm inside knowing they use software developed by the community for the community.

System Requirements

IntelliJ IDEA can be installed on Windows, MacOS and Linux with the following hardware:

  • 2 GB RAM minimum, 4 GB RAM recommended
  • 1.5 GB hard disk space + at least 1 GB for caches
  • 1024×768 minimum screen resolution

Eclipse IDE can run on anything that supports JVM including Windows, MacOS, Linux and Solaris. The hardware it demands is very basic:

  • 0.5 GB RAM minimum, 1+ GB RAM recommended
  • 300 MB hard disk space minimum, 1+ GB recommended
  • Processor speed of 800 Mhz minimum, 1.5 Ghz or faster recommended

It’s easy to see that the minimum requirements for Eclipse are more modest. Since we’re not planning to run an IDE on our smartwatch, it’s safe to assume that even the cheapest computer from the past few years can run both smoothly without breaking a sweat. However, if performance is what you’re looking for, the same hardware might not give you the same results on both IDEs.

Performance

Waiting for a build to finish or for a particularly complex piece of code to compile can be a drag. So unless you like to use this time for other fun activities, you probably want your IDE to be as fast and efficient and possible.Tests performed show that Eclipse IDE is by far more efficient than IntelliJ IDEA in its memory management. However, if you look at the popular Java forums like r/java/ on Reddit you may find contradicting arguments.

 

Programming Languages & Frameworks Supported

While we are comparing IDEs for Java development, it makes sense to take a look at what other languages are supported by your IDE of choice. You never know when you might be forced to edit JavaScript code or debug COBOL (hopefully never).

IntelliJ Community Edition supports Groovy, Java, Kotlin, and XML/XSL straight out of the box. You can download and install plugins to allow you to program in: Clojure, CloudSlang, Dart, Elm, Erlang, Go, Gosu, Haskell, Haxe, Julia, Lua, Perl, Python, Rust and Scala. The frameworks supported are Android, Ant, Gradle, JUnit, JavaFX, Maven, Python, SBT and TestNG.If you require support for HTML/XHTML/CSS, JavaScript, PHP, SQL or other languages or app development frameworks, you will be forced to splurge on an Ultimate edition to develop in IntelliJ.

Eclipse is written in Java, so the tools and SDK for Java development are part of the basic installation. However, thanks to it being open source, Eclipse IDE has an immense ecosystem of plugins that will let you program with pretty much every language and framework out-there in one IDE. Currently, with the plugins available on the Eclipse marketplace, it can support over 100 programming languages and almost 200 application development frameworks.

Plugin & Extension Ecosystem

At this time, the Intellij plugins marketplace offers a total of 3,374 plugins, with some of them available exclusively to subscribers to the Ultimate Edition, and the Eclipse marketplace includes 1,668 solutions and extensions for the IDE.

Having gained popularity at an amazing pace, the Community Edition of IntelliJ led to similarly accelerated growth of its plugin ecosystem in the past two years. In addition, with Eclipse plugin interoperability isn’t always promised – your mileage may vary, as it is with many other open source solutions. With IntelliJ IDEA, plugins are better vetted by JetBrains and are less likely to clash with one another.

To an individual developer the selection wouldn’t necessarily depend on the number of downloadable plugins but rather the availability of specific components needed by the developer to be featured in the IDE of their choice.

Ease of Use

When it comes to ease of use, it gets super-hard to judge. No two users are the same, and preference can come down to things like UI customization options or tweakable code completion. Most developers we’ve asked confirm the opinions on the Internet – IntelliJ IDEA is friendlier to beginners thanks to its ease of code completion and inspection.

Another advantage IntelliJ has over Eclipse is that many define Eclipse as more of a collection of plugins than an IDE on its own. So on one hand, IntelliJ gives you what you need out of the box. On the other, if you want to spend some time customizing an environment to your specific needs and tinker with the source, Eclipse is the way to go.

It’s worth noting that many developers claim that the ease of use and intelligent coding support offered by IntelliJ is actually a hindrance in learning and understanding the intricacies of Java programming. Then again, some of these developers recommend unassisted coding in a text processor and compilation in the terminal to force newbies to really know what they’re doing before they lean on automation and AI to do some of the work for them. Bottom line, “good” coding isn’t about right or wrong it’s about realizing that coding languages, and Java specifically, is a living and breathing thing that changes over time.

Therefore, remaining a “purist” will most likely end up leaving you behind the curve. Embracing new trends and best practices will keep you on top of your coding game. Sure, as abeginner you need to learn to crawl before you walk but what is necessary to “crawl” changes continuously. That’s why Codota‘s AI based code completions pulls in code snippets from millions of Java programs and delivers code suggestions right in your IDE, Eclipse or IntelliJ :).

Popularity

The popularity of one IDE over another should not be your only criteria for choice. However, the size of the community and number of fans among Java developers can have impact on productivity and ease-of-use.As previously mentioned, Intellij IDEA has had a growing fandom since JetBrains released the Community Edition in 2001 and overtook Eclipse in popularity in 2016. According to stackshare, Intellij IDEA now has more fans, more points on Reddit, but far fewer questions on Stack Overflow.

The Right Tool for The Job

At the end of the day, what matters is not only personal user preference, but also the needs of the project (or projects) our junior Java developer plans to work on in the near future. Though there’s no doubt that IntelliJ IDEA currently has more vocal supporters online, and is gradually overtaking Eclipse in popularity among both new and experienced Java developers, our suggestion to the beginner Java developers is to give them both a try, and see which feels like home. 

(Article was originally published on the Codota Blog)

Sort:  

According to stackshare, Intellij IDEA now has more fans, more points on Reddit, but far fewer questions on Stack Overflow.

Maybe that's because more things just work, plus there is an up to date manual?

Regarding Golang, it's only supported in ultimate edition of IntelliJ.

IDE is a tool for performing computer-aided manual tasks and as such I strongly believe it should not be something a critical part of development process.
Development of software must rely on automated tasks. As such the best IDE/CI/CD tools are the ones you don't really need, tons used should not rely on a central entity being a single point of failure.
A good java IDE is one that will work with Maven/Gradle, which should be the source of truth for the project build and verification. The ultimate verification happens as part of CI build which should fail for a change that violates the coding standard consensus.

I work on a pretty much vanilla IntelliJ, only adding a couple plugins to support Kotlin and Python. I remove some of Ubuntu keyboard shortcuts colliding with a standard set of IntelliJ ones. I adjust my work to comply with convention.

For formatting we started using google java format in android flavor. IntelliJ formatter is a inferior tool compared to Eclipse one which cannot be automated either. With the formatter plugin, a prepared config is needed for imports and the outcome is consistent with the one of maven/gradle plugins which can also do automated formatting from command line.

I liked eclipse, but I adjusted to my work and can't be bothered switching back until I need to adjust to another work, hopefully never again.

I consider customising a waste of time.

What happened to the unopinionated old me?

What happened to the unopinionated old me?

Who cares? This comment is fantastic.

IntelliJ formatter is a inferior tool compared to Eclipse one which cannot be automated either.

Good to know! I am now wishing I had done more research and asked you for your "unopinion". :)

Who cares? This comment is fantastic.

Awwww

Happy to help!

(Clearly not very good with multiple usernames)

I used to think of Eclipse being the ideal IDE for Java programming. Some of my friends still use Netbeans. But well, we can't say one is actually better than the other. I guess it's best to be dynamic.

Thanks for this!

#OpenSource is being embraced by commercial software companies. It is indeed the future of software computing. Learn why you should support #UtopianColony and how to get your #SteemSecretBundle

Click here.

Learn why you should support #UtopianColony

Protip: try and get that comment with the link on external websites. Everyone on Steem knows about Utopian (unless they've been living under a rock), but outside Steem, Utopian Colony is just yet another indiegogo by a first-timer crowdfunder. Get the word out beyond Steem if you really want to help.

Hi, @techslut!

You just got a 0.05% upvote from SteemPlus!
To get higher upvotes, earn more SteemPlus Points (SPP). On your Steemit wallet, check your SPP balance and click on "How to earn SPP?" to find out all the ways to earn.
If you're not using SteemPlus yet, please check our last posts in here to see the many ways in which SteemPlus can improve your Steem experience on Steemit and Busy.

JPEG_20190321_125808_2172115615991324365.jpg

testing my app, but really funny article

Hi @techslut!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 6.203 which ranks you at #248 across all Steem accounts.
Your rank has not changed in the last three days.

In our last Algorithmic Curation Round, consisting of 226 contributions, your post is ranked at #16.

Evaluation of your UA score:
  • You've built up a nice network.
  • The readers appreciate your great work!
  • Good user engagement!

Feel free to join our @steem-ua Discord server

Dear techslut:

We are SteemBet, the next generation STEEM based gaming platform. We are honored to invite you to join our first fantastic dice game, which is just the beginning of SteemBet game series. Our dividend system has now launched. The prize pool has already accumulated 2,000 STEEM and more than 60 players have participated in staking mining token SBT. A huge reward of 40,000 STEEM is awaiting! Join us NOW with other 500 STEEM users to loot HUGE dividend reward!!

SteemBet Team

Official Website
https://steem-bet.com

Discord Server
https://discord.gg/95cBN3W

Telegram Group
https://t.me/steembet

Gambling ads in comments to my post? That's what we call SPAM.

 6 years ago  Reveal Comment