Fri, 27 Sep 2002

Free software: Misconceptions and opportunities

Christianto Sahat K, IT Observer, Jakarta

To a significant degree, computer programming can be compared with cooking. The dish, which is the result of the cooking activity, is analogous to a software program that runs on a computer. However, to prepare the dish, you need a recipe.

If the recipe is readily available to the public, anyone with a little knowledge of cooking can produce a delicious dish. Similarly, programming is about using the source code. If the source code is openly available, anyone with some knowledge of programming can produce or modify computer programs.

The source code is the foundation of every computer program. Modifying a program is much easier if you have the source code. If you don't, you will have to rewrite the code from scratch, which could take months, or even years, to complete.

When talking about computer programs or software, one cannot avoid talking about licensing. Most computer software makers today charge a varying amount of money in return for permission to use their work. If you buy only one license for a program, you may not install it on two or more computers. You will not get the source code, either. So, if it does not exactly fit your requirements, you cannot modify it. Software of this kind is termed proprietary software.

It was Richard M. Stallman who first initiated the free software movement. Note that when we talk about free software, it does not mean "free" in the sense that users do not compensate the software maker at all. It does not mean that they do not get paid for their ideas and work. The free software movement asks that users be given the freedom to access the source code, to modify it, redistribute it to other people, even charge for the enhancements that they have made to it.

Anyone who believes in the free software movement must make the source code available to other people. Richard Stallman began the movement with the GNU Project, which was aimed at producing and promoting free software. Until 1990, the project had produced a lot of programs but there was no operating system. An operating system is an important part, because the software and the hardware cannot work together without it. An open operating system was not available until 1991, when Linus Torvalds released a kernel called Linux -- which sounded so much like his own first name yet reminds people of UNIX, one of the most trusted computer operating systems ever created.

A kernel is the heart of an operating system. Torvalds posted his kernel in a newsgroup and gave away the source code. Soon, hordes of programmers around the world helped him finish and fix most of the bugs in the kernel. The kernel was then integrated with all the programs from the GNU project. The result is what people now know as Linux, and most of us have forgotten the GNU. So, to give credit to the GNU team, we ought to refer to it as GNU/Linux, as Richard Stallman and his team asked us to.

Today, a lot of people confuse the concepts of Free Software and Open Source. Open Source only refers to the openness of the source code but not about freedom. This can pose a threat to the free software movement, because this concept can easily take away the user's freedom if a commercial software vendor uses the source code to create a new program and make it his proprietary, copyrighted software. So, we must give credit to Richard stallman and his team once again by calling it free software, not Open Source.

So, how can free software remain free? Will there be any guarantee to ensure that the people or companies that modify it and benefit from it will not take away the freedom inherent in it, and then make it a proprietary, copyrighted piece of software? In order to avoid this, Richard Stallman has proposed a type of software license, a GNU Public License (GPL).

Software with a GPL license allows anyone to use, distribute, modify or redistribute the modification, with or without a fee, as long as the source code is also distributed. Open Source software without GPL may become a suicide call, since the code can be taken and made proprietary.

The free software movement introduced a distributed- development style where people around the world could join in developing software and make contributions based on their individual expertise.

This is in contrast to the centralized development of proprietary software, where only a team of programmers has the right to see and modify the source code. Distributed development is one of the key success factors that has made free software grow exponentially, both in quality and quantity.

Most of the developers of free software today do not charge users for their products. Even if they did, the charge is not as great as it is for commercial, proprietary software. Logically, this benefit will make the user population of free software increase significantly, so software vendors must anticipate that to keep themselves in business. The distributed development style of free software allows programmers around the world to analyze the code, find the bugs, fix them and release it again.

Logically, this will result in free software having a superior quality compared with its proprietary counterpart.

Nowadays, the world's largest vendors of hardware and software have been supporting free software. Oracle, one of the largest database software vendors, has already ported its software to the GNU/Linux free operating system.

IBM has taken an additional step by hiring programmers to work full-time developing their Open Source software. They have ported their DB2 database product so it has a version that runs on GNU/Linux, too. Dell, Hewlett-Packard, Cisco and Mercedes are just some of the other large corporations that use or support GNU/Linux. IDC analysis released in January 2001 says that GNU/Linux accounted for 27 percent of all server operating system shipments in 2000, which represented a growth rate of 24 percent year-on-year. Those interested in the quantitative analysis on the free software can visit dwheeler.com/oss_fs_why.html.

Developing countries can take advantage of the free software, as well. It can help reduce their national budget for software and save scarce foreign exchange. The free software offers documentation, which presents opportunities to small software companies to grow while creating many new jobs.

Mexico City's Scholar Net program proposes to install GNU/Linux operating systems on 140,000 PCs in school computer laboratories. Their municipal government also plans to transfer all the computers used in the city to the GNU/Linux operating system, and use the money it can save to fund other social welfare programs. Peru has carried this a step further, with its Peruvian Bill Number 1609 -- Free Software in Public Administration, which requires that its government use free software. Venezuela has also decided to shift from proprietary to free software. The government also requires that all software developed for governmental use must be licensed under the GPL.

If these countries can enjoy significant benefits from free software, there is a good chance that Indonesia could too.