Saturday, May 10, 2014

Published 1:28 AM by Phuc Nguyen with 6 comments

Best IDEs for Java Programmers


As a programmer, there is no surprise in getting yourself the best IDE available in the market. IDE stands for Integrated Development Environment. In another words, it is where your code stays and works its magic. It is the utmost important tool before anything else that you should care about.

So what is IDE about? Most college students get used to a few basic IDEs that their schools provide. These IDEs perform some certain basic tasks such as letting you edit the code, providing code checking, debugging tools and compiling system. We could image a usual scenario in which the first ever program "Hello World" is created. You open your IDE, create a new project, create a code file (.java), enter your code, and finally click run. Your program magically appears on screen with the world "Hello World". Your job is done and now you can get rest. This sounds easy enough to believe that you don't actually need the IDE. Maybe a text editor would work just fine.
Eclipse IDE Interface


Now if you look at professional programmers at work, they always choose to use great IDEs, instead of a text editor. A great IDE can provide you code hinting and code completion. These tools help you put your thoughts into code faster and accurately. As years go by, Java APIs and others have extended their classes and methods way more that you can remember. Maybe you could remember the 10 most used classes and look for a class on the official Java documentation. However, doing that decreases your efficiency. An IDE can help you with that.

Intellij IDEA Smart Completion
If you want to test a simple class you just finish, an IDE can help you set up a testing unit of a particular language for that class. It also provides debugging tools that let you know which lines of code are wrong. These simple tasks seem easy in an IDE but takes a lot of time to set them up manually. This is where a great IDE is a must-have  for big companies which  prefer test-driven development.

Besides that, an IDE can provide asset organization which lets you arrange all kinds of assets inside a project. Some assets might be pictures, videos, and graphic arts. They also could be audios or external files such as private libraries and APIs. In summary, an IDE is like an Operating System for your project. Without it, you could barely function as programmer.

Intellij IDEA Code Checking


Now, for a Java programmer, there are many IDEs available in the market. Most notable IDEs are Eclipse, Netbeans, and Intellij IDEA. Netbeans is quite a nice IDE for beginners, but as you progress more into programming career, Netbeans is not powerful enough to handle big project and collaboration between teams. In this post, let's examine the two popular IDEs, Eclipse and Intellij IDEA.

I will make a simple table to show you the pros and cons between Eclipse and Intellij IDEA.

Eclipse  


Intellij IDEA  


Pros
Cons
Pros
Cons
Free
Community Edition is free Fully featured IDE is paid to use
Open source
Open source for community edition Proprietary source for Commercial edition
Extensive plug-ins and support for many languages beside Java
Extensive plug-ins and support for many languages beside Java
Fully support for Android development
Fully support for Android development. Currently the main IDE that Google choose for its coming official Android IDE
Code hinting
Code hinting and code completion

Single selection Multiple selections
Good debugging tools
Excellent debugging tools

Fragmented in terms of extensive support for web frameworks Great support for many web frameworks such as Angular JS, Grunt, Gradle and more.
Compile code fast

Slow code compilation

Slow typing Fast and smooth typing

Boring and monotonous theme Many choices for themes
Run on Windows, Mac, Linux/Unix
Run on Windows, Mac, Linux/Unix
Good for Start-ups
Good for Enterprise

Not reliable for enterprise frameworks Fully support for enterprise framework

Install version control tools manually Ready-to-use version control tools
Very good refactorings
Excellent refactorings


Well, if you need to dig deeper into each IDE, you could give them a try immediately. I would recommend Intellij IDEA since its code completion feature is way beyong any IDEs I have ever tried. But again, it is your choice to get used to Eclipse or Intellij IDEA.


References

Jetbrains. (n.d.). Intellij IDEA - Features. Retrieved from Jetbrains: http://www.jetbrains.com/idea/features

The Eclipse Foundation. (n.d.). Eclipse IDE. Retrieved from Eclipse: http://www.eclipse.org/ide/

Wikipedia. (n.d.). Integrated Development Environment. Retrieved from Wikipedia: http://en.wikipedia.org/wiki/Integrated_development_environment



       edit

6 comments :

  1. There is nothing quite like a video for demonstrating a point. Great example of the efficiency of IDEs versus simple text editors. I still remember using Emacs for writing IDL code and having to look in books for the correct formatting for a function. Presently I use Spyder for writing Python code and absolutely love all of the built in features. If I pick up Java, I think I'll skip Netbeans and go straight to working in Eclipse. Thanks.

    ReplyDelete
    Replies
    1. Yes, Emacs and Vim are still the favourite tools among old-school programmers. I guess it is because they can be easily modified. In fact, the professor in our introductory Java class taught us how to work with Emacs in one of our labs. But I think it lacks certain modern features like code formatting like you said. If you ever decide to work with Java, Eclipse is the IDE to have. But I also recommend Intellij IDEA which I use for everyday programming.

      Delete
  2. I love the use of examples and seeing it work in real time like you're watching someone code in front of you. It provides a good example of the advantages of free vs paid for IDEs. The chart provides a good pro/con of the features of each IDE. My question would be, does it matter what IDE someone uses? If someone was trying to get an internship, should they be familiar with both? Is the main thing that separates them ease of use and design?

    ReplyDelete
    Replies
    1. Thanks for checking out my post. Indeed, now employers require developers to know at least one IDE. Eclipse is easily the one, of course, since it is free. However, knowing how to use IDE properly can reduce your coding time substantially. For example, I am able to generate constructors, setters, getters automatically within a few clicks. This could take half an hour or so to write manually. So consider that and many more time-saving techniques that a true IDE can bring to you. Ease of use and design might be a good factor to separate them but features are the most important factor. Intellij IDEA comes in-the-box features that you don't want to miss. Try it out!

      Delete
  3. I can still remember how I first start writing code...The "IDE" I started with was just a text pad, nothing fancy. And later on when I switched to Eclipse, I was like "Wowwwwwww...This IDE rocks!". I love the code hinting part in particular because you can just scroll down the menu to see what other available methods you can use. I tried to NetBean but never really switch to it.

    By the way, I think the .gif image is really cool!!

    ReplyDelete
    Replies
    1. Thanks Eileen! Glad that you like Eclipse. My first IDE was the Visual Studio. I had to use it for programming in C. It did an ok job, in my opinion. But when I got to know Eclipse, it just blew my mind. Now I'm getting more serious toward IDEs because a true IDE can save you a lot of time. :)

      Delete