blob: 8a49358ea290747e58f3d3fb6c16eb4b1122848d [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Eclipse Roadmap v4</title><meta name="author"/>
<meta name="keywords" content="roadmap, projects, strategy, documents, about, foundation" /><link rel="stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/small.css" title="small" /><link rel="alternate stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/large.css" title="large" /><link rel="stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/visual.css" media="screen" /><link rel="stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/layout.css" media="screen" />
<!--[if IE]> <link rel="stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/ie_style.css" media="screen"/> <![endif]-->
<!--[if IE 6]> <link rel="stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/ie6_style.css" media="screen"/> <![endif]-->
<link rel="stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/print.css" media="print" />
<link rel="stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/header.css" media="screen" />
<script type="text/javascript" src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/styleswitcher.js"></script>
</head>
<body>
<div id="header">
<div id="header-graphic" class="eclipse-main">
<a href="http://www.eclipse.org/"><img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/eclipse_home_header.jpg" alt="" /></a><h1>Eclipse</h1>
</div>
<div id="header-global-holder" class="eclipse-main-global">
<div id="header-global-links"><ul>
<li><a href="http://www.eclipse.org/org/foundation/contact.php" class="first_one">Contact</a></li><li><a href="http://www.eclipse.org/legal/">Legal</a></li>
</ul>
</div>
<div id="header-icons">
<a href="http://www.youtube.com/user/EclipseFdn" target="_blank"><img src="/eclipse.org-common/themes/Phoenix/images/Icon_Live.png" width="28" height="28" alt="Eclipse YouTube Channel" title="Eclipse YouTube Channel" /></a>
<a href="http://www.eclipseplugincentral.com"><img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/Icon_plugin.png" width="28" height="28" alt="Eclipse Plugin Central" title="Eclipse Plugin Central" /></a>
<a href="http://www.planeteclipse.org"><img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/Icon_planet.png" width="28" height="28" alt="Planet Eclipse" title="Planet Eclipse" /></a>
</div>
</div></div><div id="header-menu"><div id="header-nav">
<ul>
<li><a class="first_one" href="http://www.eclipse.org/" target="_self">Home</a></li>
<li><a href="http://www.eclipse.org/users/" target="_self">Users</a></li>
<li><a href="http://www.eclipse.org/membership/" target="_self">Members</a></li>
<li><a href="http://www.eclipse.org/committers/" target="_self">Committers</a></li>
<li><a href="http://www.eclipse.org/downloads/" target="_self">Downloads</a></li>
<li><a href="http://www.eclipse.org/resources/" target="_self">Resources</a></li>
<li><a href="http://www.eclipse.org/projects/" target="_self">Projects</a></li>
<li><a href="http://www.eclipse.org/org/" target="_self">About Us</a></li>
</ul>
</div>
<div id="header-utils">
<form action="http://www.google.com/cse" id="searchbox_017941334893793413703:sqfrdtd112s">
<input type="hidden" name="cx" value="017941334893793413703:sqfrdtd112s" />
<input type="text" name="q" size="25" />
<input type="submit" name="sa" value="Search" />
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_017941334893793413703%3Asqfrdtd112s&lang=en"></script> <ul>
<li class="text_size"><a class="smallText" title="Small Text" href="#" onclick="setActiveStyleSheet('small');return false;">A</a> <a class="largeText" title="Large Text" href="#" onclick="setActiveStyleSheet('large');return false;">A</a></li>
</ul>
</div></div><div id="leftcol">
<ul id="leftnav">
<li class="separator"><a class="separator" href="index.php">About Us &#160;&#160;<img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/leftnav_bullet_down.gif" border="0" alt="" /></a></li>
<li><a href="http://www.eclipse.org/org/foundation/">Foundation</a></li>
<li><a href="http://www.eclipse.org/org/documents/">Governance</a></li>
<li><a href="http://www.eclipse.org/legal/">Legal Resources</a></li>
<li><a href="http://www.eclipse.org/org/foundation/contact.php">Contact Us</a></li>
<li style="background-image: url(/eclipse.org-common/themes/Phoenix/images/leftnav_fade.jpg); background-repeat: repeat-x; border-style: none;"><br /><br /><br /><br /><br /><br /><br /><br />
</li>
</ul>
</div>
<div id="container">
<div id="maincontent">
<div id="midcolumn">
<h1>Themes and Priorities</h1><!-- start content -->
<table id="toc" class="toc" summary="Contents"><tr><td><div id="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1"><a href="#Previous_Versions"><span class="tocnumber">1</span> <span class="toctext">Previous Versions</span></a></li>
<li class="toclevel-1"><a href="#Theme_Categorization"><span class="tocnumber">2</span> <span class="toctext">Theme Categorization</span></a></li>
<li class="toclevel-1"><a href="#Active_Themes"><span class="tocnumber">3</span> <span class="toctext">Active Themes</span></a>
<ul>
<li class="toclevel-2"><a href="#Platform_Support"><span class="tocnumber">3.1</span> <span class="toctext">Platform Support</span></a>
<ul>
<li class="toclevel-3"><a href="#Vista"><span class="tocnumber">3.1.1</span> <span class="toctext">Vista</span></a></li>
<li class="toclevel-3"><a href="#Linux"><span class="tocnumber">3.1.2</span> <span class="toctext">Linux</span></a></li>
<li class="toclevel-3"><a href="#Mac_OS_X"><span class="tocnumber">3.1.3</span> <span class="toctext">Mac OS X</span></a></li>
<li class="toclevel-3"><a href="#Support_for_the_latest_Java.28tm.29_versions"><span class="tocnumber">3.1.4</span> <span class="toctext">Support for the latest Java(tm) versions</span></a></li>
</ul>
</li>
<li class="toclevel-2"><a href="#Rich_Client_Platform_.28RCP.29"><span class="tocnumber">3.2</span> <span class="toctext">Rich Client Platform (RCP)</span></a></li>
<li class="toclevel-2"><a href="#Rich_Internet_Applications_.28RIA.29"><span class="tocnumber">3.3</span> <span class="toctext">Rich Internet Applications (RIA)</span></a></li>
<li class="toclevel-2"><a href="#Embedded_Device_Software"><span class="tocnumber">3.4</span> <span class="toctext">Embedded Device Software</span></a></li>
<li class="toclevel-2"><a href="#Ease_Of_Use"><span class="tocnumber">3.5</span> <span class="toctext">Ease Of Use</span></a>
<ul>
<li class="toclevel-3"><a href="#Improving_the_.22Out_of_the_Box.22_Experience"><span class="tocnumber">3.5.1</span> <span class="toctext">Improving the "Out of the Box" Experience</span></a></li>
<li class="toclevel-3"><a href="#Maturity_and_Project_Readiness"><span class="tocnumber">3.5.2</span> <span class="toctext">Maturity and Project Readiness</span></a></li>
</ul>
</li>
<li class="toclevel-2"><a href="#Technology_Trends"><span class="tocnumber">3.6</span> <span class="toctext">Technology Trends</span></a>
<ul>
<li class="toclevel-3"><a href="#Cloud_Computing"><span class="tocnumber">3.6.1</span> <span class="toctext">Cloud Computing</span></a></li>
<li class="toclevel-3"><a href="#Multi-Core_CPU"><span class="tocnumber">3.6.2</span> <span class="toctext">Multi-Core CPU</span></a></li>
<li class="toclevel-3"><a href="#64-bit_CPU"><span class="tocnumber">3.6.3</span> <span class="toctext">64-bit CPU</span></a></li>
</ul>
</li>
<li class="toclevel-2"><a href="#Scaling_Up"><span class="tocnumber">3.7</span> <span class="toctext">Scaling Up</span></a></li>
<li class="toclevel-2"><a href="#Enterprise_Ready"><span class="tocnumber">3.8</span> <span class="toctext">Enterprise Ready</span></a>
<ul>
<li class="toclevel-3"><a href="#Provisioning"><span class="tocnumber">3.8.1</span> <span class="toctext">Provisioning</span></a></li>
<li class="toclevel-3"><a href="#Ease_of_Deployment.2C_Servicability_.26_Managability_of_Large_Scale_Installations"><span class="tocnumber">3.8.2</span> <span class="toctext">Ease of Deployment, Servicability &amp; Managability of Large Scale Installations</span></a></li>
<li class="toclevel-3"><a href="#Facilitated_On-Boarding"><span class="tocnumber">3.8.3</span> <span class="toctext">Facilitated On-Boarding</span></a></li>
</ul>
</li>
<li class="toclevel-2"><a href="#Design_for_Extensibility"><span class="tocnumber">3.9</span> <span class="toctext">Design for Extensibility</span></a></li>
<li class="toclevel-2"><a href="#Consistent_Multi_Programming_Language_Support"><span class="tocnumber">3.10</span> <span class="toctext">Consistent Multi Programming Language Support</span></a></li>
</ul>
</li>
<li class="toclevel-1"><a href="#Persistent_.26_Pervasive_Themes"><span class="tocnumber">4</span> <span class="toctext">Persistent &amp; Pervasive Themes</span></a>
<ul>
<li class="toclevel-2"><a href="#Accessibility_Compliance"><span class="tocnumber">4.1</span> <span class="toctext">Accessibility Compliance</span></a></li>
<li class="toclevel-2"><a href="#Internationalization_.26_Localization"><span class="tocnumber">4.2</span> <span class="toctext">Internationalization &amp; Localization</span></a></li>
<li class="toclevel-2"><a href="#Upgrade_Path"><span class="tocnumber">4.3</span> <span class="toctext">Upgrade Path</span></a></li>
</ul>
</li>
<li class="toclevel-1"><a href="#Deferred_Themes"><span class="tocnumber">5</span> <span class="toctext">Deferred Themes</span></a></li>
<li class="toclevel-1"><a href="#Pending_Themes"><span class="tocnumber">6</span> <span class="toctext">Pending Themes</span></a>
<ul>
<li class="toclevel-2"><a href="#Vertical_market-specific_initiatives"><span class="tocnumber">6.1</span> <span class="toctext">Vertical market-specific initiatives</span></a></li>
<li class="toclevel-2"><a href="#Identity_.28.26_Security.29_Management"><span class="tocnumber">6.2</span> <span class="toctext">Identity (&amp; Security) Management</span></a></li>
<li class="toclevel-2"><a href="#Extending_to_be_Life-cycle_Platform"><span class="tocnumber">6.3</span> <span class="toctext">Extending to be Life-cycle Platform</span></a></li>
</ul>
</li>
<li class="toclevel-1"><a href="#Known_Issues"><span class="tocnumber">7</span> <span class="toctext">Known Issues</span></a></li>
</ul>
</li>
</ul>
</td></tr></table><script type="text/javascript"> if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } </script>
<a name="Previous_Versions"></a><h2> <span class="mw-headline"> Previous Versions </span></h2>
<ul><li> <a href="http://www.eclipse.org/org/councils/themes.html" class="external text" title="http://www.eclipse.org/org/councils/themes.html" rel="nofollow">v1 Themes and Priorities (2005)</a>
</li><li> <a href="http://www.eclipse.org/org/councils/roadmap_v2_0/themes_v2_0.php" class="external text" title="http://www.eclipse.org/org/councils/roadmap_v2_0/themes_v2_0.php" rel="nofollow">v2 Themes and Priorities (2006)</a>
</li><li> <a href="http://www.eclipse.org/org/councils/roadmap_v3_0/themes_v3_0.php" class="external text" title="http://www.eclipse.org/org/councils/roadmap_v3_0/themes_v3_0.php" rel="nofollow">v3 Themes and Priorities (2007)</a>
</li></ul>
<a name="Theme_Categorization"></a><h2> <span class="mw-headline"> Theme Categorization </span></h2>
<p>Eclipse themes are described in one of four categories.
</p>
<ul><li> Active themes are those that are ongoing and changing. From time to time, some Active themes will become Persistent and Pervasive.
</li><li> Persistent and Pervasive themes are not time or release specific. Persistent and Pervasive themes are not only a signal of importance, but permanence.
</li><li> Deferred Themes are not an indication of priority, but are an indication that there are technical or resource inhibitors preventing them from becoming an Active Theme. Deferred themes are a signal to the ecosystem that help is needed.
</li><li> Pending Themes are new and interesting themes that have not yet been properly explored and discussed to become an Active theme.
</li></ul>
<a name="Active_Themes"></a><h2> <span class="mw-headline"> Active Themes </span></h2>
<a name="Platform_Support"></a><h3> <span class="mw-headline"> Platform Support </span></h3>
<p>While Eclipse has been very successful with Java developers on Windows systems, we endeavour to provide platform support for additional existing and upcoming platforms.
</p>
<a name="Vista"></a><h4> <span class="mw-headline"> Vista </span></h4>
<p>Approximately 85% of Eclipse download requests are for the Windows OS. With the Vista release there are a number of efforts to port Windows applications. This presents an opportunity for organizations who will take the opportunity to migrate to the more ubiquitous and portable Eclipse platform. In order to leverage the opportunity as much as Vista, it is essential that relevant Eclipse projects support and leverage VISTA. For example, Avalon APIs need to be implemented in SWT.
</p><p>Vista will be important as both a platform used by developers, as well as one to which the resultant applications and/or products will be deployed.
</p><p>Longhorn represents the server implementation of Vista. Given Eclipse's ongoing use in the development of enterprise software, support for use of the Eclipse platform is desirable.
</p>
<a name="Linux"></a><h4> <span class="mw-headline"> Linux </span></h4>
<p>Linux continues to grow in market share as a platform for projects at all levels. We need to offer strong support for Linux on two dimensions:
</p>
<ul><li> As a deployment platform for applications developed using Eclipse technology
</li><li> As a platform used by developers as their primary working environment
</li></ul>
<a name="Mac_OS_X"></a><h4> <span class="mw-headline"> Mac OS X </span></h4>
<p>Mac OS X is used in many development, open source and end user environments and is a very active community. Throughout 2007 and 2008 there has been a steady increase in Mac platform downloads of Eclipse packages from about 3% of downloads to over 6% of downloads. Eclipse needs to continue to provide some level of support for users of this platform.
</p>
<a name="Support_for_the_latest_Java.28tm.29_versions"></a><h4> <span class="mw-headline"> Support for the latest Java(tm) versions </span></h4>
<p>Eclipse endeavours to support next generations of the Java platform in a timely manner. The first stage of support is that end users can build applications that target the latest JDK versions. The next stage of support is that projects themselves are able to take advantage of the latest JDK changes.
</p>
<a name="Rich_Client_Platform_.28RCP.29"></a><h3> <span class="mw-headline"> Rich Client Platform (RCP) </span></h3>
<p>RCP adoption has been strong by the ecosystem in 2006. The goal is for projects to support and use the Eclipse RCP as much as possible.
</p><p>Aside from general use of RCP, there are two additional dimensions to this theme.
</p>
<ol><li> Enabling broader use of RCP on smart devices such as PDAs and enhancing the abilities of RCP to work in these environments.
</li><li> Making RCP as easy as possible to use so that it's easier for application developers to adopt.
</li></ol>
<p>The Equinox project is an example of the focus on the OSGi component model within Eclipse. The Ecosystem requires Additional PDE enhancements to facilitate developing and deploying RCP-based applications, and for OSGi bundle manifest tooling.
</p>
<a name="Rich_Internet_Applications_.28RIA.29"></a><h3> <span class="mw-headline"> Rich Internet Applications (RIA) </span></h3>
<p>Flex, Ajax and other "Web 2.0" technology (see <a href="http://en.wikipedia.org/wiki/Web_2.0" class="external text" title="http://en.wikipedia.org/wiki/Web_2.0" rel="nofollow">Wikipedia discussion on Web 2.0</a>) has enabled the development of a new generation of web sites that provide a rich and user-friendly experience in a wide variety of applications. While the initial adopters of this technology have been social web sites, it's adoption is increasingly seen in business applications such as CRM systems.
</p><p>As developers shift from the development of traditional web sites to Web 2.0-style sites, the role of Eclipse as a development framework for these applications must be considered. In order to retain these developers, the Eclipse platform could provide strong support for developing applications that leverage Web 2.0 technologies such as Flex, Ajax and Web Services APIs.
</p>
<a name="Embedded_Device_Software"></a><h3> <span class="mw-headline"> Embedded Device Software </span></h3>
<p>This theme describes additions to Eclipse to provide standardization and extensibility to enable embedded tools providers, real-time operating system providers, semiconductor vendors, and hardware developers to create embedded-specific capabilities on top of standard Eclipse projects such as the Platform, JDT, eRCP, CDT, and TPTP. These capabilities could include the following.
</p>
<ul><li> Drive consistency in the workflow for embedded development tools and projects.
</li><li> Continue evolving the debug platform API’s to support embedded debugging. This debug model will enable integration of debug engines from multiple vendors for debugging bare metal hardware, bringing up operating systems, and developing applications on single and multi-core hardware. This implementation will also enable vendors to integrate target simulation and emulation environments with Eclipse.
</li><li> Build a remote target launching, exploring, and management framework with extensible real-time operating system visibility. This framework will provide complex launching capabilities for deploying multiple target images to multiple devices.
</li><li> Enable C++ GUI application design, build, and deployment for mobile devices running any operating system. Also enable vendors to customize run-time libraries for their operating systems.
</li><li> Provide mobile Java application development support for J2ME mobile profiles, including extensible frameworks for devices and emulators and capabilities for application build and deployment, code obfuscation, code optimization, image signing, and localization.
</li><li> Complete the 1.0 release of the embedded Rich Client Platform.
</li><li> Enable mobile Linux application development, including design, development, debug, and deployment of cross-compiled applications.
</li><li> Provide embedded testing capabilities - monitoring, profiling, and unit testing.
</li></ul>
<a name="Ease_Of_Use"></a><h3> <span class="mw-headline"> Ease Of Use </span></h3>
<p>The Eclipse components need to not only provide features that advanced users demand, but also be something that users find simple to use. The goal of this theme is to ensure that Eclipse-based products are simple to use for users with widely-varying backgrounds and skill sets performing a variety of tasks. Examples include:
</p>
<ul><li> Provide Eclipse User Experience Guidelines to ensure consistency and usability (including Accessibility) across projects.
</li><li> Usability reviews and updates to new and existing user interfaces to streamline common processes and clarify concepts and terminology.
</li><li> Improving support for Cheat Sheets to assist users in performing tasks.
</li><li> User personas/roles to streamline the user interface to adapt to specific user needs.
</li><li> Continue improvements on the Java editor towards tolerating broken code .
</li><li> Enhanced user documentation, tutorials, white papers, demonstrations.
</li></ul>
<p>For example, if a user interface wizard provides a short path to performing a task, make sure that usability studies have identified the most common task performed by the target users.
</p>
<a name="Improving_the_.22Out_of_the_Box.22_Experience"></a><h4> <span class="mw-headline"> Improving the "Out of the Box" Experience </span></h4>
<p>All projects could consider improved packaging, installation and "out-of-the-box" experience to be critical objective.
</p><p>Through efforts, such as the Eclipse Packaging Project, Eclipse should continue to expand out-of-the-box role-based offerings.
</p>
<a name="Maturity_and_Project_Readiness"></a><h4> <span class="mw-headline"> Maturity and Project Readiness </span></h4>
<p>Every project has the capability to damage the reputation and brand of Eclipse if it is claimed to be "release" quality, but clearly is not. Quality refers not only to the reliable execution of typical use cases, but also to documentation, feature completeness, etc. Moreover, when new functionality or architecture replaces old between versions, it is important that features be maintained (or a plan for doing so made available) to not give the appearance of eliminating features.
</p>
<a name="Technology_Trends"></a><h3> <span class="mw-headline"> Technology Trends </span></h3>
<p>Existing and new Eclipse projects need to consider key technology trends in the market to ensure that the Eclipse platform continues to retain it's leadership as the framework and tool of choice for developers.
</p>
<a name="Cloud_Computing"></a><h4> <span class="mw-headline"> Cloud Computing </span></h4>
<p>More and more applications are being built to handle bursts of high volume traffic and data by making use of "cloud computing" architectures. By deploying to the "cloud", application developers are more frequently building applications to run on servers where they have little control or knowledge of the underlying technology infrastructure. In many cases this also means relying on non traditional data formats, planning for redundency and fail-over and keeping interactions low-state.
</p><p>Having tools and projects that support a tools ecosystem for Cloud Computing application developers would be an enormous benefit to Eclipse.
</p>
<a name="Multi-Core_CPU"></a><h4> <span class="mw-headline"> Multi-Core CPU </span></h4>
<p>Due to power constraints, there is a trend towards multiple cores on a CPU instead of merely increasing the CPU frequency. Eclipse could enable developers to write multi-threaded programs to take advantage of the increasing miltiple cores. Moreover, Eclipse itself could be optimized where possible for running on multiple cores.
</p>
<a name="64-bit_CPU"></a><h4> <span class="mw-headline"> 64-bit CPU </span></h4>
<p>Diverse application software such as payroll, datawarehousing, and reporting now routinely manipulate large amounts of data that exceed 2GB. Using 64-bit CPUs enables these applications to manipulate large data in memory rather than having to write and read intermediate results to much slower disks.
</p><p>The availability of 64-bit CPUs and matching 64-bit versions of supported OSs is growing, not only on the server but on the desktop. As these 64-bit environments become more popular and Eclipse technology-based server applications become more prevalent, Eclipse could be optimized to run within these environments and aide developers who building on, and/or targeting to, 64-bit solutions.
</p>
<a name="Scaling_Up"></a><h3> <span class="mw-headline"> Scaling Up </span></h3>
<p>This refers to the need for Eclipse to deal with development and deployment on a larger and more complex scale. Increasing complexities arise from:
</p>
<ul><li> Large development teams distributed in different locations,
</li><li> Large source code bases, large amounts of data, multiple scripting and programming languages, complex build environments that have been developed incrementally over time the dynamic nature of new source code bases and their interaction with configuration management, and build environments involving many different tool chains and build rules.
</li><li> Large volumes of data
</li></ul>
<p>Possibilities:
</p>
<ul><li> Performance improvements in memory footprint, user perceived response times, and start-up times as the complexity and number of projects, files, users, and plug-ins grow (10X-100X over the next two years). This is particularly important in client/server environments where a single Solaris, AIX, Linux or HP-UX server must support dozens of concurrent Eclipse users and where Eclipse competes mostly with command line tools.
</li><li> Improve support for and performance with Motif based window managers on Solaris (drag and drop, etc)
</li><li> Improve remote X window performance
</li><li> Improve performance when creating, loading, importing and closing projects with slow file systems (networks)
</li><li> All Eclipse projects could identify common use cases and publish performance benchmarks on every milestone.
</li><li> Ability to deal with extremely large projects and workspaces where there is a large number of developers working on different, and sometimes overlapping parts of the source tree simultaneously. This may include a more efficient way to manage multiple workspaces. Examples of large projects include Mozilla and Open Office.
</li></ul>
<a name="Enterprise_Ready"></a><h3> <span class="mw-headline"> Enterprise Ready </span></h3>
<p>Large organisations have a need to support large numbers of users have and maintain similar Eclipse set-ups.
This could involve various aspects of the system, eg. what Eclipse components are installed, what preferences and other values are set etc. On one level this could be a convenience thing so that this would enable central management to help developer workstations be up-to-date, on a different level some organizations might want a policy of strict control where the maintenance of the environment is also about enforcing a development policy and toolset, this would need more work in that it would require Eclipse internal policy management.
</p>
<a name="Provisioning"></a><h4> <span class="mw-headline"> Provisioning </span></h4>
<p>Ease of installation, deployment, of pre-canned packages (or products) while allowing easy discovery and mixing-in of additional functionality. This includes not only traditional Eclipse features and plugins but could also include the ability to pick from and install various runtimes, servers, libraries, or databases. I also could include not only the initial installation by one end-user, but could also include maintenance, remote installation or management of several installations, etc.
</p>
<a name="Ease_of_Deployment.2C_Servicability_.26_Managability_of_Large_Scale_Installations"></a><h4> <span class="mw-headline"> Ease of Deployment, Servicability &amp; Managability of Large Scale Installations </span></h4>
<ul><li> Zero-conf discovery of Update Site &amp; Pref/Config Repositories
</li><li> Shared Hierarchical Configuration (First-class Preferences, Perspective Configurations, Team Share Preferences, Update Site Preferences, etc.)
</li><li> Simplified Update of the Platform Bits
</li><li> Plug-in Cross-Dependency Awareness / Version Incompatibility
</li><li> Improve the Eclipse project and workspace concept to allow overlapping environments
</li><li> Ability to fit into an existing environment of source files, build artifacts and version control repositories with minimal disruption to let developers complete a full edit-compile-debug cycle in the shortest possible time. This may include better support for multiple programming languages across language toolkits for improved usability. This would also include a more flexible project model.
</li></ul>
<a name="Facilitated_On-Boarding"></a><h4> <span class="mw-headline"> Facilitated On-Boarding </span></h4>
<p>Features to enable a developer to get started as part of a (new or existing) team. This could include
</p>
<ol><li> Making sure that the person has the correct software set-up,
</li><li> That the software settings are appropriate for the team and then finally (which falls outside perhaps of the above management) that the projects and the project content can be easily "bootstrapped" to the new workstation.
</li></ol>
<p>Example Story: <i>Here the ultimate goal could be that once a "team manager" has been told the IP address of a new member's PC, he would have 10 minutes later a fully configured Eclipse workstation with all the project's Eclipse project and all related settings on his/her machine.</i>
</p>
<a name="Design_for_Extensibility"></a><h3> <span class="mw-headline"> Design for Extensibility </span></h3>
<p>Within the Eclipse community, many development projects are defining new development platforms on top of other Eclipse projects. Concrete examples include the Business Intelligence Reporting Tools, the Data Tools, and the Device Software Development Platform projects. It is recognized, however, that some function is not strictly required by the underlying projects but are important to enable other platforms to succeed. This theme also includes effort to assure platform integrity.
</p><p>Some identified key requirements for this theme are:
</p>
<ul><li> Robust API documentation
</li><li> API tools to detect use of internal interfaces
</li><li> Expose meaningful building block APIs
</li><li> Open the internal JDT (UI) interfaces to enable tools to seamlessly facilitate and interact with the JDT core and UI layers. For example the parsing and AST functionality.
</li><li> Enhance the Debug API to enable seamless debugging across mixed (Java+native) languages
</li><li> Provide a more flexible mechanism that can be used to debug non-Java programs. This is both in the debug model and presentation
</li><li> Provide for debugging a system comprised of multiple languages
</li><li> Enable task automation
<ul><li> Provide access to Eclipse APIs and resources from scripting languages
</li><li> Provide the capability to record, edit, playback macros, representing a set of user interface actions.
</li></ul>
</li><li>Provide a better experience for the co-existence of offerings from multiple vendors in a single Eclipse installation
</li><li>Permit offering brand/identity to show through (e.g. On the splash screen)
</li><li>Allow for license management of "products" (i.e. Aggregations of features)
</li><li>Integrated diagnostic capabilities - e.g. When a user encounters a problem, providing assistance on the where the problem originated, which product
</li><li>Loosen the strong file orientation by providing an abstraction layer of logical objects to allow one to extend Eclipse functionality tools working at a higher abstraction level.
</li><li> Authoring, deploying and managing components/features/etc.
<ul><li> Bolster OSGi Adoption (via authoring assistance, etc.)
</li><li> Headless Execution
</li><li> Server-side Runtime Infrastructure
</li><li> Core &amp; UI Split
</li></ul>
</li></ul>
<a name="Consistent_Multi_Programming_Language_Support"></a><h3> <span class="mw-headline"> Consistent Multi Programming Language Support </span></h3>
<p>The original vision of Eclipse was to accelerate the creation of IDEs. There is a lot of work to do to make it simpler to create language-specific IDEs. Our vision is to:
</p>
<ul><li> Make it easier to create language specific tools in a consistent way
</li><li> Enabling source files written in multiple languages within the same project.
</li></ul>
<a name="Persistent_.26_Pervasive_Themes"></a><h2> <span class="mw-headline"> Persistent &amp; Pervasive Themes </span></h2>
<a name="Accessibility_Compliance"></a><h3> <span class="mw-headline"> Accessibility Compliance </span></h3>
<p>Every project could support and make a statement on their accessibility compliance. In the U.S., this means Section 508 compliance; in the European Union, this is the Web Accessibility Initiative of the World Wide Web Consortium (W3C).
</p>
<a name="Internationalization_.26_Localization"></a><h3> <span class="mw-headline"> Internationalization &amp; Localization </span></h3>
<p>Every project could support both internationalization and localization:
</p>
<ul><li> Internationalization (I18N) <br />Each project could be able to work in an international environment, including support for operating in different locales and processing/displaying international data (dates, strings, etc.).
</li><li> Localization <br />Each project could provide an environment that supports the localization of the technology (i.e. translation). This includes, but is not limited to, ensuring that strings are externalized for easy translation.
</li></ul>
<p>Where possible, projects should use an open and transparent process to create, maintain and deliver language packs translated into multiple languages in a timely manner. The primary languages to consider are: English, Simplified Chinese, Traditional Chinese, Japanese, French, German, Spanish.
</p>
<a name="Upgrade_Path"></a><h3> <span class="mw-headline"> Upgrade Path </span></h3>
<p>Upward compatibility is a critical aspect of developer satisfaction and community growth. Developers need to be able to adopt the latest release of Eclipse technology without reworking their applications. Extensive rework incurred during a migration will lead to developer frustration and the possibility that they will evaluate and adopt other tools. Smooth upward migration is therefore a core Theme that all projects must consider.
</p><p>This includes:
</p>
<ul><li> Assuring release-to-release migration is supported (e.g., resources, workspaces, API, as appropriate).
</li><li> Assuring API compatibility release-to-release, including testing for upward compatibility
</li><li> Clear statements indicating which APIs are intended for internal use only (and are not guaranteed to be upward compatible)
</li><li> Providing tools that automate the migration process where possible
</li></ul>
<a name="Deferred_Themes"></a><h2> <span class="mw-headline"> Deferred Themes </span></h2>
<p>None currently.
</p>
<a name="Pending_Themes"></a><h2> <span class="mw-headline"> Pending Themes </span></h2>
<p>These items will need more investigation before they can be described and prioritized effectively.
</p>
<a name="Vertical_market-specific_initiatives"></a><h3> <span class="mw-headline"> Vertical market-specific initiatives </span></h3>
<p>With the establishment of Eclipse as a dominant platform for building tools and applications, it is logical that Eclipse technology begin to play a major role in vertical industry initiatives. Vertical markets should not be confused with Technology Segments where Eclipse technology is generally consumed very rapidly. Examples of quick Eclipse adoption in new technology segments include Ajax and other Web2.0 tools and applications. Vertical markets are much more solutions oriented and have broad reach into a technology stack. The Eclipse projects should be aware that Eclipse is becoming a major player in the Healthcare and Automotive verticals, and there are signs of it becoming a key platform in a number of other verticals. In Automotive, for example, Eclipse based technology is used in CAD tools, workflow tools, embedded design tools, etc.
</p>
<a name="Identity_.28.26_Security.29_Management"></a><h3> <span class="mw-headline"> Identity (&amp; Security) Management </span></h3>
<ul><li> KeyStore
</li><li> JAAS
</li><li> JCA
</li><li> SAML
</li><li> Federated Identity
</li><li> SSO (Single Sign-On)
</li></ul>
<a name="Extending_to_be_Life-cycle_Platform"></a><h3> <span class="mw-headline"> Extending to be Life-cycle Platform </span></h3>
<p>TBD
</p>
<a name="Known_Issues"></a><h2> <span class="mw-headline"> Known Issues </span></h2>
<ul><li> Linux Localization Lacking
</li><li> Mac OS X Cocoa
</li><li> Mac OS X Carbon Accessibility (S 508 compliance) and I18N/L10N
</li></ul>
<ul><li> PM
<ul><li> Cross-Project Coordination of UX
</li><li> Eclipse.org to Sponsor Independent UX Focus Groups?
</li></ul>
</li></ul>
<ul><li> My 1st Week w/ Eclipse
<ul><li> How can we encourage downloaders to become dedicated users?
</li><li> Focus on the "majority user" personas and their use cases.
</li><li> "That first mile"
</li></ul>
</li></ul>
<p>The individual projects are great at delivering new features and improved capabilities, but access to these features is gated by the experience that an individual already has with the project providing the features. For example, &lt;&lt;insert cool but esoteric JDT feature here that you wouldn't know about unless you religiously read the What's New for the JDT for each release&gt;&gt;.
</p><p>"My 1st Week with Eclipse" is a theme that asks the projects to consider the new downloader who may be evaluating Eclipse to help them with the typical work-- and then create assistive assets-- "wizards", forms, cheat sheets and other (already present) usability features, to assist those new users during their evaluation.
</p><p>This body of "typical work" will most often take the form of a set of use cases or scenarios, that can be facilitated by hard-to-miss assistive assets.
</p><p>Sadly, the use of Welcome Page content is deemed too easy to gloss over, and many people never find the cheat sheets. A typical initial interaction with Eclipse is that users disable the Welcome Page, and frequently close any residual documentation Views and set-about the work of solving some specific problem (such as debugging a web app, creating a web app, writing code, running unit tests, etc.).
</p><p>Measures need to be taken to bring the assistive assets back into the field-of-view of even these users. Concern for the much-maligned Microsoft(tm) "Clippy(tm)" metaphor needs to be considered here too, as the goal is not to create an obtrusive experience-- but a "sticky" one, where users will be enabled to "keep using eclipse" and develop a rapport with Eclipse that will lead them to discover the less common and more valuable aspects of the platform.
</p>
<ul><li><ul><li> As a JEE developer
</li><li> As a PHP developer
</li></ul>
</li></ul>
<!--
NewPP limit report
Preprocessor node count: 38/1000000
Post-expand include size: 0/2097152 bytes
Template argument size: 0/2097152 bytes
#ifexist count: 0/100
-->
<!-- Saved in parser cache with key wikidb:pcache:idhash:7628-0!1!0!!en!2!edit=0 and timestamp 20081203161246 -->
</div>
<div id="rightcolumn">
<div class="sideitem">
<h6>Thank you!</h6>
<p>Our thanks to <a href="../../foundation/thankyou.php">HP, IBM, Intel, Magma and Novell</a> for generous donations to our website infrastructure.</p>
</div>
<div class="sideitem">
<h6>Related Links</h6>
<ul>
<li><a href="../../../projects/">Projects</a></li>
<li><a href="../../../membership/">Membership</a></li>
<li><a href="../../../membership/become_a_member/">Become a member</a></li>
</ul>
</div>
</div>
</div>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-910670-2");
pageTracker._initData();
pageTracker._trackPageview();
</script></div><div id="footer">
<ul id="footernav">
<li class="first"><a href="http://www.eclipse.org/">Home</a></li>
<li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
<li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a><a href="http://www.eclipse.org/org/press-release/20081112_termsofuse.php"><img src="http://www.eclipse.org/images/updated.png" align="absmiddle" /></a></li>
</ul>
<p>Copyright &copy; 2008 The Eclipse Foundation. All Rights Reserved</p>
</div></body></html>