Clojure is a relatively new language to appear on the Java Virtual Machine (JVM), although it draws on very mature roots in the form of the LISP langu ...
Recently, I (Adil) was invited to participate in a one day seminar on the subject of Requirements Engineering. Whilst I have no direct experience of t ...
To attract all potential customers to your business you need a presence on the web. The problem is that if you haven't set up a website before, you p ...
LISP is a general-purpose programming language and is the second-oldest programming language still in use, but how much do you know about it? Did you ...
An exclusive interview with Norbert Cartagena, the former editor-in-chief of Developer Shed Inc. and self-confessed fan of science fiction. In ...
Open Source Tools for Developers: Why They Matter
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. For more information see http://www.softcoded.com.