[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
The Open Operating System Initiative (OOSI): A proposed counter-strategy to Microsoft Part 1
Hello. I write about computers for a living, and I
regret that I heard about this conference too late to attend. I have a
proposal for how to counter Microsoft that is described in the included
paper. This paper is below in text format and attached as an HTML file.
In the HTML version, the outline is a group of hyperlinks to the
content.
The paper is part 1 of a proposal for how to counter the emerging
Microsoft hegemony. It analyses the situation and the standard responses
to it (Java and the network computer) and proposes another approach.
This approach is termed the Open Operating System Initiative (OOSI).
Although the paper may seem long, I've tried to be as concise as
possible; it covers a lot of ground.
Please forward this widely among the conference participants. I hope and
believe I have something constructive to contribute to this discussion.
*******************************************************************
The Open Operating System Initiative (OOSI): How to Undermine the
Emerging Microsoft Monopoly
Outline:
Summary
Why Microsoft is Gaining a General Sofware Monopoly
Why Neither Java nor the Network Computer are Adequate Responses
How to Counter the Windows Hegemony
Summary:
This paper offers a brief analysis of why Microsoft is gaining a
general software monopoly and proposes a counter-strategy. The key point
of the analysis is that, above and beyond any unfair competitive
practices, market forces are driving the industry towards a hegemonic
OS, and Windows is positioned to be that OS. The two prevailing
strategies for countering this state of affairs - Java and the Network
Computer - are examined and found insufficient to the task.
The counter-strategy rests on the following premises:
The OS cannot be made irrelevant in the time frame
necessary to
counter Microsoft. Therefore, a counter-strategy must show the courage
not to shrink from challenging Microsoft on its own turf: the OS.
Open systems generally defeat proprietary ones because
improvements
can come from any source.
Therefore, the proposed solution is that the industry converge
on a
public domain OS, as such would constitute an "open system" to whose
improvement all could contribute, as opposed to Windows, which can only
be improved by Microsoft. The industry should select a public domain
Unix from the several available versions and support it. This Unix
(which we shall call FreeUnix, as a generic term covering Linux, the
various BSD's, etc.) can be made more competitive to Windows by
incorporating various enhancements. In addition to the obvious ones, we
proprose that it should incorporate a web server and have a native Java
compiler. Java's chief obstacle to general usage is the serious
inefficiencies introduced by going through a virtual machine.
Who is going to spend the money to make these enhancements to
software
from whose sale they cannot directly profit? Improvements can be sold,
but they should retain compatibility with the basic free OS. Discussion
of what should be sold and what free is included.
Other Unix vendors should emulate FreeUnix, so it will have a
user-base
to challenge Windows. Emulating an existing system is easier than
creating and implementing a standard.
Why Microsoft is Gaining a General Sofware Monopoly
While Microsoft may be guilty of noncompetitive practices, let us admit
that the most important reason they are developing an OS monopoly is
that the economics of the industry are dictating that someone will get
an OS monopoly, and they are the company that has best positioned
themselves to do so. There are two fundamental forces that are driving
the software industry towards an OS monopoly:
The utility for users and developers of a standard OS.
The fact that in software the marginal cost of production is
insignificant.
The first factor is generally understood in the industry; the second is
somewhat less so, and therefore merits a brief digression.
Digression: The Near Absolute Economy of Scale in Information Products
In traditional industry, economy of scale occurs when the per unit costs
of production go down as the quantity produced increases. For example,
an auto manufacturer may be able to produce 1 million cars at $3500
each, but bring that down to $3000 each if he manufactures two million.
Notice, however, that it still costs him greatly more in abolute terms
to produce two million cars (1 million * $3500 = $3,500,000,00 vs. 2
million * $3000 = $6,000,000,00) Even so, economies of scale of this
sort have created oligopolies and monopolies on the national level in
many industries.
Despite the Tofflerite rhetoric of the eighties, which emphasized only
how easy it was to enter the software market, the economies of scale
that operate in software are vastly greater since the cost of production
does not increase (beyond the trivial expense of printing CDs or
maintaining a Web site) with the units sold. For example, suppose two
software manufacturers spend $10 million each developing competing
software products. Manufacturer A gets $12 million in revenue and
Manufacturer B gets $14 million. Manufacturer B only sold 17% more
product, but he made twice as much profit. His stock and investment
situation will reflect this, which means that next year, the two
competitors will not have equal amounts to spend developing products,
and the differential will probably exceed the actual differential in
sales, approximating instead the vastly greater differential in profit.
In such a situation, whoever pulls ahead of the pack is likely to
marginalize, it not wipe out, all other players. This is arguably
exactly what we have been seeing in the software industry. Increasingly,
there is a hegemonic player in each niche: Oracle in database, Adobe in
Desktop Publishing, AutoDesk in CAD, Macromedia in multimedia authoring,
etc.
When hegemonic players are knocked off their perches, it is chiefly when
a larger hegemonic player moves into their niche. Microsoft is both the
largest player and the one with the most important niche (the OS).
Hence, Microsoft was able to move both WordPerfect and Lotus to the
sidelines, even though both had previously been dominant in their
niches.
This, of course, is not to say that creativity, motivation, quality of
management, corporate culture, and various other factors do not come
into play. They are all very important, but they are all for sale on the
labor market, and since all companies are bidding in the same labor
market, they tend to follow the money.
End of Digression
Many in the industry have quietly realized that the market is driving
towards a Microsoft OS monopoly, and therefore the accepted wisdom is
that there is no way to break the MS stranglehold on the desktop, so
what competitors must do is make that stranglehold less vital. On the
contrary, we submit that there is no way in the foreseeable future to
make the OS irrelevant and that therefore we cannot defeat Microsoft
with the purely defensive strategy that concedes them the OS. How to
resolve this conundrum?
The Proposed Approaches: Java and the Network Computer
The two main counters to Microsoft's control that have recently been
touted are Java and the Network Computer. While they are fundamentally
independent, these two technologies are highly complementary and are
being promoted by some of the same players. While both have their
virtues, it does not appear that they can retain and expand the openness
of the software industry to anything like the degree required. This is
particularly true given the time frame within which the counter to
Microsoft must be established - perhaps two years, at the most.
In the case of Java, the basic problems are these:
The language is not going to replace C/C++ as the standard
development language anytime soon, because it has to go through a
virtual machine, which greatly hurts performance. Professional
developers are always concerned with performance. While it is true that
in a market of several OS's of approximately equal projected market
share, developers might be willing to sacrifice performance for
portability, this is not necessary if the bulk, and soon perhaps the
entirety, of the market is a single OS.
Java has a number of other desirable features besides
portabillity,
of course. Among the most important are ease of development and
suitability for networked applications. The is no evident functionality
that Java has, however, that Microsoft cannot duplicate in one way or
another, given their resources and their existing tools.
This is why Java does not truly make the OS irrelevant: there is nothing
it can do that some combination of OS-based tools cannot do, and the
OS-based tools will be able to do it with much better performance. For
those developing for PC's, this performance advantage will tend to
outweigh the advantage of being portable across Mac, OS/2, and the
various PC Unix systems, as Microsoft's market share is much larger than
all of these combined. As NT advances into the territory where Unix
currently holds sway, as is happening, the same will apply there.
In the case of the network computer, the basic problem is that all it
does is move the important action from the PC onto a server. If that
server is running NT, what have you gained? It is true that the
specifications for network computer architectures, as from DEC and
Oracle, tend to interpose an OS-independent application server layer.
But here again, the performance hit (and the development overhead) of
that extra layer undermine the benefits. NT is perfectly well-suited to
be a server for network computers and can do so far more efficiently
than any cross-OS solution is likely to achieve. Again, the OS is far
from irrelevant.
Microsoft may not be emphasizing the network computer as much as some
others because they are further ahead in the standalone PC game. But
they are a highly adaptable company and have technology well-suited to
play the network computer game. Who else can offer an OS that operates
much the same on server or client, but is well optimized for each role,
a high-quality Web Server, a protocol for object interaction over
networks (Active-X), a full-featured SQL database (SQL Server), a
high-quality suite of tools for standalone, Intranet or Internet
application development (Front Page, Visual Basic and C++, etc.), and
the industry-standard software suite for common business needs
(Microsoft Office)? Other companies can top on some scores, but
Microsoft clearly has the most comprehensive solution and the greatest
promise that all components will integrate, since all are from the same
source. And if it controls the OS, nobody will be able to touch it for
performance, which is even more of an issue for network than for
standalone computing. This is not a company that is going to be defeated
by network computing.
How to Counter the Windows Hegemony: Take the Battle to Microsoft's Home
Turf
We therefore submit that the software industry has been too cowardly in
trying to counter Microsoft. The battle to open the software industry
must be taken to Microsoft's home turf: the OS.
No doubt many industry players would love to do this: IBM, Sun, HP, DEC,
SGI, Apple, and Be, among others, all have OS's to sell. While some of
these are established on other, basically proprietary, platforms, it is
hard to see how any can compete with Windows on Intel or cross-platform.
And Microsoft is leveraging the software and user base of its Intel
hegemony to move onto the other platforms.
Let's start by admitting this: no one else is going to approach
Microsoft sales on Intel in the short run. Therefore, any competing OS
would have to reap a much greater per-unit profit to generate enough
revenue to stay competitive. But it is not clear that any OS has enough
to offer a large number of users to get away with a significantly higher
price tag than Windows, which is usually bundled with the computer and
thus appears free. This is what has made the industry despair of
challenging Microsoft on the desktop.
What can compete with Windows is an OS that actually is free. Yes, we
are proposing the public domain Unix model, ala Linux and the various
BSD's (hereafter FreeUnix), but with considerable enhancements to its
practicality. First, let's outline some of the advantages for an average
user of a free, public domain OS over a proprietary one, keeping in mind
that the OS under discussion is Unix, arguably the most mature and
widely deployed (in the sense of a variety of platforms) OS we have.
There are two, closely related, problems with establishing any OS:
getting a large base of computers that run it and getting a large base
of applications that run on it. Consider the following:
An OS whose source code is in the public domain is an open
system.
Anyone who sees a way to improve it can do so, either giving the result
away or charging for it. This is probably the most important factor, as
this is how open systems generally beat out proprietary ones. Consider
the Internet: prior to its widespread acceptance, there were several
attempts to create something similar as proprietary systems: CompuServe,
Prodigy, the Microsoft Network, the WELL, America Online, and eWorld,
among others. Some of these had some success, but all that remain viable
have become adjuncts to the Internet. Something like the Web would not
have emerged on CompuServe unless Berners-Lee happened to work there,
but, since the Internet was a public entity whose inner workings were
public knowledge, he could go off and create HTTP. Being public, the
Internet can draw on a well of creativity for its development that no
company, even Microsoft, can rival. In fact, it is heartening that the
Microsoft Network was such a spectacular failure, and it points to where
their true vulnerability lies.
It is any software developer's long-term interest not to be in
the
business of supplying software that runs exclusively on Windows. Any
software developer who is writing for Windows is frankly a fool if he
does not look at Microsoft as a potentially deadly long-term enemy -
even if he is currently a Microsoft partner (look at IBM and Sybase).
Wordperfect and Lotus established their software niches on Microsoft's
platforms and were moved right out of the way when MS decided it wanted
their action. Can Adobe be far behind as they move more to Windows
(regardless of whether Mac survives)?
A free OS can be bundled with any application that runs on it.
This
means applications written for that OS need not be sold only to people
who already use the OS. This is not true of any proprietary OS, all of
which have to be judged by developers in terms of the installed base
they can offer. It is true that this means the user will have to install
another OS and probably reboot when they want to use applications on
that OS. This feature in itself would not suffice to establish the OS
because of this inconvenience. However, as soon as advantages to the
other OS become visible, this inconvenience becomes minor. We will
suggest some OS improvements below, and some marketing strategies in
Part 2 of this paper.
People love choice, even when it's just between Coke and Pepsi.
The
notion of a single company being the only choice is deeply offensive to
many, but a single OS that is public-domain and can be customized by
anyone is vastly less threatening. It becomes simple infrastructure like
the Internet. No one is currently clamoring for a competitor to the
Internet. Infrastructure generally works best as a public project.
In the cutthroat competition of PC sales, a box with a free OS
can be
sold cheaper than a Windows box. This alone will not make the
difference, but it is a selling point. It also means Windows users need
make no investment to investigate the other side, or to play both sides,
of the fence.
Although right now it may be easier to develop for Windows than
Unix,
developing for an OS in the public domain means you can view the source
itself, so you really know how the OS works and can do a much better
job. It also means there will be no hidden "functionality" of the sort
for which Microsoft is famous. On the other hand, this situation creates
a market for people to provide usability and programming tools for Unix.
They are already many such on various versions on Unix, so, in part,
this is simply a porting problem.
OK, given all this, why hasn't FreeUnix conquered the world already?
There are a variety of reasons, among those commonly cited are:
Most software developers have their eyes on the vastly larger
Windows
market. While obviously this is not a market that can be ignored, we
suggest such developers ask themselves whether they would like to be
competing with Microsoft exclusively on its platform in a few years.
Being nonprofit, FreeUnix is not professionally marketed.
Hence most
users have not heard of it.
Being Unix, FreeUnix is not as easy to use as Windows.
While all this is true, and we will respond to it all shortly, we think
a greater reason is a prejudice on the part of those who develop
software for sale against software that is given away free. There is
the notion that the latter is by definition an amateur enterprise, and
that the result must therefore be "amateurish". The underlying feeling
is that if free software is held to be valuable, it could call into
question why other valuable software merits payment. Without getting
into too detailed an analysis of the merit or causes of this prejudice
in general, we submit that, in this case, it is suicidal and therefore
must be abandoned.
Another aspect of the situation to consider is that most major OS's
below the mainframe level are now variants of Unix. Of course, Windows
is not; that is the point. Also, OS/2 is not, but IBM does have a mature
version of Unix in its arsernal and the resources to port a lot of its
existing OS/2 technology over to it. Other than that, Rhapsody, the
next Mac OS, is Unix, as are OS's used by Sun, SGI, HP, DEC, Novell, and
IBM. Any application that can function across a large number of these
systems has a huge and generally affluent base to sell to. It is a base
that could soon be lost to NT, but not if it has better applications
(including programming and usability tools).
All versions of Unix are not, of course, the same, and application
portability (we're talking source code portability, of course) is not an
easy problem. The industry has attempted to standardize Unix before and
failed. True, paper standards exist, but application portability does
not. Without getting into details and recriminations, we think the basic
reason for the failure was the complexity of getting a large number of
vendors to collaborate on a standard and implement it. Therefore, we
say, skip all that. Pick a freeware Unix and emulate it. Let it be the
standard to which everyone writes. This creates a well-defined and
limited goal that can be obtained relatively quickly. In fact, only a
freeware Unix from which no one can directly get an advantage could fill
this role without creating a political struggle of the sort that has
plagued attempts to standardize Unix in the past.
In other words, we propose that the Unix players accept FreeUnix as a
least common denominator (LCD) standard and adjust their systems to run
applications developed for Linux or one of the BSD's (which of these
systems would best suit the purpose is beyond our scope here). Of
course, their systems could also run private applications. The advantage
of this is that there would be one platform besides Windows with a large
enough base to be worth developing for. And it would be in the interest
of every company not looking forward to a future as Microsoft's next
lunch to develop for it and promote it.
This is not to say companies have to sacrifice the strengths they have
built up in their own Unix systems just for the sake of a least common
denominator standard. Sun is still driving Java development and has a
large application base that possibly could be ported, SGI has top-flight
graphics capabilities, and Rhapsody has a superb application development
framework. The Unix base is public domain, but companies can still add
value. But now Microsoft has to compete with a free OS that is actually
much more mature than NT, and that people can trust as they cannot trust
Microsoft.
FreeUnix will only catch on in a big way, however, if the following
occur:
Major Software vendors show its credibility by porting to it.
Some,
like Netscape, have ported to Linux. But we need IBM, Oracle, and Adobe
to throw their weight behind FreeUnix as well. This requires looking
beyond the immediate balance sheet. Business users will take FreeUnix
seriously if IBM and Oracle do. And, in fact, DEC and Oracle are using
freeware Unix for the client-side OS in their network computer systems,
which shows that the majors can take seriously and rely on a freeware
Unix platform. This is a start, but the standalone and server
applications need to move over as well.
A consortium needs to form to support the chosen FreeUnix with
the
following services:
Funding to make improvements to the OS that will remain
in the public
domain.
Professional marketing to get the word out.
A standards certification process supported by a test
suite. The
purpose of this is to certify that customizations made to the OS do not
create incompatibilities.
The OS needs to start on Intel, but should not stay there. Other
systems should either port or emulate it. Linux, of course, already has
several such ports.
Major improvements need to be made to the OS itself. Not all of
these
can be expected to come from a non-profit industry consortium. We
address these under How to Improve FreeUnix below.
How to Improve FreeUnix
There are some improvements to FreeUnix that would greatly help it
against Microsoft. Among these are the following:
A Built-In Web Server
The OS should be extended to include an HTTPD that can invoke
applications through an open API, such as the NSAPI. This has the
following advantages:
One of the great problems in generic Unix applications
is easily
creating a user interface as attractive and usable as you can on Mac or
Windows. With a built-in web server, many applications could have a
series of Web pages, possibly including Java applets and other embedded
technology, as the user interface. This gives them automatic access to
the state of the art in user-interface technology, because the Web is
where all the development is taking place. Also, dynamic Web pages are
comparatively easy to generate.
Developers writing to FreeUnix need not decide whether
they want to
write a standalone or an Internet/Intranet application. They can have
their cake and eat it too. An application runs behind the OS web server
and is interfaced to through a Web browser. Whether that browser is on
the same machine and communicating through a pipe or on a different one
and communicating through TCP/IP can be transparent to the application,
save where it must be specifically addressed for security reasons.
How can we argue that a web server belongs in the OS when we do
not
agree with Microsoft that a browser does? The basic purpose of an OS is
to be a platform for applications, and, because of the second item
above, incorporating a web server significantly enhances the
functionality of the OS for this purpose. It is not clear that a
built-in browser does this.
Native Java Support
A compiler should be made available that compiles Java source to
FreeUnix executable rather than bytecode. If this happens, Java
applications can have a platform where they will be more or less as
efficient as C and still be portable to other platforms. Since Java has
been shown to cut development periods by something like 2/3's compared
to C, this would create a serious problem for Microsoft. I, as a
developer, could write a program in Java that would run as quickly (or
in the ballpark, anyway) as a C program, but get it out the door much
more quickly. I don't have to worry about the fact that I'm not writing
for Windows, since I can carry the OS with me, i.e., I can include it on
the CD. And the app will run on Windows, if I cross-compile to
bytecode, just not nearly as efficiently (which will make Windows look
bad). Why, then, would I develop for Windows?
Java: It's not just for network computers anymore
This brings up a problem with how Java has been positioned. It
is our
opinion that Java is being held back by the fact that most of its
backers, including Sun, are in love with the network computer. Java is
well-suited to network computing, but it also would be a much better
standalone development language than C is, if it could overcome its
performance problems. Time is of the essence, and establishing a new
software standard can happen much more quickly than a new hardware
standard, much less a whole new hardware infrastructure, which is what
the network computer entails. Give Java a free native platform, and
there will be a huge body of professional-level applications for it
within six months. It is hard to know how far the network computer will
go and how quickly, but it will not match the speed that Java can
muster. Java on a free (initially) Pentium-based OS requires no
investment at all from users and offers great ground floor opportunities
for developers. In all likelihood, Microsoft will take over the server
before the network computer displaces the PC much. Ignoring Java's
potential to displace C on standalone applications for the sake of
network computers that will take time to prove themselves is foolish.
To harmonize this idea with the preceding, the web server built
into
FreeUnix should have two special features:
Its API should call out to Java as well as to C. In
fact, Java is
probably a higher priority.
When the browser is using the local server, or when
security has been
configured to permit it, the web server should be able to redirect
applet calls to directly execute local compiled Java apps when such are
available. This is chiefly an optimization. Ideally, the browser itself
would do this.
Sun might think a better version of this idea for them would be
to
simply release a JavaOS variant of Solaris for Pentium and Sun, perhaps
even giving it away free or very cheaply. While this incorporates some
of the virtues of what I propose, it does not give us the major
advantage of an OS that is an open system; it just sets one proprietary
system against another, and Microsoft is well ahead in that race.
Object-Oriented
A natural complement to incorporating Java is to make FreeUnix
object
oriented, probably using a CORBA-based protocol. In addition to the
usual benefits of object orientation, this would make it very easy for
others to modify or replace parts of the OS without destabilizing the
whole. Such modifications could be given away or sold; only the core LCD
Unix with which everyone must stay compatible has to remain in the
public domain.
Multimedia-Friendly
One area where FreeUnix currently needs much improvement is
multimedia.
The open architecture comes in very handy here. SGI or Apple(Next) could
export some of their Unix-based graphics and video expertise, Creative
Labs, Turtle Beach, or Digidesign could contribute sound drivers, and
new players no one has heard of could contribute things and get in on
the ground floor. None of this needs to be public domain, provided it
supplements and does not interfere with the basic functionality.
Enhanced Usability
Here again, a task that could be daunting for a single company
is an
opportunity for anyone with an appropriate idea. Actually, it seems the
most difficult part of usability is not implementation but design. Mac
and, to a lesser degree, Windows have already shown a great deal of how
the design should proceed. If you have a better idea, implement it, but
imitating what people are used to will work and can be done fairly
quickly.
End of Part 1
Part 2, coming soon, will elaborate on the Open OS Initiative, and
suggest marketing strategies, including sample advertising content.
Copyright 1997 Martin Gruber
The Open Operating System Initistive (OOSI): How to Undermine the Emerging
Microsoft Monopoly
Outline:
* Summary
* Why Microsoft is Gaining a General Sofware Monopoly
* Why Neither Java nor the Network Computer are Adequate Responses
* How to Counter the Windows Hegemony
Summary
This paper offers a brief analysis of why Microsoft is gaining a general
software monopoly and proposes a counter-strategy. The key point of the
analysis is that, above and beyond any unfair competitive practices, market
forces are driving the industry towards a hegemonic OS, and Windows is
positioned to be that OS. The two prevailing strategies for countering this
state of affairs - Java and the Network Computer - are examined and found
insufficient to the task.
The counter-strategy rests on the following premises:
* The OS cannot be made irrelevant in the time frame necessary to counter
Microsoft. Therefore, a counter-strategy must show the courage not to
shrink from challenging Microsoft on its own turf: the OS.
* Open systems generally defeat proprietary ones because improvements can
come from any source.
Therefore, the proposed solution is that the industry converge on a public
domain OS, as such would constitute an "open system" to whose improvement
all could contribute, as opposed to Windows, which can only be improved by
Microsoft. The industry should select a public domain Unix from the several
available versions and support it. This Unix (which we shall call FreeUnix,
as a generic term covering Linux, the various BSD's, etc.) can be made more
competitive to Windows by incorporating various enhancements. In addition to
the obvious ones, we proprose that it should incorporate a web server and
have a native Java compiler.
Who is going to spend the money to make these enhancements to software from
whose sale they cannot directly profit? Improvements can be sold, but they
should retain compatibility with the basic free OS. Discussion of what
should be sold and what free is included.
Other Unix vendors should emulate FreeUnix, so it will have a user-base to
challenge Windows. Emulating an existing system is easier than creating and
implementing a standard.
Why Microsoft is Gaining a General Sofware Monopoly
While Microsoft may be guilty of noncompetitive practices, let us admit that
the most important reason they are developing an OS monopoly is that the
economics of the industry are dictating that someone will get an OS
monopoly, and they are the company that has best positioned themselves to do
so. There are two fundamental forces that are driving the software industry
towards an OS monopoly:
* The utility for users and developers of a standard OS.
* The fact that in software the marginal cost of production is
insignificant.
The first factor is generally understood in the industry; the second is
somewhat less so, and therefore merits a brief digression.
Digression: The Near Absolute Economy of Scale in Information Products
In traditional industry, economy of scale occurs when the per unit costs of
production go down as the quantity produced increases. For example, an auto
manufacturer may be able to produce 1 million cars at $3500 each, but bring
that down to $3000 each if he manufactures two million. Notice, however,
that it still costs him greatly more in absolute terms to produce two
million cars (1 million * $3500 = $3,500,000,00 vs. 2 million * $3000 =
$6,000,000,00) Even so, economies of scale of this sort have created
oligopolies and monopolies on the national level in many industries.
Despite the Tofflerite rhetoric of the eighties, which emphasized only how
easy it was to enter the software market, the economies of scale that
operate in software are vastly greater since the cost of production does not
increase (beyond the trivial expense of printing CDs or maintaining a Web
site) with the units sold. For example, suppose two software manufacturers
spend $10 million each developing competing software products. Manufacturer
A gets $12 million in revenue and Manufacturer B gets $14 million.
Manufacturer B only sold 17% more product, but he made twice as much profit.
His stock and investment situation will reflect this, which means that next
year, the two competitors will not have equal amounts to spend developing
products, and the differential will probably exceed the actual differential
in sales, approximating instead the vastly greater differential in profit.
In such a situation, whoever pulls ahead of the pack is likely to
marginalize, it not wipe out, all other players. This is arguably exactly
what we have been seeing in the software industry. Increasingly, there is a
hegemonic player in each niche: Oracle in database, Adobe in Desktop
Publishing, AutoDesk in CAD, Macromedia in multimedia authoring, etc.
When hegemonic players are knocked off their perches, it is chiefly when a
larger hegemonic player moves into their niche. Microsoft is both the
largest player and the one with the most important niche (the OS). Hence,
Microsoft was able to move both WordPerfect and Lotus to the sidelines, even
though both had previously been dominant in their niches.
This, of course, is not to say that creativity, motivation, quality of
management, corporate culture, and various other factors do not come into
play. They are all very important, but they are all for sale on the labor
market, and since all companies are bidding in the same labor market, they
tend to follow the money.
End of Digression
Many in the industry have quietly realized that the market is driving
towards a Microsoft OS monopoly, and therefore the accepted wisdom is that
there is no way to break the MS stranglehold on the desktop, so what
competitors must do is make that stranglehold less vital. On the contrary,
we submit that there is no way in the foreseeable future to make the OS
irrelevant and that therefore we cannot defeat Microsoft with the purely
defensive strategy that concedes them the OS. How to resolve this conundrum?
The Proposed Approaches: Java and the Network Computer
The two main counters to Microsoft's control that have recently been touted
are Java and the Network Computer. While they are fundamentally independent,
these two technologies are highly complementary and are being promoted by
some of the same players. While both have their virtues, it does not appear
that they can retain and expand the openness of the software industry to
anything like the degree required. This is particularly true given the time
frame within which the counter to Microsoft must be established - perhaps
two years, at the most.
In the case of Java, the basic problems are these:
* The language is not going to replace C/C++ as the standard development
language anytime soon, because it has to go through a virtual machine,
which greatly hurts performance. Professional developers are always
concerned with performance. While it is true that in a market of
several OS's of approximately equal projected market share, developers
might be willing to sacrifice performance for portability, this is not
necessary if the bulk, and soon perhaps the entirety, of the market is
a single OS.
* Java has a number of other desirable features besides portabillity, of
course. Among the most important are ease of development and
suitability for networked applications. The is no evident functionality
that Java has, however, that Microsoft cannot duplicate in one way or
another, given their resources and their existing tools.
This is why Java does not truly make the OS irrelevant: there is nothing it
can do that some combination of OS-based tools cannot do, and the OS-based
tools will be able to do it with much better performance. For those
developing for PC's, this performance advantage will tend to outweigh the
advantage of being portable across Mac, OS/2, and the various PC Unix
systems, as Microsoft's market share is much larger than all of these
combined. As NT advances into the territory where Unix currently holds sway,
as is happening, the same will apply there.
In the case of the network computer, the basic problem is that all it does
is move the important action from the PC onto a server. If that server is
running NT, what have you gained? It is true that the specifications for
network computer architectures, as from DEC and Oracle, tend to interpose an
OS-independent application server layer. But here again, the performance hit
(and the development overhead) of that extra layer undermine the benefits.
NT is perfectly well-suited to be a server for network computers and can do
so far more efficiently than any cross-OS solution is likely to achieve.
Again, the OS is far from irrelevant.
Microsoft may not be emphasizing the network computer as much as some others
because they are further ahead in the standalone PC game. But they are a
highly adaptable company and have technology well-suited to play the network
computer game. Who else can offer an OS that operates much the same on
server or client, but is well optimized for each role, a high-quality Web
Server, a protocol for object interaction over networks (Active-X), a
full-featured SQL database (SQL Server), a high-quality suite of tools for
standalone, Intranet or Internet application development (Front Page, Visual
Basic and C++, etc.), and the industry-standard software suite for common
business needs (Microsoft Office)? Other companies can top on some scores,
but Microsoft clearly has the most comprehensive solution and the greatest
promise that all components will integrate, since all are from the same
source. And if it controls the OS, nobody will be able to touch it for
performance, which is even more of an issue for network than for standalone
computing. This is not a company that is going to be defeated by network
computing.
How to Counter the Windows Hegemony: Take the Battle to Microsoft's Home
Turf
We therefore submit that the software industry has been too cowardly in
trying to counter Microsoft. The battle to open the software industry must
be taken to Microsoft's home turf: the OS.
No doubt many industry players would love to do this: IBM, Sun, HP, DEC,
SGI, Apple, and Be, among others, all have OS's to sell. While some of these
are established on other, basically proprietary, platforms, it is hard to
see how any can compete with Windows on Intel or cross-platform. And
Microsoft is leveraging the software and user base of its Intel hegemony to
move onto the other platforms.
Let's start by admitting this: no one else is going to approach Microsoft
sales on Intel in the short run. Therefore, any competing OS would have to
reap a much greater per-unit profit to generate enough revenue to stay
competitive. But it is not clear that any OS has enough to offer a large
number of users to get away with a significantly higher price tag than
Windows, which is usually bundled with the computer and thus appears free.
This is what has made the industry despair of challenging Microsoft on the
desktop.
What can compete with Windows is an OS that actually is free. Yes, we are
proposing the public domain Unix model, ala Linux and the various BSD's
(hereafter FreeUnix), but with considerable enhancements to its
practicality. First, let's outline some of the advantages for an average
user of a free, public domain OS over a proprietary one, keeping in mind
that the OS under discussion is Unix, arguably the most mature and widely
deployed (in the sense of a variety of platforms) OS we have. There are two,
closely related, problems with establishing any OS: getting a large base of
computers that run it and getting a large base of applications that run on
it. Consider the following:
* An OS whose source code is in the public domain is an open system.
Anyone who sees a way to improve it can do so, either giving the result
away or charging for it. This is probably the most important factor, as
this is how open systems generally beat out proprietary ones. Consider
the Internet: prior to its widespread acceptance, there were several
attempts to create something similar as proprietary systems:
CompuServe, Prodigy, the Microsoft Network, the WELL, America Online,
and eWorld, among others. Some of these had some success, but all that
remain viable have become adjuncts to the Internet. Something like the
Web would not have emerged on CompuServe unless Berners-Lee happened to
work there, but, since the Internet was a public entity whose inner
workings were public knowledge, he could go off and create HTTP. Being
public, the Internet can draw on a well of creativity for its
development that no company, even Microsoft, can rival. In fact, it is
heartening that the Microsoft Network was such a spectacular failure,
and it points to where their true vulnerability lies.
* It is any software developer's long-term interest not to be in the
business of supplying software that runs exclusively on Windows. Any
software developer who is writing for Windows is frankly a fool if he
does not look at Microsoft as a potentially deadly long-term enemy -
even if he is currently a Microsoft partner (look at IBM and Sybase).
Wordperfect and Lotus established their software niches on Microsoft's
platforms and were moved right out of the way when MS decided it wanted
their action. Can Adobe be far behind as they move more to Windows
(regardless of whether Mac survives)?
* A free OS can be bundled with any application that runs on it. This
means applications written for that OS need not be sold only to people
who already use the OS. This is not true of any proprietary OS, all of
which have to be judged by developers in terms of the installed base
they can offer. It is true that this means the user will have to
install another OS and probably reboot when they want to use
applications on that OS. This feature in itself would not suffice to
establish the OS because of this inconvenience. However, as soon as
advantages to the other OS become visible, this inconvenience becomes
minor. We will suggest some OS improvements below, and some marketing
strategies in Part 2 of this paper.
* People love choice, even when it's just between Coke and Pepsi. The
notion of a single company being the only choice is deeply offensive to
many, but a single OS that is public-domain and can be customized by
anyone is vastly less threatening. It becomes simple infrastructure
like the Internet. No one is currently clamoring for a competitor to
the Internet. Infrastructure generally works best as a public project.
* In the cutthroat competition of PC sales, a box with a free OS can be
sold cheaper than a Windows box. This alone will not make the
difference, but it is a selling point. It also means Windows users need
make no investment to investigate the other side, or to play both
sides, of the fence.
* Although right now it may be easier to develop for Windows than Unix,
developing for an OS in the public domain means you can view the source
itself, so you really know how the OS works and can do a much better
job. It also means there will be no hidden "functionality" of the sort
for which Microsoft is famous. On the other hand, this situation
creates a market for people to provide usability and programming tools
for Unix. They are already many such on various versions on Unix, so,
in part, this is simply a porting problem.
OK, given all this, why hasn't FreeUnix conquered the world already? There
are a variety of reasons, among those commonly cited are:
* Most software developers have their eyes on the vastly larger Windows
market. While obviously this is not a market that can be ignored, we
suggest such developers ask themselves whether they would like to be
competing with Microsoft exclusively on its platform in a few years.
* Being nonprofit, FreeUnix is not professionally marketed. Hence most
users have not heard of it.
* Being Unix, FreeUnix is not as easy to use as Windows.
While all this is true, and we will respond to it all shortly, we think a
greater reason is a prejudice on the part of those who develop software for
sale against software that is given away free. There is the notion that the
latter is by definition an amateur enterprise, and that the result must
therefore be "amateurish". The underlying feeling is that if free software
is held to be valuable, it could call into question why other valuable
software merits payment. Without getting into too detailed an analysis of
the merit or causes of this prejudice in general, we submit that, in this
case, it is suicidal and therefore must be abandoned.
Another aspect of the situation to consider is that most major OS's below
the mainframe level are now variants of Unix. Of course, Windows is not;
that is the point. Also, OS/2 is not, but IBM does have a mature version of
Unix in its arsernal and the resources to port a lot of its existing OS/2
technology over to it. Other than that, Rhapsody, the next Mac OS, is Unix,
as are OS's used by Sun, SGI, HP, DEC, Novell, and IBM. Any application that
can function across a large number of these systems has a huge and generally
affluent base to sell to. It is a base that could soon be lost to NT, but
not if it has better applications (including programming and usability
tools).
All versions of Unix are not, of course, the same, and application
portability (we're talking source code portability, of course) is not an
easy problem. The industry has attempted to standardize Unix before and
failed. True, paper standards exist, but application portability does not.
Without getting into details and recriminations, we think the basic reason
for the failure was the complexity of getting a large number of vendors to
collaborate on a standard and implement it. Therefore, we say, skip all
that. Pick a freeware Unix and emulate it. Let it be the standard to which
everyone writes. This creates a well-defined and limited goal that can be
obtained relatively quickly. In fact, only a freeware Unix from which no one
can directly get an advantage could fill this role without creating a
political struggle of the sort that has plagued attempts to standardize Unix
in the past.
In other words, we propose that the Unix players accept FreeUnix as a least
common denominator (LCD) standard and adjust their systems to run
applications developed for Linux or one of the BSD's (which of these systems
would best suit the purpose is beyond our scope here). Of course, their
systems could also run private applications. The advantage of this is that
there would be one platform besides Windows with a large enough base to be
worth developing for. And it would be in the interest of every company not
looking forward to a future as Microsoft's next lunch to develop for it and
promote it.
This is not to say companies have to sacrifice the strengths they have built
up in their own Unix systems just for the sake of a least common denominator
standard. Sun is still driving Java development and has a large application
base that possibly could be ported, SGI has top-flight graphics technology
it could incorporate, and Rhapsody has a superb application development
framework. The Unix base is public domain, but companies can still add
value. But now Microsoft has to compete with a free OS that is actually much
more mature than NT, and that people can trust as they cannot trust
Microsoft.
FreeUnix will only catch on in a big way, however, if the following occur:
* Major Software vendors show its credibility by porting to it. Some,
like Netscape, have ported to Linux. But we need IBM, Oracle, and Adobe
to throw their weight behind FreeUnix as well. This requires looking
beyond the immediate balance sheet. Business users will take FreeUnix
seriously if IBM and Oracle do. And, in fact, DEC and Oracle are using
freeware Unix for the client-side OS in their network computer systems,
which shows that the majors can take seriously and rely on a freeware
Unix platform. This is a start, but the standalone and server
applications need to move over as well.
* A consortium needs to form to support the chosen FreeUnix with the
following services:
o Funding to make improvements to the OS that will remain in the
public domain.
o Professional marketing to get the word out.
o A standards certification process supported by a test suite. The
purpose of this is to certify that customizations made to the OS
do not create incompatibilities.
* The OS needs to start on Intel, but should not stay there. Other
systems should either port or emulate it. Linux, of course, already has
several such ports.
* Major improvements need to be made to the OS itself. Not all of these
can be expected to come from a non-profit industry consortium. We
address these under How to Improve FreeUnix below.
How to Improve FreeUnix
There are some improvements to FreeUnix that would greatly help it against
Microsoft. Among these are the following:
A Built-In Web Server
The OS should be extended to include an HTTPD that can invoke applications
through an open API, such as the NSAPI. This has the following advantages:
* One of the great problems in generic Unix applications is easily
creating a user interface as attractive and usable as you can on Mac or
Windows. With a built-in web server, many applications could have a
series of Web pages, possibly including Java applets and other embedded
technology, as the user interface. This gives them automatic access to
the state of the art in user-interface technology, because the Web is
where all the development is taking place. Also, dynamic Web pages are
comparatively easy to generate.
* Developers writing to FreeUnix need not decide whether they want to
write a standalone or an Internet/Intranet application. They can have
their cake and eat it too. An application runs behind the OS web server
and is interfaced to through a Web browser. Whether that browser is on
the same machine and communicating through a pipe or on a different one
and communicating through TCP/IP can be transparent to the application,
save where it must be specifically addressed for security reasons.
How can we argue that a web server belongs in the OS when we do not agree
with Microsoft that a browser does? The basic purpose of an OS is to be a
platform for applications, and, because of the second item above,
incorporating a web server significantly enhances the functionality of the
OS for this purpose. It is not clear that a built-in browser does this.
Native Java Support
A compiler should be made available that compiles Java source to FreeUnix
executable rather than bytecode. If this happens, Java applications can have
a platform where they will be more or less as efficient as C and still be
portable to other platforms. Since Java has been shown to cut development
periods by something like 2/3's compared to C, this would create a serious
problem for Microsoft. I, as a developer, could write a program in Java that
would run as quickly (or in the ballpark, anyway) as a C program, but get it
out the door much more quickly. I don't have to worry about the fact that
I'm not writing for Windows, since I can carry the OS with me, i.e., I can
include it on the CD. And the app will run on Windows, if I cross-compile to
bytecode, just not nearly as efficiently (which will make Windows look bad).
Why, then, would I develop for Windows?
Java: It's not just for network computers anymore
This brings up a problem with how Java has been positioned. It is our
opinion that Java is being held back by the fact that most of its backers,
including Sun, are in love with the network computer. Java is well-suited to
network computing, but it also would be a much better standalone development
language than C is, if it could overcome its performance problems. Time is
of the essence, and establishing a new software standard can happen much
more quickly than a new hardware standard, much less a whole new hardware
infrastructure, which is what the network computer entails. Give Java a free
native platform, and there will be a huge body of professional-level
applications for it within six months. It is hard to know how far the
network computer will go and how quickly, but it will not match the speed
that Java can muster. Java on a free (initially) Pentium-based OS requires
no investment at all from users and offers great ground floor opportunities
for developers. In all likelihood, Microsoft will take over the server
before the network computer displaces the PC much. Ignoring Java's potential
to displace C on standalone applications for the sake of network computers
that will take time to prove themselves is foolish.
To harmonize this idea with the preceding, the web server built into
FreeUnix should have two special features:
* Its API should call out to Java as well as to C. In fact, Java is
probably a higher priority.
* When the browser is using the local server, or when security has been
configured to permit it, the web server should be able to redirect
applet calls to directly execute local compiled Java apps when such are
available. This is chiefly an optimization. Ideally, the browser itself
would do this.
Sun might think a better version of this idea for them would be to simply
release a JavaOS variant of Solaris for Pentium and Sun, perhaps even giving
it away free or very cheaply. While this incorporates some of the virtues of
what I propose, it does not give us the major advantage of an OS that is an
open system; it just sets one proprietary system against another, and
Microsoft is well ahead in that race.
Object-Oriented
A natural complement to incorporating Java is to make FreeUnix object
oriented, probably using a CORBA-based protocol. In addition to the usual
benefits of object orientation, this would make it very easy for others to
modify or replace parts of the OS without destabilizing the whole. Such
modifications could be given away or sold; only the core LCD Unix with which
everyone must stay compatible has to remain in the public domain.
Multimedia-Friendly
One area where FreeUnix currently needs much improvement is multimedia. The
open architecture comes in very handy here. SGI or Apple(Next) could export
some of their Unix-based graphics and video expertise, Creative Labs, Turtle
Beach, or Yamaha could contribute sound drivers, and new players no one has
heard of could contribute things and get in on the ground floor. None of
this needs to be public domain, provided it supplements and does not
interfere with the basic functionality.
Enhanced Usability
Here again, a task that could be daunting for a single company is an
opportunity for anyone with an appropriate idea. Actually, it seems the most
difficult part of usability is not implementation but design. Mac and, to a
lesser degree, Windows have already shown a great deal of how the design
should proceed. If you have a better idea, implement it, but imitating what
people are used to will work and can be done fairly quickly.
End of Part 1
Part 2, coming soon, will elaborate on the Open OS Initiative, and suggest
marketing strategies, including sample advertising content.
Copyright 1997 Martin Gruber