THE WORLD OF FREE SOFTWARE
Introduction
Present
Future
Topics on this page - (quick links)
Brooks Law
Open Letter to Hobbyists
Gnu Project
World Wide Web
Linux
Open Source
Topics on other pages - (quick links)
Mark Preston's homepage
HISTORY OF SOFTWARE
To examine the reasons for the prevalence of "closed source" software
it is necessary to do a whisltle stop tour of the history behind the
Personal Computer and computing in general. I'm not going to dwell on
Joseph-Marie Jacquard ,
Charles Babbage ,
Herman Hollerith or
Alan Turing.
Computer coding is basically using a series of 0s and 1s to instruct the
hardware to co something. In the early days the 0s and 1s were input directly
into the machine. Then primitive languages were developed to make the job of
programming easier. One such language was Assembly. Later, as these languages
developed so called compilers were used to change the language used by the
programmer into an intermediate code that could be used by the computer
machine. This was called an executable file and contained the machine code.
This meant that people could be given the machine code to run the program
without having the source code.
DEMONSTRATION
Source code file --> compiled --> executable file -->run program
One of the most famous books about software development was written in 1974
by Fred Brooks
entitled
The Mythical Man Month. As a manager of IBM he
oversaw the development of the OS/360 from 1961 to 1964. This was a software project
that ran late and took over 5000 man years to complete. It was Brooks who specified
that a byte would consist of 8 bits. This book is somewhat similar to Black's
book on cavity design for dentists in that it is regarded as a classic. From
Black we get "extension for prevention". From Brooks computer programmers get
"Brooks Law" - adding computer programmers late to a late large software project
makes it later. The complexity (vulnerability to bugs) and communication costs
of a project rise linearly with the square of the number of developers, while
the work done rises linearly. This was widely believed to be true, and tended
to mean that most software companies had a small number of highly talented
programmers running their projects.
In 1976 Bill Gates
published what he called an Open letter to Hobbyists. He
addressed the users of the first personal computer the MITS Altair. Together
with the co-founder
Paul Allen
of Micro-soft (the hyphen was later dropped)
he had written a version of BASIC (Beginner's All-Purpose Simple Instruction Code)
that would run on this machine. In the letter he condemned the practice of
making illegal copies of the program. "As the majority of hobbyists must be
aware most of you steal your software. Hardware must be paid for, but software
is something to share. Who cares if the people who worked on it get paid?"
He went on to say that this is preventing good software from being written.
"Who can do professional work for nothing?"
What hobbyist can put in three man years into programming, finding all bugs,
documenting his project and give it away for free?"
At the time this line of reasoning must have seemed unanswerable. The
Altair PC which forms the basis of the home PC of
today had just been built and the market was about to expand. Bill Gates
and his company Microsoft
set about providing reliable, well supported software.
Against this backdrop in the late 1970s most software went "closed source" -
the source codes became hidden from most users. In 1979 version 7 of Unix went
closed source. This represented the end of the road for what had been the
ultimate student hackers system (written originally by
Ken Thompson
in 1969
in what has been described as the "true mythical man month", when his wife and
daughter travelled across America to see relatives and he stayed at home).
You can see from the above it was thought
that you don't need to give access to the source code to large numbers of
people to produce good software. Far better to have a small dedicated team.
The basic model for closed source software is one where the users report
bugs/problems to the company/programmers, who correct the problems and issue
updates in a compiled form often called a binary or an executable. This is the
machine code required by the computer, but unintelligible as far as humans
are concerned.
The business model is basically:-
Sell executable --> get feedback from users --> debugging + enhancements made
by programming team --> make upgrade --> sell new executable etc...
In this way companies could produce so called killer applications - software
that killed off all competition to occupy a role which could be highly
profitable. Examples include Oracle database software,
Novell networking
software, Apple Macs for GUIs, and of course DOS and Windows. These "cash cows"
would enable financing of further projects and "locking in" of users to
virtually guarantee further income streams.
Not everybody in computing were happy about this change from the hacker tradition
of sharing software, although most talented programmers consoled themselves that
they had highly paid jobs as a result producing "proprietary" or closed source
software as a result. One person who was very unhappy about
the move to closed source programs was
Richard Stallman.
He thought this was immoral and disgusting
and he decided to dedicate his life to producing a free unix like operating
system so that people could "get along" without having to rely on closed source
software. In 1984 he resigned from his job at Harvard's highly respected AI
(Artificial Intelligence) Lab and started his GNU (Gnu's Not Unix) project.
Another man called
Andy Tanenbaum
Professor at Free University of Amsterdam
decided to write his own operating system that would be system call compatible
with unix. He wanted it to be all his own code
and to use it for teaching his students. From 1979 to 1984 he had stopped
teaching practical Unix and just taught theory. He called his project Minix,
and it was his "hobby". He started writing the code in 1984.
In 1987 Tanenbaum released his code to the world and started a usenet newsgroup.
He also sold Minix on floppy discs and a book. This proved very popular.
By 1991 Stallman and his Free Software Foundation had produced a fairly complete
free set of Unix tools as free software. But the development of their kernel
called HURD was causing problems, and the commercial Unix suppliers were failing. Unix's promise of cross
platform portability was being lost by bickering amongst half a dozen or so
proprietary versions. This enabled Microsoft to grab a large portion of their
market with their Windows operating system. The demise of Unix ten years after it
went closed-source was widely predicted at this time, and for the next few years
Microsoft did indeed go from strength to strength.
It seemed the software industry would become increasingly dominated by closed-source
colossi like Microsoft. However two things that went unnoticed by virtually
everybody involved in computing occurred in October 1991 that were to have major
ramifications just a few years later.
Tim Berners-Lee
began a mailing list
called WWW-Talk for those interested in the World Wide Web which he had just
released to the public. He had written a line browser capable of displaying
lines of text along with hypertext links. In November 1991 he wrote:-
"The concept of the web is of universal readership. If you publish a document
on the web it is important that anyone who has access to it can read it."
He decided to release
his WWW code and technology into the public domain to ensure maximum deployment.
i.e. no copyright restrictions at all.
The second thing that happened in October 1991 was that a young computer student
from Finland put out the source code for his free fledgling operating system
based on Minix. This was available for free via FTP download over the internet.
Originally unlike the GNU GPL "Linux" as this OS became known was free and
people could not even charge for redistribution handling costs. The license
was soon changed to the GPL in what the creator
Linus Torvalds
would later call "a really smart move".
The simple nature of the World Wide Web and it's HTML (Hypertext Markup Language)
would over the next few years transform the internet into a mass medium.
Linux was not without competitors. The freeBSD (Berkeley Systems Design)
version of Unix that appeared for the 386 following work done by
William and Lynn Jolitz
was regarded as superior at the time. However, Torvalds "hobby"
differed in that he was actively taking submissions from anybody and
everybody over the internet rather than relying on a close-knit group.
The BSD based versions had TCP/IP support, but Linux could be run
on the same hard disk as Windows.
Alan Cox
, probably Britain's leading Linux hacker gives an insight into the
early days. He would go to the university armed with about 40 floppy
disks and using the good internet connection at the university download
Linux, then take the floppy disks home to install them on his home PC
alongside Windows. "I didn't have Minix because that was £100, and
386BSD would not share a hard disk with DOS or Windows."
The popularity of the World Wide Web soon became apparent, but by the end
of 1992 Berners-Lee became concerned about the HTML standards fragmenting.
He wrote on WWW-Talk
If you are thinking of a smart extra to EITHER HTTP or HTML then
please define it and discuss it here on www-talk. Don't try just
to get it out before the next guy. He is probably doing it too, a
different way, and these are all exciting ideas which benefit from
being hacked around the net.
However things came to a head the following year when
Marc Andreessen,
a college student, added an
image tag (IMG).
This was included in the very
successful Mosaic web browser from the National Center for Supercomputing
Applications (NCSA). Andressen went on to establish the Netscape web browser.
Browser wars had just begun.
Netscape Navigator took the browser market by storm early in 1995. Microsoft was
preparing for the launch of it's proprietary Microsoft Network (MSN), and
was still dismissing the internet as too difficult to use and only of
interest to academics.
Bill Gates' 1995 visionary tome The Road Ahead, failed to mention the Internet.
Even on August 25th 1995, the launch of Windows 95
Internet Explorer 1 was only available on the Windows Plus CDRom which
was sold separately. The code came from the NCSA, and was issued under
license from a company called Spyglass another company set up by Andreessen,
amongst others.
However by the end of 1995 in his Pearl Harbor day speech (7th December)
Bill Gates placed the internet and Internet Explorer at the heart of
Microsoft's future plans. Microsoft's huge resources were concentrated into
making Internet Explorer the number one browser. By giving it away for free
(but not the source code), they gradually increased their market share. Each
company would try to outdo the other by adding new software features. The
main casualty was lack of standards. By the end of 1997 Netscape was losing
out, and the success of Internet Explorer would enable Microsoft to exploit
the commercial possibilities of the internet.
However Microsoft's attempts to dominate the internet were less successful
in other areas. Notably open-source Apache servers dominated the servers market
compared with Microsoft's Internet Information Server. The open source computer
programming language Perl (Practical Extraction and Replacement Language),
introduced by Larry Wall,
became a massive server side scripting language favourite.
JavaScript, a computer language based on C, introduced by Netscape, and used to
add interactivity an dynamic effects to websites has become the de facto standard client side
language. This is in preference to Microsoft's JScript or VBScript offerings.
JavaScript was introduced in December 1995 by Netscape Communications and is
now owned by Sun Microsystems, who also own the much larger Java language
pioneered by James Gosling.
JavaScript standards are now set by a vendor neutral body based in Switzerland called
the ECMA (European Computer Manufacturers Association). That is why it is now
called ECMAScript sometimes.
Why is the browser so important?
Well the answer lies in the fact that the computer desktop and computer browser
will eventually over the next few years become more or less the same thing.
Therefore whoever controls the browser market will effectively control the
desktop market. Despite the best efforts of people like Tim Berners-Lee to
encourage universal standards, commercial companies like to exploit any
advantage they have by tweaking their systems to make life awkward for rivals.
It is interesting to note that when Netscape Navigator was the premier browser
that Microsoft worked very closely with the W3 Consortium to stick to their
standards. Netscape meanwhile did not, and now the tables have turned it is
Microsoft who can now influence standards, but arguably it is the Mozilla
open-source browser that adheres closest to standards set by W3 now.
Eventually the browser could also replace the operating system on many
computers.
Quote
Anyone who slaps a 'this page is best viewed with Browser X' label on a
Web page appears to be yearning for the bad old days, before the Web...
-- Tim Berners-Lee
The point about browsers, which are software programs designed to view web pages,
is that they all render pages differently.
OPEN SOURCE
The success of the World Wide Web and GNU/Linux lead to many people
becoming interested in free software. To commercial companies the
phrase free software seemed threatening. To make the software more
appealing to these companies a sort of rebranding exercise occurred.
"Open Source" was the phrase used. This term was suggested by
Christine Peterson
at a meeting of free software enthusiasts on 7th April 1998. Those present at the meeting
included
Eric Raymond and
Tim O'Reilly.
Richard Stallman was significantly not invited
to this meeting. It is now apparent that his "fundamentalist" views were not welcomed by
all those at the meeting. The "Open-Source" movement differs from the "Free Software"
movement in that it views the release of source code as a practical benefit for
debugging and improving software, rather than as a social or ethical issue. It also has
few worries about adding proprietary add-ons which are not free or "open-source". In the
eyes of some the "open source" movement allows more freedom because it allows software
writers to decide what license they release any software. However this is not a view
shared by Richard Stallman. "The open source movement is Eric Raymond's attempt to redirect
the free software movement away from a focus on freedom".
Now, as other commercial operating systems flounder, for example
BeOS.
Bill Gates and his Microsoft empire look set to be challenged by the very things he claimed could never
happen - that people could write and document reliable software without being paid for it. In fact the
GNU/Linux operating system is remarkably
stable precisely because of the "peer review" that access to the source codes allows.
Next