<html><head>
<link rel="stylesheet" href="../default_style.css">
<title>Eclipse.org consortium</title></head>
<body>
<table border=0 cellspacing=5 cellpadding=2 width="100%" >
  <tr> 
    <td align=left width="72%"> <font class=indextop> eclipse.org formation</font> 
      <br>
      <font class=indexsub> the open community driving the eclipse platform</font> </td>
    <td width="28%"><img src="../images/Idea.jpg" height=86 width=120></td>
  </tr>
</table>
<table border=0 cellspacing=5 cellpadding=2 width="100%" >
  <tr> 
    <td align="left" valign="top" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">Press release</font></b></td>
  </tr>
  <tr> 
    <td>
    <h1 ALIGN="CENTER">Eclipse.org Consortium Forms to Deliver New Era Application Development Tools</h1>

<UL>
<LI>Industry Leaders Join to Form Initial Board</LI>
<LI>Broad Commercial Support For Open Source Development Tools </LI>
<LI>Common Public License Delivers Royalty Free Source Code</LI></UL>


<P>&#9;Chicago - Nov.  29, 2001 - Borland, IBM, Merant, QNX Software Systems, Rational Software, RedHat, SuSE, and TogetherSoft today announced the formation of Eclipse.org, an open consortium of providers of development tools that manages the Eclipse Platform, which is being made available in open source under the Common Public License<SUP>1</SUP>. These companies, each of which plans to release Eclipse Platform compatible product offerings, form the initial Eclipse.org board of directors. The bylaws and operating principles of the organization are published at <A HREF="http://www.eclipse.org/">http://www.eclipse.org</A>.</P>
<P>&#9;The Eclipse Platform is a new open source environment for creating, integrating and deploying application development tools for use across a broad range of computing technology. It provides a common set of services and establishes the framework, infrastructure and interactive workbench used by project developers to build application software and related elements. Through the Eclipse Platform, seamless integration of tools from several different vendors will be possible on Windows&trade;, Linux&reg; and QNX&reg; developer workstations.</P>
<P>&#9;The Eclipse Platform provides source code building blocks, plug-in frameworks and running examples that facilitate application tools development. A complete sample plug-in based integrated development environment for creating Java applications (JDT) is included. Code access and use is controlled through the Common Public License<SUP>1</SUP> allows individuals to create derivative works with worldwide re-distribution rights that are royalty free.</P>

<P>&#9;As with other open source communities, Eclipse.org brings together the broad participation needed to establish, refine and promote high-quality shared software technology. By taking advantage of common Eclipse Platform services, software tools developers are free to focus on their domains of expertise. Since the platform became available for download on November 7<SUP>th</SUP>, an average of more than 4,000 downloads have been logged daily. </P>
<P>&#9;The Eclipse Platform can be used to create and manage diverse objects like web site elements, process automation definitions, object models, image files, C++ programs, pervasive enterprise class Java&trade; applications and embedded technology. Written in the Java language, it comes with plug-in construction toolkits and examples, including a fully operational Java application development tools package. The platform implements a mechanism that discovers, loads and integrates the plug-ins developers need for manipulating and sharing project resources. When the Eclipse Platform is launched, the user is presented with a workbench-based integrated development environment composed of the user interfaces of available plug-ins.   </P>
<P>&#9;"In the Eclipse environment everything is a plug-in. The Java IDE doesn't have a special status and is just another set of plug-ins. This demonstrates the seamless extensibility of the platform. Turning the Eclipse Platform over to an open source initiative enables all tool builders to contribute new plug-ins and also help improve the existing platform," said <B>Erich Gamma</B>, technical director of <B>Object Technology International's </B>Zurich lab and a member of the team that built the JDT plug-ins distributed with the Eclipse Platform. </P>

<B><I><P>From Industry Leaders Serving on the Eclipse.org Board: </P>
</i></B><P>&#9;&quot;<B>Borland</B> is pleased to be a founding board member of the Eclipse.org consortium, and looks forward to working with other industry leaders to establish open standards,&quot; said <B>Simon Thornhill</B>, VP and GM of rapid application development solutions for Borland Software Corporation.  &quot;Our involvement with Eclipse further exemplifies our continued commitment to enable enterprises of all sizes to develop, deploy and integrate next-generation software solutions.&quot;</P>

<P>&#9;"<B>IBM</B> is very proud to be helping make Eclipse.org a level and open effort, supported by a large number of leading commercial tool developers," said <B>Lee R. Nackman</B>, vice president, Application Development Tools, Application and Integration Middleware Division, IBM Software Group. "We look forward to benefits across the entire computing industry as powerful tools from so many companies inter-operate and deliver improvements to the project development process itself. We are committed to using the Eclipse Platform as the foundation for strategic IBM application development products.&quot; </P>
<P>&#9;"We're very impressed by the power and flexibility of the Eclipse Platform," said <B>Andrew Weiss, MERANT </B>chief technology officer. "As a founding member of the board of directors for the open Eclipse.org consortium, we are committed to providing MERANT's current and potential customers with plug-ins to extend and complement Eclipse with familiar solutions like PVCS, our software configuration management and web and content management technologies."</P>
<P>&#9;&quot;Embedded developers need an extraordinary range of tools, but to be truly productive, they need tools that can work together in a seamless, intuitive fashion,&quot; said <B>Dan Dodge, </B>president and CTO of<B> QNX Software Systems Ltd</B>. &quot;With the Eclipse Platform, it's now much easier for developers and tool vendors to integrate their rich toolsets into a cohesive whole. At QNX Software Systems, we're proud to serve as a founding member of the Eclipse.org consortium and are dedicated to its vision of making embedded development more productive through inter-operable tools.&quot;</P>
<P>&#9;&quot;<B>Rational Software</B> has been an early adopter of the Eclipse platform because we believe it delivers high value to software teams<B>,&quot; </B>said<B> Dave Bernstein, </B>senior vice president of Products for Rational Software. &quot;We've been working closely with IBM to integrate our products with Eclipse to ultimately provide a single, integrated user experience for developers and other practitioners on a software team.&quot;</P>

<P>&#9;"As the open source community grows, we need open source development tools that meet the needs of more and more developers," said <B>Michael Tiemann, </B>CTO of<B> Red Hat</B>.  "We are pleased to be taking a leadership position with Eclipse.org, not only to help put better tools in the hands of developers, but to help developers use the open source model to ultimately create better tools."</P>
<P>&#9;<B>Juergen Geck</B> of <B>SuSE Linux AG</B> commented: &quot;The success of Linux and the Open Source computing model has changed the IT landscape. As this change matures, we see new open systems that extend the power of open development. SuSE is proud to be an active part in the evolution of the Eclipse Platform with its excellent capabilities for developing applications for middleware, such as database and groupware systems.&quot;</P>
<P>&#9;"<B>TogetherSoft</B>'s mission of 'improving the ways people work together' is certainly embraced in the spirit of the Eclipse Platform," said <B>Todd Olson</B>, TogetherSoft's vice president of Together Products. "TogetherSoft is committed to supporting new technologies that benefit our customers. We welcome the opportunity to help shape and enhance them by leveraging our strong experience building software for software developers."</P>

<P>&#9;Full details of the Eclipse.org consortium and the design of the Eclipse Platform are available at <A HREF="http://www.eclipse.org/">http://www.eclipse.org</A>. </P>
    
    </td>
  </tr>
  </table>
&nbsp;

		<table width="100%" cellspacing=0 cellpadding=3 align=center>
		<tr bgcolor="#999999">
		<td align="left" valign="top" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">About Eclipse.org </font></b></td>
		</TR>
		<TR>
		<td align=left>
		<TABLE  width="100%" CELLSPACING=0 CELLPADDING=3>
		<tr>
		<td>
              <p>Eclipse.org is an open consortium of software development tool vendors that has formed the core of a community interested in collaborating to create better development environments and product integration. The community shares an interest in creating products that are inter-operable in an easy to use way based upon plug-in technology. By collaborating and sharing core integration technology, tool vendors can concentrate on their areas of expertise and the creation of new development technology.</p>
        </td>
		</tr>
        </table></table>&nbsp;

		<table width="100%" cellspacing=0 cellpadding=3 align=center>
		<tr bgcolor="#999999">
		<td align="left" valign="top" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">Media contacts </font></b></td>
		</TR>
		<TR>
		<td align=left>
		<TABLE  width="100%" CELLSPACING=0 CELLPADDING=3>
		<tr>
		<td>
<p>Becky Wood DiSorbo<br>
Borland<br>
831-431-1894<br>
<A HREF="mailto:bwood@borland.com">bwood@borland.com</A> </p>

<p>Laurie Friedman<br>
IBM<br>
Somers, NY<br>
914-766-1299 <br>
<A HREF="mailto:laurie1@us.ibm.com">laurie1@us.ibm.com</A> </p>

<p>Larry De�Ath<br>
Merant<br>
301-838-5228<br>
<A HREF="mailto:larry.death@merant.com">larry.death@merant.com</A> </p>

<p>Paul Leroux<br>
QNX Software Systems Ltd.<br>
613-591-0931, ext. 9314.<br>
<A HREF="mailto:paull@qnx.com">paull@qnx.com</A> </p>

<p>Bill Durling<br>
Rational Software<br>
781-372-5886<br>
<A HREF="mailto:bdurling@rational.com">bdurling@rational.com</A> </p>

<p>Lorien Golaski<br>
RedHat<br>
919-547-0012, ext. 399<br>
<A HREF="mailto:lgolaski@redhat.com">lgolaski@redhat.com</A> </p>

<p>Christan Egle<br>
SuSE GmbH<br>
+49-(0)911-7405344<br>
<A HREF="mailto:ce@suse.de">ce@suse.de</A> </p>

<p>Alison Freeland<br>
TogetherSoft<br>
919-833-5550, ext. 1601<br>
alison.freeland@togethersoft.com</p>

<hr width="85%">
              
              <P><SUP>(1) </sup>Some components of Eclipse may be governed by license terms other than the CPL. </P>
<P>&#9;Brand or product names are registered trademarks or trademarks of their respective holders. IBM, WebSphere. DB2, MQSeries, and VisualAge are trademarks of International Business Machines Corporation in the United States, other countries, or both. Java and all Java-based trademarks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. Microsoft, Windows, Windows NT and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both. </P>
<hr width="85%">
            <p><a href="main.html">Return to the eclipse.org consortium main page</a></p>
        </td>
		</tr>
        </table></table>&nbsp;        
&nbsp;
</body></html>
