[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