<html><head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>

<h2>Luminary, Executive and Community Quotes</h2>
<p>May 1, 2002</p>
<p>
"Sun recognizes that shared innovation - not development in isolation -
is the key to helping our customers solve problems and putting tools in
the hands of these innovators who can create real-world solutions.
Through the open source process and the donation of the
StarOffice source code, OpenOffice.org community members were able to
enhance and broaden availability of a viable office productivity suite
in OpenOffice.org 1.0 that will offers users around the world a choice
in office productivity."
</p>
<p>
--  said Pat Sueltz, executive vice president, Software Systems Group,
Sun Microsystems.
</p>
<hr>
<p>
"Sun is committed to the community and the synchronicity between future
OpenOffice.org and StarOffice releases. Our developers develop directly
into the OpenOffice.org code base, from which we build StarOffice.
That's
what is so great about OpenOffice.org - people can really innovate by
taking
the source code and doing something to feed a niche market, supplying a
port
to a platform or a language not already supported."
</p>
<p>
-- Mike Rogers, vice president and general manger of desktop and office
productivity at Sun Microsystems
</p>
<hr>
<p>
"OpenOffice.org may be the most important open source project right
now.  Because people will try it and see they can get everyday work done
without giving more money to Microsoft, they'll see -- in a low-risk way
-- that open source software can work for them and be an even better
solution."
</p>
<p>
-- Miguel de Icaza, founder of the GNOME project.
</p>

<hr>
<p>
"OpenOffice.org 1.0 may be the single best hope for consumers fed-up
with Microsoft's desktop monopoly. With Sun moving to a full service and

support business model for StarOffice software, users around the globe
will continue to have a free office productivity software tool through
the OpenOffice.org open source community."
</p>
<p>
-- Eric Raymond, co-founder of the Open Source Initiative (OSI).
</p>

<hr>
<p>
"When OpenOffice.org was released, it was a tremendous amount of code
with a very deep history, and thus we knew it would take a lot of time
and effort to reach a critical mass of community participation. The
project has now attracted a significant amount of outside involvement,
some of it in pretty interesting areas like marketing and quality
assurance.  With the release of 1.0, it's clear those efforts are
bearing real fruit.  Congratulations to the community -- and to Sun --
for making this happen."
</p>
<p>
-- Brian Behlendorf, CTO and co-founder, CollabNet.
</p>

<hr>
<p>
"I am grateful to Sun for making a powerful office suite available as
Free Software for Free operating systems such as GNU/Linux."
</p>
<p>
-- Richard Stallman, founder, Software Freedom Foundation.
</p>

<hr>
<p>


"There are many important roles that volunteer developers can play to
shape the future functionality of OpenOffice.org (OOo) so if you are
looking for someplace to contribute, OOo can use you,"
</p>
<p>
-- Kevin Hendricks, a key contributor to the OpenOffice.org community
since its inception nearly two years ago. Hendricks has lead volunteer
development teams for both the OpenOffice.org 1.0 spellchecker and PPC
Linux port projects.
</p>

<hr>
<p>


"In the spirit of community, OpenOffice.org recently hosted a three-day
translation event in Hungary in which more than 100 volunteers
translated the OpenOffice.org 1.0 code into Hungarian. The Community
provides innovation not only at the code level, but at the community
level as well", said Sam Hiser, the co-project lead for the
OpenOffice.org marketing team. "The Hungarian event was a community
effort in the truest sense of the word."
</p>
<p>
-- Sam Hiser, co-project lead - OpenOffice.org marketing project, and
CIO of ReelAmerica, Inc.
</p>

<hr>
<p> "Sun's tangible commitments to OpenOffice.org in terms of the code contribution, 
  financial support, engineering and marketing resources has enabled the community 
  to flourish. And, inturn community contributions have lead to two great products 
  - OpenOffice.org 1.0 and the StarOffice 6.0 software sharing the same code base, 
  targetting the different needs of users. This clearly shows that the open source 
  model for collaborative software development really works ! </p>
<p>&quot;As the Community Manager of the OpenOffice.org project, sometimes it 
  is hard being a mediator of the creative tension between the community and corporation 
  as OpenOffice.org, the project, evolves to another degree of maturity. It has 
  been extremly energising seeing open source software development working. Suddenly 
  OpenOffice.org is available in over 21 languages and across platforms that we 
  didnt imagine being in the middle of. To engage with volunteers from all over 
  the globe, as they come together as a community in areas that they identified 
  as needing attention has resulted in revolutionary momentum and a global product 
  launch second to none for OpenOffice.org 1.0." </p>
<p> -- Zaheda Bhorat, Community Manager, OpenOffice.org, Sun Microsystems. </p>
<hr>
<p>&quot;As the senior Community Manager of OpenOffice.org (since October 2000), 
  it is perhaps fitting that I have the last word. And that's to say: Thanks. 
  We owe this release to the OpenOffice.org community. Why? OpenOffice.org 1.0 
  is not just about the product; it is about the collaborative process. What the 
  OpenOffice.org Project has shown, stunningly, is that Linus Torvalds' conception 
  of Open Source is fundamentally correct: that what makes the difference in Open 
  Source projects is the erasure of the distinction between developers and endusers: 
  both can collaborate on the project they feel they own and from which they will 
  benefit.</p>
<p>&quot;We have now several extraordinary enduser projects: the Marketing Project, 
  yes, but also, and firstly, the Native Language Development Projects, which 
  provide resources and forums in French, German, Dutch, Italian, and, soon, several 
  other languages. All of these are run by members of varying technological skill; 
  some, in fact, are quite technologically inexperienced.</p>
<p>&quot;But they have been able to collaborate using the OpenOffice.org infrastructure, 
  SourceCast, and been able to effect their vision of what OpenOffice.org should 
  be--a People's Thing. Collaboration using SourceCast has meant that users have 
  been able to work together via mailing lists, project pages, you name it, and 
  not worry about the software limitations. The result is the birth of OpenOffice.org 
  1.0 as something that is theirs.&quot;</p>
<p>-- Louis Su&aacute;rez-Potts, Community Manager, Project Lead, Distribution, Incubator, Mirrors, Native-Lang, Website. </p>
</body>
</html>

