The Idea of Free Software

Free software means computer programs that are not restricted by licenses that prohibit modifying or distributing the programs freely. The "free" doesn't mean "no price", but freedom.

Technically, the freedom of the free software is protected by licences such as the GNU General Public License (GPL), released by the Free Software Foundation.

Free software is a new cultural movement of the information age, where programmers can express their skills in creating new technology. It has also created a new model for software business, making software development a service rather than product.

The question is, why should you, as a programmer, a software business manager, or a consumer, decide to endorse the free software model?


The proprietary model

First, note that my intent is not to claim that proprietary software is inherently bad and evil, but just that it often becomes unhealthy for the entire IT industry and the free model is often good and competitive option for many IT companies.

To understand the rationale behind free software, we first need to understand the traditional proprietary software business model.

The proprietary model is based on long traditions of the manufacturing industry that produces goods in factories and then sells them. Its basic ideas have long roots in the history of mankind.

Working for money

We all need to make our living. We get money for doing work that we can do well and somebody else needs. We can then use the money to pay for the work of other specialists. This is the basic idea behind all economy, although it is often obscured by the diversity of different kinds of work, such as management, investment, etc.

We can think about smiths. When a customer wants a new kettle, the smith makes it, and the customer pays some money to compensate for the work. The smith uses the money to buy more materials and tools, to buy food, to build his home, and so on. Very trivial.

Programmers are very much like smiths, except that they don't make physical items, but designs, that is, programs. As with kettles, a customer orders a program from the programmer, the programmer makes it, and charges for it.

No, wait, it doesn't go like that!

Virtual physicality of software products

The problem is that computer programs are very hard to make, and even medium-sized programs take tens of man-years to make. But a secretary can't afford to pay 10 million euros for a word processor. Fortunately, there are other secretaries who too need word processors. The solution is to distribute the cost of the development between customers. But how? The proprietary software model gives a simple and almost fool-proof solution.

The solution is to sell the program just like it were a physical thing. Of course, the physicality is not actual, but rather virtual or metaphorical. From the conceptual viewpoint there's no difference.

Programmers may observe that the concepts of ''physical'', ''logical'' and ''virtual'' constitute a very common pattern in software design, where the the actual (physical or virtual) nature of objects is hidden behind a (logical) abstraction.

However, this solution creates a problem, because the virtual software products are still always ''physical'' information that can be copied easily. That's why we have the ''intellectual property rights'' -- a solution to protect the solution. The solution requires a conceptual framework that uses many metaphors between physical and virtual products. Some people don't accept the rationale, just because they don't understand the relevance of the metaphors. For example, metaphors such as ''stealing'' are often used for unauthorized copying, and I believe that they are good metaphors.

Problems of the proprietary model

While the proprietary model provides a seemingly nice and ideal solution to distributing the cost of development, it automatically creates a large number of inherent problems.

First, is the problem of redundancy. To give an analogy, if somebody wants to invent a rubber wheel, they first need to reinvent the wheel, because the design of the wheel is hidden (ok, this analogy may be difficult). It is not possible for others to build on the existing systems, but they need to create everything from scratch. This leads to a large amount of redundant work that serves only the technical necessities of the proprietary solution.

There are many reasons to alter software: to add, remove, or change some features, to remove flaws, and so on. However, one can't hire a programmer or a company to add the required feature to a proprietary program, but one needs to buy it from the original manufacturer. This automatically creates a monopoly for every proprietary program. The monopoly restricts the customer from creating competition between providers and thus restricts the innovation and development of better products.

Compare, that traditional ''physical'' products don't suffer from this problem. A construction company builds a house, and then the owner can hire another company to make modifications. If houses were software, you couldn't even paint a wall yourself, but you'd have to rely on the original builder to the end of eternity. If your carpenter ever dies, you'd be stuck with the ugly porch until you buy a new house.

If proprietary software doesn't give you that freedom, there's definitely something fishy about it.

To prevent copying, designs need to be hidden behind the obscurity of executable binary codes. As the designs are hidden, also their flaws are hidden. This is especially harmful for security, because determined crackers can always reverse engineer the binary executables, but security experts rarely bother to do that. ''Security by obscurity'' does prevent most casual crackers, but not the determined ones.

Hidden designs also make it easy for the designers to leave ''backdoors'' to systems. This is a real security threat that has often materialized even with the most trusted software companies.

The pit of proprietary software

The most important problem of the proprietary model is the way how it hinders competition and innovation. Software industry is all about interfaces and compatibility. If one central product gains the monopoly status, it can creates a compatibility barrier. It is no longer possible to compete, because the monopoly product controls the interfaces.

This is the problem with Microsoft, as discussed below.


The free software model

Now we need to look at the alternative, the free software. It is a business model, but that's not all it is. It is also an art, a science, a culture.

There is also an nearby concept, the Open Source Software [tm]. Free software is always open source, but not always vise versa. Open source is a partial solution to the many problems of closed proprietary software. Of course, partial is never as good as the total solution. Nevertheless, it can be justified, in many cases, as a temporary solution, especially when a previously proprietary company begins transition towards a completely free software business model.

Building on the shoulders of giants

The free software model is in many ways very much like science. When the ideas are free, it is possible to build on existing ideas, which makes it unnecessary to reinvent the wheel. That promotes innovation and technological development.

Benefits to customers

The demand for free software comes, to a large extent, from customers. They need good software that does what they need.

Free software follows the traditional handwork business model. The customer pays the programmers for providing solutions. The solutions may include creating new software, or tailoring old software for the customer's particular needs.

It's not in the interests of the customers to pay too much for the services. But the basic idea of the proprietary model is to force the customers to pay more for less. As every proprietary software creates a monopoly, all proprietary software is too expensive, and thus against the customer's interests.

Benefits to software companies

Successful companies don't sell just anything, they sell something that is valuable to their customers. As free software can be much more valuable than proprietary, it is in the best interests of the companies to sell free software.

Wait! "Sell free software"? How can one sell free products?

For free software companies, free software is not a product but a service. The customers buy their service because the company provides what the customer needs - software CDs plus support plus freedom.

By removing redundancies and enchancing competition and innovation, free software reduces the cost of making software. This means that the currently dominating proprietary software industry is grossly overpaid, and a free software model would greatly diminish their profits from their current products.

Yes, you heard me right. If you're running a software company, you wouldn't get as much money for your products.

No, don't panic. This is intentional and good for you. You see, the idea is that while you're not making as much money from software, you will be able to make that software much more easily. By building on the work of other free software makers, you can sell the service that your customers want much cheaper, while still getting the same profit.

The central idea is to speed up the technological evolution, which is good for all of us. Short-sighted rationality pays on the short run, but not necessarily on the long run.

Free software companies

Taking the leap to free software may need some faith, but a software company shouldn't take the leap blindly. Any transitions in business models must be safe, and based on solid analysis and communications with customers. Customers have to be informed about the benefits of the business model, so that they will learn to demand free software also from the competitors. That forces also the competitors to change their business model -- or perish.

Free software is ideal for hardware companies. They want to sell hardware, and the software is needed just for using the hardware. Remember how Microsoft started? IBM hired them to write an operating system for the IBM PCs. Unfortunately, they didn't demand free software then. Now IBM has learned from their mistake and is currently perhaps the biggest corporate supporter of free software.

Nokia has about the same situation, and they are using Linux a lot, for example in their MediaTerminal and many other projects. Compaq is supporting the development of Pocket Linux for their iPAQ palmtop computers. VA Linux sells server hardware, running Linux, and is perhaps the most influential supporter of the free software community. Sun Microsystems, supporting Gnome and OpenOffice. AOL, supporting Netscape/Mozilla. Transmeta, need we say more? The list is long and grows every week.

In addition, many companies that follow the traditional proprietary model have created or ported their software to Linux, where they are not restricted by closed-source APIs. Some are big names, such as Oracle, Corel, and Borland. Some are smaller ones, such as ID Software, and Loki Games.

Then there are the Linux-only companies, such as Redhat, Mandrake, SuSe, Trolltech, etc. All are small, but thriving.

Case Microsoft

Microsoft is a special case in many ways. The fanatic critiques of Microsoft don't always appear rational, but the irrationality is just skin-deep. Microsoft is a hinderance and even a real threat to the entire global economy, especially to the software industry. That situation requires counter-measures that might not be rational otherwise.

Microsoft's arguments for proprietary software and intellectual property rights are in many ways sound and justifiable, at least from the viewpoint of the business model they have chosen.

However, even if you accept the rationale of the proprietary model and follow it yourself, it's not in your interests to close your eyes from the abuse of the model.

The problem arises from the fact that Microsoft doesn't control just any software, but a key software that thousands of other programs rely on: the Windows operating systems. It gives them power over the entire industry, a power which they have abused countless times.

The problem is not just in intentional abuse, but also in the inherent problem of all proprietary software -- it's very difficult to build on closed and restricted software. You are always dependent on the manufacturer to provide the special APIs that you need. If they are not willing to provide them, it becomes impossible to do what you need.

It is clear that free software may be the only way to crush the barriers of the monopoly that is harmful to everybody. Moving the entire software industry, including the prorietary industry, to develop their products on a free operating system, would end the harmful situation.

The solution, GNU/Linux, is gaining popularity every day, and Microsoft knows what that means. It also knows that it is not in its interests to let the public know what that means.

Free software as a movement

Free software is not just a business model. It is an ideology, a hobby, and a community. Programming is art, and free software is artistic expression. It is voluntary work, made with will to share one's ideas and skills with other people. It is doing exactly what you want, not what your boss wants you to do.

Most free software is not intended for business. Rather, it is written for personal benefit, and the benefit of others with similar interests. Sometimes, it is friendly fraternal competition, and sometimes it is done just to impress your potential future employees.

Free software doesn't generally try to ''compete'' with proprietary software, as it doesn't have much to gain from winning (perhaps with the exception of operating systems). Therefore, free software is very hard to outcompete. Some companies may bankrupt, just like proprietaty companies can, but bankrupts cant't destroy their free contributions to the community.

The idea behind free software movement is so self-evidently strong, that we safely say that free software will not go away.


Conclusion

Programmers and companies are both concerned about making their living. The proprietary software model certainly often works, as long as it is not abused.

However, it always creates unavoidable barriers to technological innovation and thus to development. It has inherent dangers, especially when it comes to security. It is often against customer's needs, as it prevents tailoring and hinders competition.

Free software makes it unnecessary to reinvent the wheel, and thus builds on other people's designs. As a business model, free software is a customer-oriented service business that encourages innovation and technological development.

Demand for free software arises from the needs of the consumers of software. Businesses can thrive by filling the needs of their customers. Free software can give them a competitive edge.


Last modified: Mon May 28 16:50:27 EEST 2001