The Incredible World of Open Source Software (OSS)
By John Abbott
I seem to create as much confusion as clarity when I start one of my Open Source
essays. I constantly search for the perfect analogy to differentiate between
software free of cost to own and Open Source which is free to adapt to my
system. There simply isn’t a single definition. The Open Source Initiative
and the Free Software Foundation cannot agree on the philosophy of some of the
licensing terminology used.
The term “open source” software is used by some people to mean more or less the
same category as free software. It is not exactly the same class of software:
they accept some licenses that we consider too restrictive, and there are free
software licenses they have not accepted. However, the differences in extension
of the category are small: nearly all free software is open source, and nearly
all open source software is free.
Open source doesn’t just mean access to the source code. The distribution terms
of open-source software must comply with the following criteria:
- Free Redistribution – The license shall not restrict any party from selling
or giving away the software as a component of an aggregate software distribution
containing programs from several different sources. The license shall not
require a royalty or other fee for such sale.
- Source Code – The program must include source code, and must allow for the
distribution of the program in source code format, as well as, in the program’s
compiled format. Where some form of a product is not distributed with source
code, there must be a well-publicized means of obtaining the source code for no
more than a reasonable reproduction cost or preferably, downloading via the
Internet without charge. The source code must be the preferred form in which a
programmer would modify the program. Deliberately obfuscated source code is not
allowed. In addition, intermediate source code formats, such as the output of a
preprocessor or translator, are not allowed.
- Derived Works – The license must allow modifications and derived works, and
must allow them to be distributed under the same terms as the license of the
original software.
- Integrity of The Author’s Source Code – The license may restrict source-code
from being distributed in modified form only if the license allows the
distribution of “patch files” with the source code for the purpose of modifying
the program at build time. The license must explicitly permit distribution of
software built from modified source code. The license may require derived works
to carry a different name or version number from the original software.
- No Discrimination Against Persons or Groups – The license must not
discriminate against any person or group of persons.
- No Discrimination Against Fields of Endeavor – The license must not restrict
anyone from making use of the program in a specific field of endeavor. For
example, it may not restrict the program from being used in a business, or from
being used for genetic research.
- Distribution of License – The rights attached to the program must apply to
all to whom the program is redistributed without the need for execution of an
additional license by those parties.
- License Must Not Be Specific to a Product – The rights attached to the
program must not depend on the program’s being part of a particular software
distribution. If the program is extracted from that distribution and used or
distributed within the terms of the program’s license, all parties to whom the
program is redistributed should have the same rights as those that are granted
in conjunction with the original software distribution.
- License Must Not Restrict Other Software – The license must not place
restrictions on other software that is distributed along with the licensed
software. For example, the license must not insist that all other programs
distributed on the same medium must be open-source software.
- License Must Be Technology-Neutral – No provision of the license may be
predicated on any individual technology or style of interface.
If you really want an excellent essay on the Open Source development model, then
you should read Eric S. Raymond’s “The Cathedral and the Bazaar: Working on
Linux and Open Source by an accidental revolutionary” There are 19 guidelines
listed in Raymond’s essay for creating good open source software:
- Every good work of software starts by scratching a developer’s personal
itch.
- Good programmers know what to write. Great ones know what to rewrite (and
reuse).
- Plan to throw one away; you will, anyhow.
- If you have the right attitude, interesting problems will find you.
- When you lose interest in a program, your last duty to it is to hand it off
to a competent successor.
- Treating your users as co-developers is your least-hassle route to rapid
code improvement and effective debugging.
- Release early. Release often. And listen to your
customers.
- Given a large enough beta-tester and co-developer base, almost every problem
will be characterized quickly and the fix obvious to someone.
- Smart data structures and dumb code works a lot better than the other way
around.
- If you treat your beta-testers as if they’re your most valuable resource,
they will respond by becoming your most valuable resource.
- The next best thing to having good ideas is recognizing good ideas from your
users. Sometimes the latter is better.
- Often, the most striking and innovative solutions come from realizing that
your concept of the problem was wrong.
- Perfection (in design) is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
- Any tool should be useful in the expected way, but a truly great tool lends
itself to uses you never expected.
- When writing gateway software of any kind, take pains to disturb the data
stream as little as possible —and never throw away information unless the
recipient forces you to!
- When your language is nowhere near Turing-complete,
syntactic sugar
can be your friend.
- A security system is only as secure as its secret. Beware of pseudo-secrets.
- To solve an interesting problem, start by finding a problem that is
interesting to you.
- Provided the development coordinator has a communications medium at least as
good as the Internet, and knows how to lead without coercion, many heads are
inevitably better than one.
So is the Open Source software as plentiful as Proprietary? Clearly yes! The
software manager for Ubuntu based Linux Mint (screen shot below) shows 30,245
FLOSS (Free Libra Open Source Software) programs just a pair of mouse clicks
away. There are at least 81 Amateur Radio oriented programs and 81 cross
platform programs available in that list.
The whole of the FLOSS number is probably not known but by the time you read
this, then the number I would publish would be wrong by a thousand or so.
The day of having specific programs with production only readable on that
program are fading quickly. I am usually met with a list of “must have”
programs before someone can migrate to Linux. It began with Office and some
locked down need. I have stunned a lot of business folks with the fact that not
only does FLOSS have a suite that can replicate all the files of the proprietary
suite but we now have at least four office suites that are able to do so – and
all open source and all free for the download.
In the early years of Linux there were charts on the Internet that showed
programs that were “sorta kinda like” their proprietary counterpart. Then they
began to list true alternatives. A Google search produced about 30 such sites.
http
://www.econsultant.com/microsoft-replacement-software/index.html and
http://www.linuxalt.com/
Are two of my favorites and among the more easily read.
Gaming isn’t my forte but if it’s yours, then there are Linux distributions that
are tailored to gamers. If you have a game you just can’t leave behind because
you don’t like the thousand or so that comes with Linux, then you might want to
look at some of the MS-DOS emulators that are available to Linux.
The more popular of these would be Wine and Wine Doors, which are Open Source or
some of the proprietary cross platform emulators that are for sale that run
almost any game created for MS-DOS or MS-Windows. I don’t generally recommend
emulators for Linux users because some of them are so good that they bring the
same vulnerability to malware that MS-Windows suffers – a problem I hope Windows
7 cures.
But please understand that when we talk about FOSS, we mean free as in freedom –
freedom to change or improve and then share. When you begin to understand the
real meaning of the term, then you will be drawn to it, as much as the rest of
us have been.
John Abbott
fewclues@gmail.com
John is a Google Ninja and is a member of the Bentsen Grove Resort PC UG, as
well as, the TOT Linux UG.