<html><head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>
<h2>Community  Articles: Opinions, Interviews, Analyses</h2>
<p><a href="../lspintro.html" target="_blank">-Louis Su&aacute;rez-Potts</a> </p>
<p>2001 October 13</p>
<br>
<h4>Birthday Story</h4>

<p>In what was hailed as the largest Open Source project ever, Sun Microsystems released the code for its recently acquired StarOffice <a href="http://linuxtoday.com/news_story.php3?ltsn=2000-10-13-002-21-NW-DT-SW" target="_blank">one year ago today</a>, October 13. At the time, the release of the code, which was eagerly <a href="http://www.zdnet.com/zdnn/stories/news/0,4586,2640108,00.html?chkpt=zdhpnews01" target="_blank">reported</a> by all the major technical <a href="http://www.wired.com/news/technology/0,1282,39452,00.html" target="_blank">magazines</a>, was described using grand rhetoric: OpenOffice.org was to be the new thing, bigger and more spectacular than <a href="http://www.mozilla.org" target="_blank">Mozilla</a> (never mind <a href="http://www.darwin.org" target="_blank">Darwin</a>), and to be animated by the same enthusiasm and eager work that has transformed Linux and Apache into serious threats to Microsoft (the persistent Goliath). If Open Source was an "arena," OpenOffice.org entered the field ready for a scrap.</p>

<p>As it happens, the rhetoric actually <i>underplayed</i> the facts. Yes, OpenOffice.org the <i>code</i> is big (that's what everyone focused on); but the sheer magnitude, linguistic diversity, and global stretch of the community that has come to define the Project was surely unanticipated. For Sun really released the code to the world. And it is the world community that has grasped Sun's bold offering and worked to make it its own. </p>

<p>Today, we count among our regular users and developers people from Latin America (Brazil, Mexico, Argentina, to name a few), Europe (especially England, France, Italy, Germany), Asia (especially India, China, Japan, Korea), Australia, Africa (South Africa and French Africa), and Canada. Keep in mind that OpenOffice.org is an office suite, not a language-independent programming language. The interest the world shows in OpenOffice.org reflects a revolution that Sun has brilliantly captured: Communities are turning from Microsoft.
</p>

<p>Among them, the city of Turku, in Finland. A <a href="http://www.theregister.co.uk/content/4/22070.html" target="_blank">news 
  article</a> on the subject details that not only is the city switching from 
  Microsoft, but it is also seriously considering using OpenOffice.org. We can 
  also number in this growing crowd of those interested in shifting over to Open 
  Source, cities and governments in both developed and developing nations. Argentina, 
  Brazil, Germany--these are but a few names; there are more today, and there 
  will be yet more to come. </p>

<p>OpenOffice.org has never been so popular, and not just among developers. Yes, 
  the developer represents our primary audience, but we also have an active end-user 
  community. Our downloads last week, for example, exceeded 112,000--<i>for only 
  that week</i>. Since last year, we have had around one <i>million</i> downloads. 
  Sure there were some duplications, errors, you name it, in the compilation of 
  these statistics. But as I mentioned <a href="ec29Sept.html" target="_blank">last 
  week</a>, when I was similarly amazed by the figures for the week preceding, 
  it nevertheless indicates that there is an enormous population of end-users 
  wanting to use and perhaps even participate in the OpenOffice.org project, either 
  by submitting bugs to IssueZilla or simply engaging in discussions in our <a href="../mail_list.html" target="_blank">forums</a>. 
  These are people willing to work together to make OpenOffice.org more than an 
  also-ran alternative to Microsoft. </p>

<p>
Why do they want to participate? Because they can feel that they are part of an exciting project and because they can help to make it happen. This model of production, in which the consumer helps to make the product, in which there is hardly a distinction between producer and consumer, in which both can claim that it is theirs, is, if not exactly novel, enormously powerful. 
</p>

<br>
<h4><u>Where We Are</u></h4>

<p>Where does OpenOffice.org stand, on this, our first anniversary? By any measure 
  OpenOffice.org, the code and the project (and as our <a href="../about.html#mission" target="_blank">mission 
  statement</a> says, it's hard to separate them), is a success. OpenOffice.org 
  Build 638c, which is substantially StarOffice 6.0 Beta, can almost replace 
  Microsoft's Office. Almost because we are note quite "there" yet. But the OpenOffice.org 
  community has created something that can run on more platforms than Microsoft's 
  Office and, in many regards, do more. Like, for example, save in XML, or run 
  on <a href="http://porting.openoffice.org/linuxppc/ppclinks.html" target="_blank">LinuxPPC</a>, 
  or on Linux, for that matter. (To see a list of all our accomplishments, and 
  a brief synopsis of what the program can do, please see our <a href="../dev_docs/source/features.html" target="_blank">features 
  page</a>.)</p>


<p>A moment to consider this ability of OpenOffice.org to run on LinuxPPC: OpenOffice.org can run on it because community member Kevin Hendricks pretty much built it to so that it could run on it. Sure, he had help from the impressively talented Hamburg engineers who make up the core of the OpenOffice.org development group. But it was his drive and his effort that made the build for Linux PPC a reality. So, here's a rhetorical question: can Microsoft, or for that matter any other major corporation boast of such an accomplishment? No, or at least not officially. And they wouldn't bother: Not enough money in it; too much of a niche thing. But the beautiful logic of Open Source and in particular OpenOffice.org is that it doesn't orphan some users; it rather allows for independence and initiative. In fact, it encourages them. 
</p>

<p>We now have at least five end-user-sponsored projects in the "<a href="http://incubator.openoffice.org/" target="_blank">Whiteboard / Incubator</a>" section of OpenOffice.org, which houses community-proposed, "experimental" projects. These include the <a href="http://groupware.openoffice.org/" target="_blank">Groupware Project</a>, the <a href="http://documentation.openoffice.org/" target="_blank">Documentation Project</a>, the <a href="http://distribution.openoffice.org/mirrors/" target="_blank">Mirrors Project</a>, the <a href="http://whiteboard.openoffice.org/screenshots/" target="_blank">Screenshots Project</a>, and the <a href="http://marketing.openoffice.org/" target="_blank">Marketing Project</a>. In the "<a href="http://native-lang.openoffice.org/" target="_blank">Lang</a>" area, which deals with native-language support and information, we have the <a href="http://fr.openoffice.org/" target="_blank">French Project</a>  and now, still forming, the German language project. All these end-user projects are staffed by community members who benefit only by being part of OpenOffice.org and by shaping the project into something that is part their vision, part the developers'.</p>

<p>
And OpenOffice.org's developers are very, very good. As I have said before, it needs the constant attention of many to make this code, and this project, work so well. Accordingly, I  would like to give credit to the developers from Sun and elsewhere who have helped to build this project: Thanks.</p>
For other articles related to the OpenOffice.org one-year anniversary, please 
see the <a href="../about_us/birthday.html">Birthday Page</a>. 
<p>&nbsp;
<p><a href="index.html">Previous articles</a>
</body>
</html>

