To go around, open source needs input. Photo: Jim Pavlidis
Free and open source software has touched all our lives whether we know it or not. Often misunderstood and treated with suspicion, many businesses take advantage of the benefits of it without acknowledging the community that powers it.
Before going any further, free software is not about price, rather an ideology that advocates that software has most utility when there are no barriers to its ability to be used, improved and studied at the source code level.
This year marks the 25th anniversary of the GNU C Compiler (shortened to GCC) being gifted to the world. In 1987 a much younger but still probably magnificently bearded Richard M. Stallman released what is arguably one of the most important contributions to modern computing culture - a free (both in cost and in liberty) C compiler. At the simplest level compilers are software that take instructions written in a human readable structured language (such as C, in this case) and compiles it into instructions that a computer can understand (called machine code). The output of the compiler is a package of executable software referred to as libraries, executables or binaries.
Richard Stallman, often referred to online simply as RMS, founded the GNU Project in order to create a complete free and open Unix-like operating system. GNU stands for "GNU's not Unix", a recursive acronym style of which the world of IT is unfortunately fond and often reuses. At the time, Unix was a heavily IP encumbered system and solely the domain of large research institutions, corporate, government and military installations. During the early 80’s Unix, while a firmly established technology, was caught up in antitrust cases between the US Department of Justice and Bell Systems. AT&T attempted to commercialise Unix System V but this threatened to hinder collaboration between computer science researchers.
A Unix-like system, created with the principles of protecting the essential freedoms of programmers and users alike to run, study, modify and distribute software without fear of having your work controlled by others was seen as desirable. Since Unix was already a key computer science research platform with many of features that we take for granted today being developed and experimented with on it - legal worries, corporate mismanagement and proprietary controls threatened to seriously slow down innovation.
It is not hard to see that taking an operating system out of the lab and forming a true community around it is fundamental to the rapid progress that IT enjoyed in the last three decades. At the heart of this community was the GNU toolchain and the gem that is the GNU compiler.
Happy birthday GCC and thank you to all the researchers, developers and freedom advocates that made it happen over the last 25 years.
Enough history though. The free software community is very much alive and continues to contribute many new technologies and innovations which can be shared by all.
During the week I was talking with a very large software vendor doing an evaluation of one of their platforms. The platform was excellent and exceeded my expectations and as we delved deeper into the subcomponents I asked what tools they were using to perform some image manipulation functions. Almost embarrassed, they said ImageMagick, an open source image editing library developed by ImageMagick Studio. It struck me as odd that there was still a stigma around admitting that software vendors use open source software as part of their offerings.
Why the shame?
Systems are more than the sum of their component parts, if using a free library gets you the functionality that you need and as long as you comply with the licence, it makes good sense. Why reinvent the wheel and forgo what is sometimes years of community development and testing?
This is not a free software free pass, every business should evaluate the pros and cons of each library or subsystem in light of their needs but to exclude potential solutions because of the free software/open sources stigma is blindness. There are legal implications if you decide to extend these libraries, but it is nowhere near as problematic as often made out.
I'm not demanding that you release your product under an open source licence. If you are in the business of software development, often your developers will know of these libraries and tools. Have a frank and open discussion with them about the potential to leverage these libraries. Talk about what open source libraries you are using and what your policy is for contributing improvements back into the community or even sponsoring improvements.
Finally, if your business uses community developed libraries and platforms, celebrate it. You are in good company.
What free and open source software makes your professional life easier? Do you feel that corporate culture really understands the potential of open source?
This author is on Google+