<p>e4 is the incubator for Eclipse 4.0, to be released 2010. Building on
current Eclipse and OSGi technology as a solid foundation, its major goals 
include</p>
<ul>
  <li>Making it easier to write plugins</li>
  <li>Allowing better control over the look of Eclipse based products</li>
  <li>Providing a uniform, pervasive platform across computing environments
  (Web / RIA, Desktop, Server, Cloud, Embedded)</li>
  <li>Increasing diversity of contributors to the platform</li> 
  <li>Maintaining backward compatibility for API-clean clients</li> 
</ul>
<p>In order to reach these goals, Eclipse APIs are refactored into 
  <a href="http://wiki.eclipse.org/e4/Eclipse_Application_Services">services</a>
  that make up a uniform application model, which supports dependency 
  injection to run in multiple different contexts such as desktop or 
  web; the Workbench is uniformly 
  <a href="http://wiki.eclipse.org/e4/Workbench_Model">modeled</a>
  to provide introspection, flexible shaping, 
  <a href="http://wiki.eclipse.org/E4/DeclarativeUI/Styling_Roundup">CSS styling</a>
  and
  <a href="http://wiki.eclipse.org/E4/DeclarativeUI/Declarative_Construction_Roundup">declarative UI markup</a>;
  SWT target platforms are added to
  <a href="http://wiki.eclipse.org/E4/SWT_Browser_Edition">run in the Browser</a>;
  and many more
  <a href="http://wiki.eclipse.org/e4">initiatives</a> in areas
  such as <a href="http://wiki.eclipse.org/E4/Resources">flexible resources</a>,
  <a href="http://wiki.eclipse.org/E4/Commands">command recording</a>,
  scripting, and plugins in 
  <a href="http://wiki.eclipse.org/E4/JavaScript">other languages</a>.
  We also look at 
  <a href="http://wiki.eclipse.org/E4/Pervasive_Themes">pervasive themes</a>
  such as reducing bloat, and many other themes are brought up by the
  broad community participating in this effort.
</p>
<p>
The mission of the e4 project is to build a next generation platform for 
pervasive, component-based applications and tools. See the 
<a href="http://www.eclipse.org/proposals/e4/">original project proposal</a>
for more details.
</p>