I love programming. It gives me a sense of accomplishment when I solve a particularly difficult problem. I occasionally get so wrapped up in what I’m doing I lose track of time and spend a few extra hours at work. Obviously there are a lot of other programmers out there that feel the same way.
An old friend of mine coined it something like this: “Managers don’t get it, we love coding so much that we’ll sit and squirm in our chairs until we have to go to the bathroom.”
I’m particularly thankful for the hard working folks that create useful and (usually free) tools and applications that make my life easier and my code better. So I decided to list a few of my favorite tools as a way to thank the developers and companies behind them. These aren’t necessarily new or unusual, but none the less, they are fantastic tools:
When our team first started using Maven I was totally surprised at how much more productive we became. Before Maven, our project took days to get a new developer up and running, once we moved to Maven the time dropped down to hours. Granted, Maven isn’t a panacea and your project may require ANT or some other tool. But I love standardization in project structure, build, and delivery. My hope is that it continues to evolve, but at a faster pace.
If your team is serious about code quality, Sonar along with a decent Continuous Integration tool like TeamCity or Jenkins is a must. My introduction to Sonar came at the first StrangeLoop conference where a presenter flashed it on the screen for about one second. That’s all it took, one second and I was hooked. Instead of me copying the benefits go visit http://www.sonarsource.org/ and have a look around and don’t forget to visit Nemo. When I think Sonar, I think of Steve Martin‘s line in the Dirty Rotten Scoundrels, “Wow, All I can say is Wow!”
MyBatis is the replacement for iBatis and is a convenience data mapper framework for working with relational database. I was first introduced to iBatis while on a reporting application and it benefited the project greatly. iBatis helped to separate our SQL from out of the Java code. The readability, flexibility increased dramatically. We dealt with very large complex SQL, and iBatis helped make it dynamic and flexible.
IntelliJ Idea and Eclipse:
Okay these might be a little obvious, but you gotta love these tools. Besides that these guys deserve a big thanks!
Google CodePro Analytix:
I had searched for an Eclipse plugin like this without success, but thanks to some GWT development I ran across CodePro Analytix. I’m a little newer to this tool, but if you’re looking for a great metrics and analysis tool this is it. According to the website, it is “a comprehensive automated software code quality and security analysis toolkit to automatically improve software quality, reliability, and maintainability in developer applications”. It provides JUnit Code Generation, Code coverage metrics, Dead Code detection and a lot more.
These are newer tools to me that so far I’m impressed with.
I do my development on MS Windows® and we had a task recently that was a good fit for Windows PowerShell® — excellent tool. I’m tempted to give up the command line and just use the PS prompt.
I’ve done very little work with GWT, but version 2.x does seem very nice. Whether we’ll get to use it at work or not is still up in the air, but I have to wonder why it’s not more widely used.
So what are your favorite tools? Have you found better ones or just want to give a shout-out to thank some brilliant open source community? Well here’s your chance: