I am a fan of Open Source – I use Ubuntu Linux at home, Open Office, Firefox web browser, Thunderbird email client, I host websites that use MediaWiki, Joomla, WordPress and webtrees all written in PHP that runs on Apache web-servers. I have also written my own applications in PHP and provide access to it free of charge but do charge for support – all in keeping with the Open Source initiative.
On Saturday I went to the Bradford Media Museum to look at the Life Online exhibition. The main reason for going was for the [open source] mentioned in the blurb. After looking round the displays on both the ground floor and the 7th floor I have to admit to being disappointed. Perhaps if I had gone with a different purpose I may have been more open to its other aspects, but I have another blog brewing about that too. To me Open Source has a particular meaning and I feel that the exhibition was dumbing that down and confusing it with collaboration and content management.
An attempt was made to take the two words separately and give a definition which I think was sort of correct but phrases don’t work that way, when you put more than one word together to name something it often tightens the meaning of the individual words. And you also have to take into account the history of the phrase. Then other areas of the exhibition started to confuse things even more.
There were several interactive displays one of which showed collaboration – someone had done a graphic design which had then been translated into small enough steps so that one or more people could reproduce the design using coloured blocks. Those using the blocks did not need to see the overall design nor did they need to know where their work fitted within the progress of it. The fact that you were free to put the blocks anywhere (instead of where instructed) made it open but the same can be said of most collaboration attempts – constraints are needed for it to succeed. For the outcome to be considered a success when there are no constraints then it is probably art you are producing, or anarchy. There are a couple of ways I can link this to computers. One where you take simple building blocks (either electronic components or individual bits of computer code) and build things that can perform incredible tasks. Another where you break a job (software development) down into small manageable tasks/pieces and then put them all together to make something unique.
Another screen tried to explain open source and I was amazed to hear people saying that Facebook and Wikipedia were open source. Facebook is quite definitely not open source, it can only be changed by adding to it. If I add something to Facebook then no one can change what I have put on there. They might be able to force others to put a different interpretation on what I have said by adding their own comments, but my words can not be changed – that is not very open. It is perhaps open in the way a shop can be, but even that is stretching it.
Wikipedia gets a little more interesting in this respect in that if I put anything on there it can be added to or changed by others, and I can change their words, or I can cause the images they uploaded to no longer be displayed and mine to be visible instead. This is collaboration that is made available to anyone who wants to create an account. I have to agree that this fits with a reasonably open definition of open. Wikipedia also keeps a record of all the edits that have been done so that they can be reverted to as required – is that open?
If we now include the word source then we start to look at a whole different area. Source can mean the place where something started so I am not sure how it can be applied to Facebook or Wikipedia but it can refer to the computer program that someone wrote to perform a particular task. Computer programs are written in many different languages and with some of them, when you read through the program, you can often get an idea of what is happening with each section. Before these programs can do anything on the computers they get translated (compiled) into code that the computer can eventually work with. The code that the programmer wrote, before it is compiled, is called the source code. This is the source being referred to in the phrase open source.
Before Bill Gates came along people with computers often had the source code for their operating systems and applications and would tailor them to suit their particular use. They had their own copy of the source code. Usually you were not allowed to pass the source code on to others, it was only open to you.
With Microsoft this changed. Microsoft translated (compiled) their source code to make the files that the computer worked with and it is these files that Microsoft distribute. These files are often called binary files in that they are much closer to the 1s and 0s that the computer works with and are very, very difficult for people to work with and change. To reinforce the idea that you are not supposed to make any changes to Microsoft code you only get a licence to use the software, you never actually own it. This model is quite definitely not open or dealing with source code.
Some people carried on with providing the source code to their customers and some of the licences became more open. You could share your changes with others.
There are several recognised licence agreements with open source. One common licence allows you to get hold of the code and change it but you must not remove any acknowledgements of the people who have worked on it. If you want to make your changes available to others then it must also be under the same licence agreement. You are not allowed to charge for the source code. Though you can charge for the media, packaging, printing or your time working for the purchaser.
Your changes can be supplied in addition to the original source or if your changes are significant you might want to create a separate identifiable product. This splitting off is called a fork. Forks can happen for many reasons.
I don’t know the details of how it evolved, or which applications were the first, but as people made changes to the source code to suit their needs it would have been noticed that others had similar needs and so the changes that had already been made could be incorporated into the original source code, still under the same name, so everyone could benefit. There are many programs where the source code is freely available and, as I have said, people can get hold of it, use it and change it to suit their needs. If the person making the changes is suitably competent and confident they can then contact the group developing the software and let them know about the changes so that they can be incorporated in the original.
Many open source applications have lots of people working on different parts or aspects of the source code and it is possible to get involved. Individuals with particular skills or knowledge can become part of the group and contribute. You don’t even have to be a programmer. Big projects need testers, quality control, co-ordinators, project managers etc. This is when it really becomes Open Source.
The licensing of Open Source can be a mine field to companies that want to make money out of their labours. This is one of the reasons why many keep away from it. Let’s say you are building some software for your product and some of that software is unique to your product. If the source code got into the hands of your competitors you might lose some of your competitive advantage. If, as part of that software, you included some code that was released under one of the open source licences then you may be legally obliged to make your source code available under the same licence. I am trying to work out whether this is restrictive Open Source or open Open Source. You are forced into being open.
I will finish by going back to WikiPedia because another interesting thing about it is that it uses open source software called MediaWiki. Anyone can download the MediaWiki source code and use it to host a wiki of their own. You can make changes to your installation to suit your needs and many of these changes can be achieved with configuration, this has nothing to do with open source. The more adventurous of you can change the underlying code to suit your particular requirements, this is customisation and then falls within open source. You can also contact the group looking after the MediaWiki source code and get involved. Now that’s Open Source.
Perhaps I am missing the message at the Media Museum? There was a section that mentioned providers wanting to charge for content. Open Source works within the laws of copyright as does Open Commons and creators of content are free to choose the framework that they want the content to be available in and this should be considered at the time of creating the content, or at the latest at the time of release.
Feel free to post comments.