Friends of Eclipse,
Eclipse is an open source community that benefits millions of developers around the world each and every day! During the month of September, we are asking you to give back to our wonderful open source community. All donations will be used to improve Eclipse technology. Your contribution counts!
We thank you for this gesture, and for giving back to our community.
The themes and priorities capture the inputs to the Eclipse Requirements Council. The Eclipse Themes and Priorities is now a living, breathing document maintained by the Requirements Council and other participants. The document is maintained on the Eclipse Foundation Wiki. The inputs are from four major sources:
This page represents a baseline of the T&P Wiki page as of February 10th, 2007. The themes were generated by collecting requirements from the above sources and then synthesizing themes from the various inputs.
These are our fundamental principles, unchanged in 2007, which span all of the themes outlined below.
Eclipse themes are described in one of four categories.
While Eclipse has been very successful with Java developers on Windows systems, we endeavour to provide platform support for additional existing and upcoming platforms.
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 possible, it is essential that relevant Eclipse projects support and leverage VISTA. For example, Avalon APIs need to be implemented in SWT.
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.
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:
Mac OS X is used in many development, open source and end user environments and is a very active community. Eclipse needs to provide some level of support for users of this platform.
Eclipse endevours to support next generations of the Java platform in a timely manner. The first stage of support is that end users can build applications on the latest JDK versions. The next stage of support is that projects themselves are able to take advantage of the latest JDK changes.
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.
Aside from general use of RCP, there are two additional dimensions to this theme.
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.
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 should include the following.
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:
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.
All projects should consider improved packaging, installation and "out-of-the-box" experience to be important objectives for 2007. The goal is to broaden the appeal of Eclipse projects to a larger set of end users .
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.
AJAX and other "Web 2.0" technology (see Wikipedia discussion on Web 2.0) 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.
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 should provide strong support for developing applications that leverage Web 2.0 technologies such as AJAX and Web Services APIs.
Due to power constraints, there is a trend towards multiple cores on a CPU instead of merely increasing the CPU frequency. Eclipse should enable developers to write multi-threaded programs to take advantage of the increasing miltiple cores. Moreover, Eclipse itself should be optimized where possible for running on multiple cores.
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.
This refers to the need for Eclipse to deal with development and deployment on a larger and more complex scale. Increasing complexities arise from:
The Update Manager is a fantastic tool for a person updating his/her own installation. Preference Import & Export and Team Project Files further extend Eclipse in this regard. However in large organisations, for various reasons, the organisation might want to make sure that 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 organsiations 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.
The Eclipse Update Manager provides initial technical capabilities to enable delivering software as a service. This capability can be leveraged more to provide updated components across Eclipse projects to developer desktop in an asynchrous fashion without the developer having to do a manual dependency analysis.
Features to enable a developer to get started as part of a (new or exisiting) team. This could include
Example Story: 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.
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.
Some identified key requirements for this theme are:
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:
Every project should 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).
Every project should support both internationalization and localization:
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.
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.
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.
|John Kellerman||IBM Corporation|
|Donald Smith||The Eclipse Foundation|
Anurag Gupta (Intel) wrote the first draft of the themes and provided much feedback and leadership in v3.0.
Back to the top