After almost two years of uninterrupted C# and .NET development, I have got back for few days to Java world. One of our old customers asked us to do few enhancements and changes in the application we wrote. And because we always stand behind our work, always do answer the call for help and do support our customers as long as they want to be supported, I have squeezed-in few days worth of work into pretty packed schedule. So here am I on a short detour into world of class files and jars ...
The application is based on Java and its roots are going back in 2001. It is Web application, using lots of open-source libraries: several Jakarta Apache Commons modules, Struts (in it's first incarnation), Freemarker, Apache Torque and JSP with Tiles. Everything running on Tomcat, built with Ant and developed with Eclipse.
It was such a great feeling to work with Eclipse again. It felt just right, right away - a nice, well polished, extremely user friendly and pleasant experience. So good that it caught me by surprise - what was it that caused this great feeling ? It was not about the language - I actually like C# (from a purely language perspective) maybe even better than Java, because the features allow more natural coding (like properties instead of getter/setter methods). It is certainly not the Java based web platform - using the combination of Struts tags with JSP 1.x is not any better than developing for ASP.NET, quite the opposite ... So it must be the IDE.
The problem of Eclipse in the past used to be memory requirements and speed. Thanks to hardware evolution and Vista hardware requirement push, typical today's machine is 2 GB, dual core box an on this box Eclipse is just flying. On the same platform, the Visual Studio 2005 does not have any issues either, but it just does not feel the same way. I really enjoyed small things in Eclipse - such as great and rich refactoring support (out of the box, without add-ons), helper methods (e.g. implement interface) and the way how the source code management systems are seamlessly integrated into the system. It is not that these features would be so special, unique and unavailable elsewhere - they are just done right.
One thing that I really admire about Eclipse (and wish I had it in VS 2005) is the "fearless configurability". I have had many times temptation to try out some new addin to VS, but did not do it just to avoid the possibilty that it could do something nasty to my development box, registry, Windows or all three of them. I just do not trust the installation programs that like to put strange DLL's into my Windows/System32 directory and write into registry.. In Eclipse, there is no install required - all you need is to unzip files into proper location and restart the IDE. The way how the platform work is very nicely designed and (after some learning period) actually very logical and quite transparent. I feel free to to try out everything I want. For example Ruby Development Tool plugin :-).