As Microsoft’s Tech-Ed, the biggest developer event on the calendar, takes place in Auckland this week, open source software is unlikely to be much talked about. That’s because developers divide pretty much into two camps: those who see benefits in sharing code among a community of programmers and those, exemplified by Microsoft, who believe in holding firmly to code ownership. Computerworld invited Peter Harrison (below), an open source advocate, and Tony Stewart (see How open is open anyway?), a proprietary software believer, to argue their corners.Since the mid-90s, I have been developing with open source. My initial exposure to open source software was in the form of Borland Delphi components which were released with source code. Usually the most complex licence for these components would be a statement to the effect that the author would not be liable for damages. Of course we never called these components “open source” — there was no name, movement or ideology behind them.
Developers simply released components they thought other developers would find useful, usually because they themselves would benefit from others doing the same. Although the open source movement is new, the spirit of sharing among programmers is as old as programming itself.
Today I am using open source tools such as NetBeans and Tomcat. NetBeans is a top-quality open source integrated development environment for Java. It allows me to write and debug Java servlets in one environment. Tomcat, a Java web server, is Sun’s servlet reference implementation, and is now built into NetBeans.
Why do I choose Java? Java may not be open source, but it does enable me to choose my platform. No longer am I locked into any specific operating system or hardware. As a developer I can work on a Windows or Linux box and easily move the application directly to Solaris or other high-performance platform. In my Delphi programming days I could only write apps for Windows PCs. Now I can write web applications for global telecomms companies which run hardware I could only dream of owning.
When I moved from Windows to Linux on the desktop six months ago the transition was painless. All my work was in Java, so there were no porting issues. Of course, the same argument can be used with Perl and PHP. You can use these languages to write platform-independent code. This gives your customer choice — but more importantly opens a whole new world of opportunities for you as a developer.
Before open source, building a system would mean writing from scratch, because no software company would give you its source. For most companies the expense of building means this just isn’t an option. That leaves them with having to find a solution with the best fit, and paying the software company lots of money for any critical alterations.
Open source provides a third option. You can obtain a core system as open source, and then develop on top of that core. You can also take advantage of other developers by releasing your changes so others can improve and extend your code. This approach will work with any software that is not providing your business with a competitive advantage over the competition.
Of course, you can still build strategically important software with open source as long as you don’t release it outside the company; you are not legally required to release the source code unless you distribute the binaries.
In my experience clients have been more than happy to take advantage of open source to deliver the applications they need. The bottom line is that it saves money, prevents being locked into a single software vendor, and gives the company control over its own software. For the developer it means a wealth of opportunities not previously available, and the ability to deliver systems that you could not have possibly developed alone.
Harrison is a developer for Auckland company Nothing But Net.