<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Anniversary Report</title>
<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 them 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, Sun group product manager, <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.  (These are posted on the <a href="/" target="_blank">homepage</a>.) Over 3000 subscribers to our lists; nearly 30,000 downloads (not even counting those of the most recent build); 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 has uniquely devoted sections of its site to provide native-language information and assistance.

<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>
