*adjective, easily modified or changed; opposite of hardcoded

toronto web design - article

    home »  site map »  e-mail » 

Open-Source Tools for Developers:
Why They Matter

As Published in Spider Magazine April 2004

From a developer's point of view use of open-source tools has advantages beyond the obvious economic ones. With the open-source database MySQL in mind, let's see why.

MySQL is the 'M' in the acronym used to describe the open-source web platform, LAMP. It stands for Linux, Apache, MySQL and your choice of PHP, Perl or Python. All are essential pieces of the puzzle. You can't have a web server without an operating system and for dynamic web content a database and a scripting language are essential. But why are these technologies 'open-source' and what is open-source anyway?

We can't really talk about open-source without mentioning Richard Stallman, founder of the GNU project, even though Mr Stallman doesn't like the term 'open-source' and would much rather talk about 'free software' (Linux World Magazine, February, 2004 Vol. 2 Issue 2). I'm hesitant to bring up internecine disputes that are perhaps of limited interest even to the initiate but I think it will help clarify why open-source matters, especially to developers. To summarise briefly, advocates of open-source prefer 'free' software because they view it as a superior model for software development. The source code is open to view by anyone so is more likely to improve and to improve at a faster rate than closed or proprietary software. On the other hand, for Stallman, creating free software is a moral imperative regardless of whether its developmental model produces a superior product. He argues that he would use free software even if it was inferior.

While this may have a certain quixotic appeal to some, surely Stallman has overstated his case. He cannot mean that there is an intrinsic merit to using 'free' software simply because it is free. Software is just a tool, a means to an end. For example, questions of expense aside, the carpenter wants to use the appropriate tool - the hammer with the right weight and balance – in order to get the job done. Any tool should be judged in terms of the intended end result and any merit it has is in how well it functions to achieve this end. We might say that free software has merit, even when it is inferior, but only because it has the potential to be improved in ways that closed-source software cannot. Proprietary software may or may not change for the better but if it does so it is entirely at the whim of its owner.

Perhaps the example of Internet Explorer (IE) 6's initial lack of support for Java has some relevance in this context. Microsoft's motives in leaving out support for this technology were unquestionably self-serving and a good example of proprietary software changing for the worse. In a similar fashion, developers are frustrated with IE's lack of improved support for Cascading Style Sheets (CSS). This kind of software 'development' is the exact opposite of the open-source model but we need not speak about it in terms of morality. To speak this way obscures the issue and takes on the appearance of a dogmatic dispute. The issues are financial. Both standardisation and efficient development models help reduce costs. Besides, is the average IT manager going to adopt technologies on the basis of moral judgements? More to the point, would we want him/her to? There are very sound practical reasons for using open-source technologies. Why muddy the waters?

We seem to have strayed a long way from the 'M' in LAMP so let's return and see what bearing this has on MySQL. The graphic on the company page of MySQL's website promotes the superiority of the open-source development model by suggesting that the sheer number of users of beta releases ensures a superior end product. These are referred to as 'community benefits'. Here we have a clear example of MySQL coming down on the side of the superior developmental model. The word 'community' has perhaps become something of a buzz word and has, to some extent, been co-opted by closed-source software but it has a legitimate application in this context. We should understand 'community' in a broader sense than just a large group of beta testers creating relatively bug-free software. We can speak of a community of open-source development because the input of users and developers is actively sought. Features are added and removed at the request of users and developers.

A developer is always conscious of the investment in time that it takes to learn a new technology or an upgrade to an existing one. Frivolous changes are not well received. If MySQL releases a new version, I as a developer, can be fairly sure that there will be benefits for all concerned. I can be fairly sure that the motivation for the release was not self-serving. In upgrading my skills I'll be spending my time well and any changes will probably benefit the community of users and developers.

About the Author

Peter Lavin runs a Web Design/Development firm in Toronto, Canada. He has been published in a number of magazines and online sites, including UnixReview.com, php|architect and International PHP Magazine. He is a contributor to the recently published O'Reilly book, PHP Hacks and is also the author of Object Oriented PHP, published by No Starch Press.

Please do not reproduce this article in whole or part, in any form, without obtaining written permission.