Within the next few years (possibly by the beginning of 2005), the standard de-facto operating system that nearly everyone uses, as well as much of the commodity software in widespread use, will be Open Source / Free Software.
Open Source Software: Software whose license permits anyone to use it for any reason, as well as access, modify, copy, and distribute modified copies of the source code. The official Open Source Definition can be found here. In general, the term Open Source is intended to appeal to the business community and refers to advantages that relate to the following:
- cost
- not locking your company into proprietary systems from which there is no easy escape, even if the company should require an escape due to support issues.
Free Software: Another term for Open Source software (definition here) that emphasizes the users' freedom to run, copy, distribute, study, change, and improve the software. More precisely, it refers to four kinds of freedom for the users of the software:
- The freedom to run the program, for any purpose (freedom 0).
- The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help your neighbor (freedom 2).
- The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.
In practice, the terms Open Source and Free Software are more or less interchangeable, although some argue about subtle differences.
Proprietary Software: Software whose license does not comply with the Open Source or Free Software definition. It is usually controlled by a single company, on which you are dependent for upgrades and fixes.
Commodity Software: Software which is widely useful for many, if not the majority of, computer users. Examples include office suites, web browsers, and mail programs.
Operating System: The basic piece of software that makes the computer function, including a kernel, input/output facilities, a graphical user interface, and a basic set of utilities.
It also means that one of two things will happen:
-- OR --
Most people see both scenarios as unlikely. However, due to the reasons outlined below, I firmly believe one of them will take place.
If people switch operating systems, it seems as though the most probable target is Linux, so I will focus specifically on that system in parts of this paper. Other possibilities include FreeBSD or an Open Source release of BeOS. (The latter is hypothetical, as BeOS has not yet been Open Sourced, however it would not surprise me if that happened.)
Regarding the second possibility, Microsoft is not a stupid company, although they are sometimes late to recognize trends and jump on them. They were at least a year late in really getting on the Internet bandwagon. They also have a large operating system revenue base that they will want to hang on to as long as possible. Therefore, they may well be late in responding to this trend.
Note that for the second possibility to happen,
there has to be a serious possibility of the
first happening in the near future. That is why I advocate
switching to Linux now if you can. If some people making that switch convinces
Microsoft to Open Source Windows, then the rest of the industry
will not need to make a switch.
The other major reason this change can and will occur is the
power of openness. In the consumer electronics world, VHS
triumphed over Beta tapes because VHS was an open standard and could
be used by anyone. Beta, even though better, required licenses to
be payed to Sony. In the PC world, remember IBM's Micro Channel
Archetecture (MCA)? It was IBM's attempt to regain advantages over
and control of the PC clone makers. It was certainly technically
superior to the ISA bus of the day, but it failed because no one
wanted to pay royalty fees to IBM for every computer that was produced.
Well, Microsoft currently has control over the de-facto operating
system, which gives it much power. Companies are increasingly
worried about this control, based on Microsoft's experiments with
software rentals, proprietary document formats, and restrictive
licenses for OEMs and the public.
Plus, current Open Source platforms have an advantage that VHS tapes
and the ISA architecture did not: They are in many ways technically
superior to Windows, the proprietary system.
Note that I combine two different types of advantages in this summary.
Those shown with the Gnu () relate more to advantages
related to Free Software, including freedom of price (which many would
say is the least of Free Software's advantages). Those shown
with Tux () relate more to the advantages of the
Linux operating system in technical terms.
Yes, it can happen!
Don't think it's possible? Remember that every industry occasionally
has a major shift. The computer industry has certainly had shifts. Companies
switched from mainframes to networked PCs when they become more cost
effective. They switched from DOS to Windows applications when they
discovered advantages in the Windows platform. When the Internet
became widespread, many processes changed. These shifts involved
changing the software people used and the way they thought about
their needs.
Part 2: Advantages & Benefits of a De-Facto Open Source Platform
The ways you'll most benefit from Open Source depend on who you are.
So here is a summary of how it will benefit different users.
Advantages for Home Users |
---|
The price of new computers will drop. This is due to
the elimination of the need for the computer manufacturer to pay
for a Windows license. The savings could be anywhere from
$50 to $300, depending on the version of Windows and the office
suite that would come with a traditional proprietary system.
Much more free commodity software will come standard with most PCs. Examples may include The GIMP, an excellent Open Source image editing program; the Mozilla browser; and OpenOffice, the Open Source version of Sun's StarOffice; and several quality Open Source games. You can freely copy software for friends without breaking the law! |
Advantages for Corporate I.T. Departments |
---|
Lower computer costs and more bundled commodity software
(see Home users)
The X Window System provides a standard way of running applications on one computer and displaying them on another. Plus, it is significantly better than many tools like pcAnywhere because it does not take complete control of the remote computer just to run an application on it. X also makes it relatively easy to set up cheap computers as smart terminals that will connect to a server on which applications will run, thereby making administration easier and lowering total hardware costs. License management will not be necessary. For some companies, keeping track of legal software licenses and verifying that everything stays legal is a full-time job. Open Source licenses give you permission to use them for any purpose on any number of computers, period. You really only need to worry about license management when modifying and/or distributing software outside your company, and even then it's fairly straightforward. There is peace of mind in knowing that your file formats are not completely controled by a certain software vendor. What if your data is in a proprietary software program, which uses a cryptic and undocumented file format in order to keep you locked in to products from that company, and you need to import it into a different application, but the proprietary program does not export the data? Worse, what if the vendor completely abandons the application and it will no longer be upgraded? You have the ability to go to any number of qualified consultants who are familiar with your software (or who can learn it). With proprietary software, only the vendor can fix problems. What if they go bankrupt? What if they refuse to fix it or simply charge more than you can pay? What if they abandon older versions of their software to force you to upgrade to newer versions? This is not just hypothetical. I have previously worked on a system that was to interface to a very old proprietary application. After several weeks of work, we realized that the proprietary application had a fatal flaw in the way it received input. The vendor wanted to sell their new version so refused to touch it, but upgrading was not an option. We eventually had to abandon the project, costing the client tens of thousands of dollars. That could have been avoided had they been using an Open Source application, because we would have had access to the code and could have fixed the problem. |
Advantages for System Administrators |
---|
Standard secure remote access tools like OpenSSH come in the box. Any computer with an Open Source operating system will almost certainly have it. Open Source products generally have great security, and when a flaw is found, it is usually fixed much sooner than flaws in proprietary software. Programmers at proprietary software companies usually work for paychecks, not for the sheer love of doing what they're doing, and they themselves don't necessarily want to use the code they're producing. In addition, they are the only ones who can look at the code for security holes and the only ones who can fix them. Open Source programmers, on the other hand, work on the software they work on because they want to use it. Also, any number of people can look for and fix security holes. There are projects out there whose main goal is to find and fix holes in Open Source Software products. The OpenBSD people are especially careful about security, and that system has had an incredibly low number of remote exploits. Open Source systems, especially UNIX-based ones, are incredibly flexible. Because they are built from blocks that have well-documented functionality and that work together, it is easy to replace pretty much any part of the system with anything else that has a similar interface. Components such as the shell, the login interface, the init process, the graphical interface, the mail program, and many other things have plug in replacements. You have a real choice. Most of these building blocks are themselves extremely configurable without touching any source code. However, if something does not quite meet your specific needs, you can take the source code to an existing part -- or start from scratch -- and write a component that will meet your needs, and it will plug in and work well with other system components! Many great scripting languages, such as Perl and Python, come standard with nearly every Open Source platform. You can write automation scripts in these languages and they'll run anywhere! |
Advantages for Computer System Vendors |
---|
As mentioned in the Home User section, an Open Source operating system
will allow you to reduce your per-unit cost by $50 to $300.
This cost savings can be passed on to consumers or pocketed
as profit.
Of course, as prices fall, demand goes up. Since the operating system price is a large percentage of today's complete system price (as much as 30% in some cases), demand for computers could increase significantly. It gives you incredible flexibility in the way you configure your desktop. As you know, Microsoft places severe limitations on how you can change the look and feel of the desktop you ship with your system, and limits what you can put on the desktop. Open Source operating systems, of course, have no such limitations. You can sell desktop icons on the systems you ship to anyone that will pay for them. You have the freedom to configure your computers in any possible way. You can personalize your computers far more than you could with a proprietary system. Or you could ship turnkey systems that are ready for a certain task right out of the box. |
Advantages for Commercial Software Developers |
---|
You will never again be at the mercy of an operating system vendor
who may want to compete with you some day!
You will have full knowledge of the API of an Open Source platform. There will be no hidden surprises, no undocumented "features". |
Granted, commercial software vendors do have some reason
to feel threatened by Open Source. Since commodity software will
be free, there will be somewhat fewer opportunities for profitable
software selling. However, most commodity software is currently
sold by a certain large software company anyway. And there will still
be plenty of market opportunities for vertical applications, which
are unique to a certain trade and would not likely have much
Open Source competition. I forcast that most vertical applications
will continue to be proprietary, and that is fine. There could also
be a significant market for extending Open Source commodity applications.
And of course all custom programming will continue to cost a nice
sum, so programmers will not be homeless. Even if you do feel
that Open Source could threaten your specific product, remember
that the level playing field benefits of a de-facto Open
Source platform still fully apply to you.
Everyone, that is, except Microsoft. The vast majority
of Microsoft's revenue comes from selling operating systems
and commodity software (Office). Another ramification of my
forcast is that their revenue will pretty much evaporate unless they
find a different business model. But frankly, after all
the bullying, deception, and anticompetitive practices they've
been involved in through the past 15 years, I for one won't
shed any tears when they get what's coming to them.
So it's no wonder that Microsoft is currently fighting
Open Source Software, particularly Linux and its General
Public License. Microsoft's executives have been spreading
some blatent lies about the effects of using Open Source Software.
And their P.R. department has published a
"GPL FAQ" (no longer available) which,
while containing bits of truth, is clearly designed to
scare you out of using software that can grant you all the
afformentioned benefits at Microsoft's expense. (Richard Stallman
of the Free Software Foundation has an
excellent response to MS's FAQ:
"The best way to see through the trickery of the questions is to turn each one around and ask the same question about a Microsoft proprietary package. You will find either that the same 'problem' exists, or that some other problem would have blocked you before you could even reach the situation."
)
I'll also say this: Microsoft can change. In the past
5 to 10 years, IBM has changed from a company that was as
dominance-minded as today's Microsoft into a company that
supports openness at its core. It has contributed much
to Open Source in recent years -- everything from code
such as a journaling filesystem to helping businesses
understand how Open Source can benefit them and providing
enterprise support for it. In short, IBM has become a
Very Cool Company. If Microsoft makes a similar
transformation, and they can, I'll be one of the first
to welcome them aboard, and I will once again use and
support their products.
You simply need to choose to use them!
The sooner you make this choice, the sooner you,
and others, will be able to enjoy all the afformentioned
advantages and benefits!
1. When developing custom in-house applications,
avoid programming languages and development tools
that do not support Open Source platforms. Things like
Visual Basic, which only works on Windows, should be avoided.
Fortunately, you have a good choice of languages that support
Windows and Linux. Here is a sampler:
Wrap up (and a note on Microsoft)
In summary, standardizing on an Open Source platform as the
de-facto standard operating system that everyone uses is a
win-win situation for everyone.
Part 3: What You Can Do
A Plea to Choose
Currently, proprietary software is king. When you buy a new
computer, or decide on a software package, it usually goes without
saying that you will be getting Windows and a proprietary software
package. That is the "default choice". However, it is not the only
choice! Open Source platforms such as Linux and a growing
set of Open Source applications are ready
today to take on many, if not most, tasks.
Practical Tips to Get Started
This is certainly not comprehensive, but here is a list of
things you can watch for that will help you move to an Open
Source platform. You can implement some of them now, even
if you're not ready to do a complete switch. The more of
these you implement now, the easier it will be to switch
to an Open Source platform later!
Language/toolkit | Notes |
---|---|
Borland's Delphi 6 and Kylix, using CLX | With Kylix, Borland has provided a great way to port Windows applications to Linux. It has nearly 100% source compatibility with its Windows cousin, Delphi 6, if you use the CLX instead of the older VCL. It is by far the easiest way to develop GUI applications in Linux. |
Java | While Java has its flaws, it is implemented fairly well in both Linux and Windows. With a bit of care, you should be able to get your applications running problem-free on either platform. |
Python scripting language with the wxPython GUI toolkit | Some will laugh at the thought of using a scripting language to develop a serious GUI application. Fact is, it makes a perfect amount of sense, and if your needs aren't super-demanding, this could actually be your best choice. It's a fully Open Source platform and has many dedicated users. Python has the nicest, cleanest language design I've seen and you could be up and running with it sooner than you think. |
2. Move network services to Open Source products. There's hardly any good excuse not to do this ASAP.
3. Evaluate office suites that support Open Source Platforms. Even better, evaluate Open Source office suites. OpenOffice is now available as Version 1.0, and it is a truly great office suite that deserves to be promoted. It has the vast majority of MS Office's features, and is 100% Open Source. If you want support, a manual, more fonts, and don't mind paying, check out StarOffice, which is based on the OpenOffice code. It is proprietary but it runs on Linux. Also consider AbiWord, a nice, small, fast, simple word processor that works in Windows and Linux. If it does everything you need, it may be a great choice (I've been using it a lot lately). If you can switch to Linux now, consider the Gnumeric spreadsheet. It is a very impressive program. Gnumeric and AbiWord can import most Excel and Word files quite well. KOffice, a nice suite of applications, is in heavy development but is maturing quickly and includes a decent word processor, spreadsheet, presentation graphics, flowcharting, and a vector graphics editor.
4. Use products like VMWare, Win4Lin, or even Wine to run
your Windows applications on top of Linux. It's normal to have
certain Windows applications that you need that are unlikely to be
ported to Linux any time soon. With these products, you can run
the Windows software you need on top of Linux. Prefer
Wine, as it
is the only truly open solution. It is a free implementation of
Windows, is itself Open Source, and does not require any licenses
to Microsoft or anyone else. The other two products are proprietary
and require legal licenses of Windows. The problem is that
many (most?) applications do not yet work well under Wine. (But many
do, so give it a try!)
Appendices
Timeline
The following is just a possible timeline of how soon things could happen
regarding my Main Forcast.
When | What |
---|---|
Second half, 2002 |
GCC 3.x, standard C++ development libraries, and other
libraries will be more standardized in Linux distributions.
This will simplify distributing commercial software for Linux.
This is thanks to the Linux Standard Base and the stable (finally!)
C++ ABI which GCC 3.1 is introducing.
Also, many new end-user applications developed with Kylix will hit the market. |
First half, 2003 |
By now, Linux and/or other Open Source platforms will easily
have everything most business and home users need. There will be
more than one full featured, easy to use Open Source office suite. It will
be clear to all that Open Source is here to stay.
The Open Source desktop environments will have matured another generation. Microsoft could Open Source Windows as early as now (but probably not sooner). Doing that around now could be their last chance to prevent a mass migration to Linux or another Open Source platform. |
First half, 2005 |
Nearly every new computer will be sold with an Open Source
operating system. Of course, many will still use legacy systems,
but they too will switch to Open Source platforms the next
time they make a large change to their technology infrastructure.
Open Source databases will give Oracle serious competition. |