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
|