Sunday, March 23, 2008

The best things in life are free

Ever had one of those weird moments when you check out what's stuck in your wallet and compare it with that of your buddies? I'm not talking about how much money you have, but all of the other things - receipts, drivers license, club cards, gym memberships, packs of sugar, ...? (Think George in that old episode of Seinfeld...)

Well, this post is all about what's stuck in your development environment. Perhaps one of the biggest lessons I have learned over the past few years is that some of the best development and I.T. tools out there don't have to cost you an arm and a leg. There was once upon a time when we subscribed to a different model: the pay-as-you-go model, where every time we ran into a problem, we'd call up our favourite vendor and "discover" what next big purchase we would need to make to solve the problem.

No longer. Now, thanks to a plethora of good open-source or economical commercial software, one no longer has to pay big bucks to develop good software.

Here's what I have installed:
  • Eclipse Europa -- this is my main integrated development environment. Within Eclipse, I use a variety of plugins and environments. I develop using Java 6, unit test with JUnit, manage my configuration using Subversion and Subclipse, integrate using Ant, and task manage using Mylyn.
  • Mozilla Firefox -- this is my main browser. I enjoy using this browser immensely because it is cross-platform, and because it is not tied to my operating system, is relatively secure.
  • GVIM - for all editing tasks I don't use Eclipse for. It is a trusty, albeit expert-friendly friend (vi) ported over to Windows. It is free and even does colour syntax highlighting.
  • Beyond Compare - about the best diff/compare/merge tool out there for Windows. It is not free, but the $30 license fee isn't going to kill you either. I highly recommend this tool as it does not only file comparisons, but does wonderful directory comparisons which is great for synchronizing directories.

Now for some of the back office stuff:
  • Bugzilla Bug Tracking System - tracks our defects and bugs and integrates nicely into Eclipse thanks to a nifty Mylyn connector plugin.
  • Subversion - handles all of our source control and configuration management
  • Bugzilla uses PHP, and MySQL extensively while both use the Apache Web Server which Ubuntu Server (based on the very versatile Debian linux distribution) does a nice job of pre-installing for you.
  • Almost all of these servers run as virtual machines on VMServer - a commercial but free product from VMWare that allows you to run more than one virtual machine on a given server. Great for lab testing products and hosting virtual servers.
  • The remaining stuff such as our Java Web Start deployment server runs on an instance of Apache Tomcat.
  • Apache ActiveMQ acts as our messaging server.

We have made similar utilizations in everything from our networking to even the on-hold music on our telephone system. It's not that we don't run commercial products. But, with the availability of open-source, community driven, community debugged programs available, IT professionals and developers are offered a much greater choice. The focus shifts from product-driven focus (and trying to find which product fits the budget) to a problem solving focus where real problems can be solved by expertise, experience and knowledge of how best to integrate the available open-sourced or commercial products together to make a working environment. Best of all, you can keep most of that big fat wallet of yours in your back pocket because you won't have to take it out very often. :-)



Those are my two bits. What about yours? What are the pros and cons of open source software in your environment? Hit me up in the comments.



No comments: