Saturday, June 6, 2009

Open Source - the Basics

Open source (also known as free software) is a quickly growing force in computing. Open source, once the only way in which programs were written and distributed, became less well known as the PC market grew into a multibillion dollar industry. Open source software is developed by those that actually use the software, every new user potentially becomes a developer, distributor and advertiser.

How does this work? Computer programs start with the creation of source code using a programming language. These special languages are different from human languages; they make it easier for humans to communicate with the computer hardware. If not for programming languages, programmers would have to individually manipulate the switches using a series of on and off signals, which very quickly becomes impractical when dealing with tens of millions of switches in a modern desktop computer. Once the programmer has implemented all the features the program needs, it's compiled, becoming a string of ones and zeroes for the computer to read. The compiling process converts the human readable programming language source implemented all the features the program needs, it's compiled.

The compiling process converts the human readable programming language source code into a binary file that computers can read. Once the program has been converted to binary, changing it is no longer practical. If there are features you'd like to add (or remove), or errors (bugs) you'd like to fix, you need to modify the original source code and recompile the program to a binary. Access to the source code allows you complete freedom over the computer program. You can reuse it in other projects, you can share it with others. Compare this with open pollinated (OP) seed: you can save OP seed from year to year, you can share them with others. You truly own both open pollinated seed and open source software. Once obtained and properly maintained, they are yours as long as you don't destroy them.

Open source computer programs have another important benefit, the open nature allows rapid improvement and development by interested parties. Users of the software can easily become stakeholders providing or suggesting improvements to the program, or adapting the code to their specific requirements. This creates a dynamic culture that quickly and more fully responds to any computing environment. Since most open source code can be easily shared, this results in intellectual cross-pollination, speeding development and adaptation. As profits are not necessarily a driving consideration, small niches can be filled, providing benefits to a limited number of users. Open source allows the code to be adapted to unusual computing environments such as unusual or "obsolete" computer hardware or system configurations.

Closed source, proprietary code is any code which doesn't allow you access to the source code. This is similar to hybrid seeds, or patented varieties with restrictive licenses which limit your rights to save or share seeds. Neither are sustainable in the long term, both are methods used by abusive corporations with near monopoly control.

No comments:

Post a Comment