I started self learning Java with Notepad. Soon I discovered the Kawa editor which provided some compilation support and I was happy. In those days Kawa was seen as a great help as it provided some IDE like features. This Kawa editor was very small program that time and now is in the Kawa 5.0 incarnation.
The world of programming changed for me with the introduction of Eclipse IDE in my programming life. Eclipse was the first full fledged IDE where I started real Java programming. Being the first to land on my desktop Eclipse still enjoys the position of my favorite IDE.
I soon learned how to download different Eclipse plug-ins. The Eclipse plug-in world is abundant with plug-ins to suit each and every need.
When there came the time where I was required to recommend and IDE, obviously my choice was Eclipse. I had also conducted some trainings for Eclipse and I was very comfortable with Eclipse and actually that was the only IDE I was knowing for many days. So the choice of Eclipse was straight forward. It also provided the Open Source goodness and this made my recommendation powerful.
Project started this way with Eclipse IDE is still going on. Once you start a big project with some IDE then you need to stick to the same IDE what may come. There are release after releases to deliver and big code base to maintain. All our sandboxes are made Eclipse oriented.
So here I am happy with Eclipse. But this does not make me Eclipse fanatic. I like to explore different IDE solutions also. When I started conducting JPDC Java course I though I shall demonstrate all the professional IDEs to my students and hence got more interested in other IDEs like IntelliJ IDEA.
When I read about IntelliJ IDEA I read all the praises by the users of this IDE. There is ample evidence of people writing good things about IntelliJ IDEA to believe it is a good IDE with lots of features and support from Jetbrains company.
When I use IntelliJ IDEA I can find many features which I got acquainted with in Eclipse are present in IntelliJ IDEA. There are some common features in IDE world now a days which are supported by all the professional IDEs. In fact it becomes necessary for them to support those features to remain in the picture.
Then there are differences in the way of working in Eclipse and IntelliJ IDEA. Obviously one who is very comfortable with Eclipse has some hard time getting acquainted with any new IDE. I have kept my brain open for any good tool which makes me productive and IntelliJ got added to my tool box after I used many features of this IDE.
Recently I have started exploring the features of Netbeans IDE, an IDE supported by Sun Microsystems. I have read many news articles and blog posts in favor of Netbeans. Netbeans also looks like a good IDE.
Netbeans also have some interesting features out of the box like Matisse GUI editor which is not directly available in Eclipse. GUI editing is available in IntelliJ IDEA.
So there are three main IDEs in my Java Programming tool box. I really do not want to favor any one of them just because of certain good features. I believe all the IDEs are evolving and ultimately will reach same feature levels which become common and indispensable in the programming world. Due to work constraints I have to use Eclipse at work as it was a conscious decision that time.
I am exploring Netbeans and IntelliJ IDEA passionately and this may also change my recommendations about IDE choice in the coming days.
Lastly if we make an analogy of programming with driving, we have some common tasks that need to be done for driving and the Car really doesn't matter in that sense. All Cars are used to reach to some destination. Just having a Car and bragging about the cool features of the Car wont make you reach the destination. You must drive the Car and which is a pretty common exercise in all the Car models. Surely different Cars will provide you different comfort levels and you are free to maintain a choice and also brag about your choice.
At the end of the day all IDEs remain tools for achieving task of completing the programming task assigned to you. They remain tools required to reach the destination and the destination is above the tool we use.
I will keep my exploration in the IDE world going on. Let us see what future has for us in this region, we may see many more IDEs and many more features in these IDEs.
Tushar Joshi, Nagpur