<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Eclipse Tools Project</title>
<link rel="stylesheet" href="../default_style.css" type="text/css">
</head>
<body>
<table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" >
  <tr> 
    <td ALIGN=LEFT VALIGN=TOP COLSPAN="2" BGCOLOR="#0080C0"><b>
    <font face="Arial,Helvetica" color="#FFFFFF">Project Principles</font></b></td>
  </tr>
  <tr> 
    <td> 
    Among the key principles on which this project is run, are the following:
      </td>
  </tr>
</table>
<table border=0 cellspacing=5 cellpadding=2 width="100%" >
  <tr> 
    <td align=RIGHT valign=TOP><img src="../images/Adarrow.gif" width="16" height="16" border="0"></td>
    <td><b>Extension of the Eclipse value proposition</b> The Eclipse Project 
      has set a high standard for technical excellence, functional innovation 
      and overall extensibility within the Java IDE domain. We intend to apply 
      these same standards to the Web/J2EE application-tooling domain.</td>
  </tr>
  <tr> 
    <td align=RIGHT valign=TOP><img src="../images/Adarrow.gif" width="16" height="16" border="0"></td>
    <td><b>Vendor ecosystem </b>A major goal of this project is to support a 
      vital application development tools market. Its exemplary functionality 
      will be useful on its own but it will be designed from the start to be 
      extensible so commercial vendors can use what this project delivers as a 
      foundation for their own product innovation and development efficiency. </td>
  </tr>
  <tr> 
    <td align=RIGHT valign=TOP><img src="../images/Adarrow.gif" width="16" height="16" border="0"></td>
    <td><b>Vendor neutrality</b> Vendor neutrality will be at the core of this 
      project. We aim to encourage Eclipse participation and drive Eclipse 
      market acceptance by strengthening the long-term product value 
      propositions of the widest possible range of application development 
      vendors. </td>
  </tr>
  <tr> 
    <td align=RIGHT valign=TOP><img src="../images/Adarrow.gif" width="16" height="16" border="0"></td>
    <td><b>Standards-based innovation</b> This project will deliver an 
      extensible, standards-based tooling foundation on which the widest 
      possible range of vendors can create value-added development products for 
      their customers and end-users. Where standards exist, we will adhere to 
      them. At least, at first, where standards are emerging, we will wait for 
      them to emerge; this can be re-evaluated later according to user needs and 
      contributor availability. Where multiple technologies are widely used for 
      a given functional need, we will attempt to support each, subject only to 
      technical feasibility and our goal of providing the most capable and 
      extensible foundation long term. </td>
  </tr>
  <tr> 
    <td align=RIGHT valign=TOP height="22"><img src="../images/Adarrow.gif" width="16" height="16" border="0"></td>
    <td height="22"><b>Agile development</b> Our aim is to incorporate into our planning 
      process the innovations that arise once a project is underway, and the 
      feedback from our user community on our achievements to date. We think an 
      agile development and planning process, in which progress is incremental, 
      near-term deliverables are focused, and long-term planning is flexible, 
      will be the best way to achieve this. </td>
  </tr>
  <tr> 
    <td align=RIGHT valign=TOP height="22"><img src="../images/Adarrow.gif" width="16" height="16" border="0"></td>
    <td height="22"><b>Inclusiveness &amp; diversity</b> We aim to assimilate the best ideas 
      from the largest number of participants representing the needs of the 
      widest range of end-users. So we will encourage organizations across a 
      broad range of technical, market and geographical domains to participate 
      in this project.</td>
  </tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
</body>
</html>