What is open source?
The "free" in open source software is actually the "free" that is from the Latin liber; it denotes the state of being free (and is the root of liberty). The other meaning of the English word "free" is from the Latin gratia meaning free of charge, at zero cost. Because the word "free" connotes both "zero cost" and "liberty", you will often hear the terms "free as in beer" (gratis, freeware) and "free as in speech" (liberty, open source) used. The Open Source Initiative defines 10 criteria that a piece of open source software must comply with to call itself open. You can see the whole list, but they boil down to allowing you to do anything you like with the executable program, and pretty much what you like with the code, with the exception of ripping off the author by passing their code off as your own. That may sound complex, but have you ever read the ArcMap License file when installing it? It is pretty typical of commercial licenses. It runs to 7 pages (plus 16 pages of footnotes!) and seems to boil down to: You can use one copy of the software for a period of time, and if it destroys your computer (and/or business) you can get the cost of the disks back in the first 90 days (of course, I'm not a lawyer, so you should check with one before agreeing to any license). And if you are cuirous whether or not open source has any impact on the job market, it does. Directions Magazine posted a summary on how open source is likely to change the job market and what employers look for in potential hires.
Mephistopheles: Mortal! I come offering a deal--
Human: read the sign.
Sign: "By entering this room, you agree to forfeit your own soul rather than negotiate with the mortal residing therein..."
Mephistopheles: Wait, you can't...
Human: Too late.
The OSI lists 8 "popular or widely used" licenses as well as dozens of other less well known licenses for open source software. You should at least be aware of the common ones so that you know what you are accepting as you click through them.
- GNU General Public License (GPL) and GNU Library or "Lesser" General Public License (LGPL) - the GPL is a widely used license which is considered "viral", that if you use code that is licensed under the GPL in your product you are required to release your product and its source code under the same conditions. This makes most commercial software companies quite leery of using any GPL software in their projects. However, it interestingly lends itself well to a dual-licensing model, whereby you can have the code under a relatively restrictive GPL license for free, or pay for a version of the source code without the GPL restrictions. The LGPL (Library or Lesser GPL) avoids these restrictions when you are simply linking the LGPL code to your program. The next three licenses also do not carry the restriction that you must publicly release all changes to the software.
- MIT License - this is probably one of the most relaxed licenses in general use. You are permitted to do anything you like with the code including relicense it and sell it.
- BSD License - the BSD license is very similar to the MIT license but is felt by some developers to be clearer.
- Apache License - this is a more lawyerly license (so, it may appeal to your legal department). It requires you to provide any derivative works under the same license and to clearly mark the changes that you made. You must also keep all attributions and copyright notices that came in the original work.
See OSI list for as many licenses as you could ever wish for. It's worth bookmarking the page in case you come across a program which is licensed under a strange license. One other important thing to note is that all open sources licenses place no restriction on *use*, you can do what you like with the binary software. It's only when doing things with the source code that you need to pay attention. This is a decided advantage over commercial options, like Esri or Microsoft, where you won't ever have access to the source code, and there are many restrictions on program use (only install once, for example).
You may be wondering what all the fuss is about in the above section, if you have never felt the need to write your own programs and certainly don't see a need to develop a new program based on someone else's code.
The source code is the magic beans that make your computer actually do something. All programs are written using a high level language which is compiled (or interpreted) into machine code (the actual 1s and 0s) that tells the computer what to do. With proprietary software, all you receive is the compiled code if you want to make changes to the program or just inspect the algorithms used to see if they are correct. Examining the machine code is like trying to work out how many eggs went into an omelet. However, with open source software, you either received the source code or a note as to where to find it. This allows you to go back to the original human readable instructions and see exactly how the algorithm is implemented. If you personally don't have the skills to do this, you can hire an expert to do it for you. If you (or the expert) find a problem, then you can fix the code and recompile it. Of course, usually, this is not necessary. In most cases reporting a bug to the developers will get a problem fixed for the next release (and most open source projects produce a new build every night, not just in time for the user conference).
If the developers stop building a program, you can carry on using the program as you are not limited by a timed license. If they drop a feature that you like, you can ignore them and stop upgrading (or just keep adding the feature back in). Which of the following list of scripting languages have you developed GIS applications in? Which of them can you still use with your current software?
- Visual Basic
In the open source world, if you don't like the changes that are introduced in a version upgrade, you can ignore them; no one stops licensing it to you. However, you can still be left holding the bag if an open source project becomes no longer supported; in that case you are left with the painful choice of migrating away from that project, or supporting it yourself. Security bugs are a big problem in unsupported software. Open source does give you more options, however. Note how dBase file support is now much better in open source products like Open Office and the R statistical environment than in commercial packages like Microsoft Office.