<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></p>
24 July 2001
<br><br>


<h4>Anniversary Report</h4>

<p>Arguably the most important Open Source meeting of the year, the <a href="http://conferences.oreilly.com/oscon/" target="_blank">Third Annual O'Reilly Open Source Convention</a> began yesterday, 23 July, in San Diego, California, with the theme of "Fueling the Open Source Alternative." The O'Reilly convention draws everyone who is anyone in the Open Source and Free Software movements. The reason is simple: smart people go and things happen there. In fact, it was at the 1998 Freeware Summit organized by Tim O'Reilly (and out of which this current conference has evolved) that the very term "Open Source" was coined, by Christine Peterson, as an alternative to "Free Software" that would be friendlier to the pragmatic needs of business.

<p>And it was at the O'Reilly conference last year that Sun <a href="//press/sun_release.html" target="_blank">announced</a> the creation of OpenOffice.org. At that time, the announcement was more a declaration of beautiful intention than anything else, for OpenOffice.org was not yet a true Open Source project, as it is now. It wasn't until three months later, on October 13, 2000 (a Friday, as some have noted), that the code, all 7.6 million lines of it (if not more), was actually released to the public under a dual licensing scheme, LGPL and SISSL. As Bill Roth, Group Product Marketing Manager, Sun Microsystems <a href="http://netscape.zdnet.com/zdnn/stories/news/0,4586,2640108,00.html" target="_blank">described</a> at the time, "This will be programming in the large made public for the first time.  This is nine times the size of <a href="http://www.mozilla.org/" target="_blank">Mozilla</a>."

<p>No other company has "liberated" so much code, so ambitiously, and so totally under the broad provisions of true Open Source licenses. Yes, there is Mozilla.org:  But it is smaller. Apple had a year before liberated its OS X code, but it had no choice, as it was working with already-free code (BSD). And its <a href="http://www.gnu.org/philosophy/apsl.html" target="_blank">license</a> has never, despite latter-day tweaking, gained the vaunted respect of Free Software creator, Richard M. Stallman, who approved of OpenOffice.org's license. 

<p>OpenOffice.org is and remains one of the largest Open Source projects. But its importance does not only lie in the often-touted size of its code base. Rather, it lies in the fact that OpenOffice.org has proven, by its continuing and growing success, the feasibility of corporate-sponsored projects, and the real possibility that the most effective model for large-scale software creation and popularization is that provided by Open Source.  

<p>But success in what sense? OpenOffice.org has not produced any finished product. Rather, it has produced, routinely and regularly, <i>builds</i> of its code. These are "snapshots" of the code as it is being put together. To a greater or lesser extent, these builds, which can be thought of as "pre-alpha" and as challenges to the community, are usable by non-technical persons--but that's incidental. To put it bluntly, OpenOffice.org is not here to produce a finished product. Sun Microsystems is doing that with StarOffice 6, which will have been built using code derived from OpenOffice.org. Rather, OpenOffice.org's far more ambitious goal is to create a sustainable process of code making and community building. 

<p>And, as our most recent statistics indicate, we are succeeding.  (Weekly statistics are posted on the <a href="/" target="_blank">homepage</a>.) Over 3000 subscribers to our lists; nearly 32,000 source and binary downloads in the last week alone (not even counting those of the most recent build), with almost  350,000 so far; and an active and growing base of project leads overseeing new, community-organized projects such as the <a href="http://whiteboard.openoffice.org/doc/index.html" target="_blank">Documentation</a> and <a href="http://whiteboard.openoffice.org/groupware/index.html" target="_blank">Groupware</a>, to name but two. 

<p>Our code, moreover, is developed by a community that spans the globe and works together despite a variety of languages and cultures; the project, understood as the code and community, is, in the model of Linux, superlatively international. Indeed, OpenOffice.org community members have eagerly taken upon themselves the mission of creating projects devoted to providing information and assistance in a developer's native language. So far, the <a href="http://fr.openoffice.org/" target="_blank">Francophone</a> module has been our first, experimental module in the <a href="http://native-lang.openoffice.org/" target="_blank">Native Language Development project</a>.  

<p>Note: I join the community to the code because OpenOffice.org cannot be understood as one or the other. In fact, both are encompassed by our "<a href="//index.html#mission">mission statement</a>," which was jointly crafted by many in the OpenOffice.org community: 

<blockquote>"To create, as a community, the leading international office suite that will run on all major platforms and provide access to all functionality and data through open-component based APIs and an XML-based file format."</blockquote>

<p>As is clear from the statement, the process of code making implicitly involves community and vice versa. The point--and it is a quintessentially Open Source one--is to create software that people can easily use and easily modify for their uses, not software that, in pretending to cater to every whim, beds the user into a procrustean nightmare of forced choices that only end up hobbling him.

<p>Okay, the image may be a little much. But it does go to the heart of the OpenOffice.org's difference from software produced by the likes of Microsoft. OpenOffice.org is a community effort; the software implicitly responds to and articulates community desires and needs. Microsoft, disdains the importance of Open Source communities and shrugs off their power as unimportant, if not downright harmful. In contrast, it is interested in producing essentially static and one-size fits-all products that limit the choices of the user and, more important, force him into thinking of the software as always already something he can only use, never really modify. And of course the software is fatally expensive, bloated, and very often simply annoying.

<p>Of course no code is perfect. That's not the point; rather, the point is to create a process so that code can be made to fit the person, the business, the community: the user, and not the other way around. OpenOffice.org does this. Build 633 is out there: join us in building it for everyone.


<p>&nbsp;</p>
<p><a href="index.html">Previous articles</a></p>
</body>
</html>

