A couple of years back, the phrase ‘Open Source’ would have brought to mind visions of a geek hacking away, driven purely by the joy of creating living, breathing code and deriving satisfaction from just seeing his code being used and acknowledged by others.
But things seem to have changed almost overnight. Open Source has undeniably become a very visible movement, a disruptive force. Software vendors who used to be known for their expensive offerings are open sourcing some, if not all of their flagship brands. Venture funding for companies having even the slightest connection to open source are on the rise, almost reminiscent of the build-up to the dot-com bust not so long ago. People are trying all kinds of ways to make money off open source. Suddenly Open Source is starting to take on more commercial connotations, a far cry from the principles out of which the whole Free and Open Source Software movement was born.
I’ll not get into a discussion now whether this is good or not, but would like to dwell on the positives for a moment, specifically in the area of open source development tools.
There is a lot to learn and there is great value that you can get from Open Source. If you are a Java developer you can use a whole bunch of open source tools for free, right from the essential IDE, unit test tools, code coverage, continuous integration, version control and even automated functional testing tools. Some things like Ant stand out because come to think of it, there is really no commercial equivalent for it!
It is possible to run a whole Java development team on entirely open source tools. Many development teams do this across the globe and this is increasingly being acknowledged as a best practice. On a side note, one wonders how commercial IDE vendors can hope to cope especially given the fierce competition between Eclipse and NetBeans for example. And yes, a few companies in this space that have fallen by the wayside come to mind. But some IDE vendors appear to be thriving, focusing on providing what developers want and by innovating more. Don’t you still encounter the odd developer who swears by his commercial Java IDE or wishes that he was still using one? Anyway, open source clearly drives innovation and that is indeed a good thing – whether commercial or not.
Beyond development tools, there is a whole assortment of open source Java applications out there and they are growing in number and maturity. I would say that this is a case of open source breeding more of the same. Say you are a Java developer and you are consumed with this vision of the ultimate killer-app that will change the world. If you have the drive to go right ahead and start coding, there is very little that stands in your way of creating something that others will sit up and take notice of. All you need is a PC and an internet connection and you are good to go.
Even better is the fact that getting the attention of like-minded developers out there is so easy. Wasn’t the Internet born out of the need to connect a bunch of geeks? I like to think of that as the primary purpose of the Internet. Hackers share a couple of ideas over the Internet and bam! The next thing you know it’s all Ajax and Web 2.0.
Page 1 OF 2But seriously, the simple fact is that building a community is so easy and given the sheer numbers of people on the Internet, there is bound to be other people who think like you do. It is quite likely that once you establish an online presence, you establish contact with a whole load of folks trying to solve the same problem that you are. And what stands between you and folks who could make a difference to you? It’s probably just the right search string and the good old Google search button.
Even if you are just looking to learn how to create great Java code, Open Source can help you in all kinds of ways. Think of those legendary Java projects that have made a difference in the Java EE landscape, such as Spring and Hibernate. That’s a whole lot of clean, maintainable code that has evolved over a period of time under the watchful eyes of the respective project core members. So much work has gone in, so many contributions from all over the world, bugs logged, patches and improvement suggestions. Just lurking on the mailing lists of one of these projects can be a rewarding experience. And you can browse all that lovely open source code to your hearts content.
The process that results in good code is also worth examining. In the case of the Spring Framework and many other Java open source projects, there are comprehensive unit test cases that cover almost all of the core functionality. Among the many misconceptions about Open Source is that the process is chaotic – geeks slap some code together, e-mail it around and things work if you are lucky. That is so not true! Project hosting sites like SourceForge provide you with version control, a mailing list, trackers for bugs, patches and change requests, space to host your website and numerous other things that not just get you up and running but allow you create and grow a community. And who knows, you may be threatening some of those commercial vendors with your competing product in no time!
So to summarize, Open Source may be getting commercialized at some levels but there is a lot of value and a lot of learning that you can derive from Open Source. It is worth exploring how your existing development environment can be supplemented by open source tools that can actually save you effort such as coding standards checkers. Maybe your development process could do with some common sense best practices such as Test Driven Development and Continuous Integration that are widely prevalent in open source projects. Just looking at existing code written by the masters can make you a better programmer. Contributing code to one of these projects or even kicking off your very own can be a very fulfilling experience.
Peter Thomas has more than 10 years experience in the IT industry and works as a Senior Consultant, based out of Bangalore, India. A keen Open Source enthusiast, Peter is the initiator and maintainer of two successful SourceForge projects. One of them is “JTrac” – an open-source issue management web-application completely built on the very latest Java frameworks such as Wicket, Spring and Hibernate. JTrac (http://jtrac.info) has been very well received within the Java community and reached a ranking of #13 on SourceForge as soon as version 2.0 final was released in December 2006.
Peter has been a guest speaker on Java technologies at events such as the first Indicthreads.com Conference on Java Technology, 2006 . Peter writes about open source and Java technology in this column on IndicThreads.com. He blogs regularly at http://ptrthomas.wordpress.com