Top 10 tools for java development

As a java developer, we always trying to get someone else to do little jobs for us.  This is a list of tools (and possibly frameworks) that we have found most helpful in any java development.

  1. Eclipse (http://www.eclipse.org) – everyone should know what eclipse is by now. The reason we include it here is mostly due to the refactoring support is immensely helpful.
  2. Ant (http://ant.apache.org/) – again, everyone should know this tool by now. Ant is a fantastic build tool, but allows you to do much more with all of the extension support. We have seen some very cool things done with ant, ivy and a few custom tasks.
  3. JUnit (http://junit.org/) – people should know this framework, but many people still don’t subscribe to the automated unit testing model. I find automated unit tests a great way to ensure you haven’t broke anything mainly because I regularly break my own tests.
  4. Tomcat (http://tomcat.apache.org/) – Tomcat is obviously more useful if you are doing web development in java. Duh. However, if you do any of that and have tried configuring something like WebSphere, you can understand why I include it.
  5. Sitemesh (http://www.opensymphony.com/sitemesh/) – Sitemesh is one of the simplest web presentation frameworks I have seen. It can be seen as a basic template engine, but quite often that is all that you need. The difficulty with most web frameworks is that they try to be all things to all people. Sitemesh just wants to put a nice configurable template around your content. The idea of “do one thing and do it well” comes to mind.
  6. Spring (http://www.springframework.org/) – Spring is one of the “web” frameworks that tries to be all things to all people. However, it doesn’t do a bad job. If you are involved with a large project, Spring gives you some nice functionality out of the box without having to go the coding standards route.
  7. Ivy (http://ant.apache.org/ivy/) – Well, some things have changed in Ivy-land. It is an ant subproject now and soon to be moving to the ant site. This might be a good thing. Ivy is a dependency management tool that can be used with ant. If you have more than one small project, you are likely to need dependency management. I like it because I am not required to move to Maven which I have not had much success with.
  8. Luntbuild (http://luntbuild.javaforge.com/) – Luntbuild is an open source GUI build management tool. So, you already have your ant builds and they can be integrated with luntbuild. The bonus with luntbuild is that you can have separate development, qa and production configurations for the build. There is also a professional version called quickbuild (http://www.pmease.com/) that comes with support and some additional features.
  9. Cobertura (http://cobertura.sourceforge.net/) – This is my favorite code coverage tool, mainly because it works and it is free. Code coverage is a good metric to have because it will quickly show you where you have less tests. You will never hit 100% coverage (and you shouldn’t), but it is a good benchmark to look at, especially if you get some defect density numbers from your code as well.
  10. Xerces (http://xerces.apache.org/) – Is there any other XML parsing library out there?

If we have missed your favorite tool, let me know and I will try to look into it. I am always on the lookout for new tools that can improve productivity.

Advertisements

One response to “Top 10 tools for java development

  1. Yes! Did too. I read your post out of curiosity because I left mainstream IDEs, including Eclipse, JBuilder, Netbeans and whatever else… …behind me ten years ago.

    At that time, I realised first that I wanted to have the source code for at least two classes on the same screen at once. A simple idea, yet with two project browsers and two code windows, my life became much easier (maybe because I have SSTM – SuperShortTermMemory 🙂 )

    I use Eclipse at work – our development process produces a threatening amount of legacy code (not something under my control) and 65% of the time is spent diffing and debugging. But no mainstream IDE I know makes it very easy to keep sourceviews side by side.

    So I wrote my own IDE – and it might seem suicidal considering the amount of work involved, or trifling considering the size of open source projects nowadays… but… I pushed forward and eventually came up with the idea of always showing the class specs first, and displaying the code for only one member at once. I feel that this changed my attitude towards programming, as I tended to rely more and more on specs versus implementations – in a word, teaching me how to become a better software designer.

    Thus, Antegram, a fairly atypical IDE in the landscape (or rather, moling out of it) was born.

    If you’re interested in new tools, I’d be curious to see what you think…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s