A Technology Project Proposal
The Mylar Project is a proposed open source project under the Eclipse Technology Project.

This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process document) and is written to declare its intent and scope. This proposal is written to solicit additional participation and input from the Eclipse community. You are invited to comment on and/or join the project. Please send all feedback to the news:// newsgroup.

When used on large systems, Eclipse views become overloaded with elements.  Tree views often contain deep hierarchies with thousands of nodes, search results often contain hundreds of elements, and each needs to be inspected carefully to find elements related to the task-at-hand.  The end result is that developers spend more time looking for the information they need to get a task done than they do programming.  Although the Eclipse IDE is better than most for working on large systems, features such as working sets still burden the developer with manual configuration as tasks change.  The problem is that the current IDE user interface, which shows system wide slices of program structure, does not scale to very large systems.  As systems continue to grow, this problem will continue to get worse.  But no matter how complex a system is, for any task that developers work on--any defect they fix or feature they add--developers only care about a subset of the system.  Mylar proposes that the Eclipse user interface only needs to show developers what they are working on.

The current Mylar prototype makes working with very large Java and plug-in projects in Eclipse as easy as it is to work with small projects.  It does this by encoding developers' editing and navigation activity in a degree-of-interest model and using the standard Eclipse views to show only the relevant elements.  It also finds related information by actively searching the source code and related artifacts.  The result is that the Mylar plug-in dramatically reduces the need to navigate, search, inspect, and scroll around looking for the information needed for the task-at-hand.  We propose Mylar as an Eclipse Technology Project with the intent of demonstrating how the core pieces of this technology are relevant to the Eclipse platform and tools projects, and in the process creating a useful plug-in with an active community. 

Version 0.1 of Mylar was tested in an August 2004 user study at IBM Toronto, where 6 senior developers working on enterprise applications and plug-ins used the tool during one week of their daily work.  As reported in the AOSD 2005 Mylar paper, the tool resulted in a substantial productivity improvement.  The first public presentation of Mylar was given at EclipseCon 2005 and was very well received.  Email feedback includes statements such as "I thought Mylar was the most exciting technology I saw at the conference (including all the commercial vendor offerings)!" [Sean Woodhouse, Technical Director of Verasta]. Several blog entries have also featured Mylar, including:


The objectives of the Mylar project are to:

  • Demonstrate that modeling task context is a core concern of the IDE platform, and that it can be seamlessly integrated into Eclipse to better support developers working with large workspaces.

  • Build the core models, infrastructure, and UI components required to model and expose task context.  The reference implementation will be tools for Java and Eclipse plug-in development.

  • Solicit contributions to extend the interest model to additional Eclipse development platforms as C/C++ and J2EE, and to additional tools such as those for task management and information visualization.

  • Provide a platform for ideas and prototypes that help scale the Eclipse user interface to very large systems.


The prototype implementation of Mylar is documented in the EclipseCon presentation.  The core Mylar component monitors the developer's editing and navigation activity and builds a degree-of-interest model.  It exposes the degree-of-interest API, used by the Mylar UI to provide generic facilities for exposing interest in Eclipse workbench views and editors.  These facilities provide interest-based highlighters, filters, sorters, and decorators. 

Additional Mylar tools extend the core model and UI facilities and add tool-specific interest encoding and search facilities.  For example, the Java development support provides Mylar extensions of views such as the Package Explorer, Type Hierarchy and Java Editor, and drives the JDT's search.  AOP support does the same for AJDT.  XML-specific extensions support J2EE and plug-in development.  Task management support integrates issue tracking systems such as Bugzilla.  Future extensions include debugging support, Dynamic Help integration, interest model visualization and C/C++ development support.


Initial committers

The initial committers will focus on evolving and hardening the Mylar model by delivering support for Java development.  Our agile development process will follow's standards for openness and transparency.  Our goal is to provide the infrastructure and APIs needed to integrate task and degree-of-interest centric UIs to any Eclipse plug-ins whose users experience information overload. As such we will actively encourage contributions to Mylar.  We also plan to help improve the Eclipse platform by submitting patches and extension point suggestions.  The initial committers are:

  • Mik Kersten (UBC): project lead

  • Gail Murphy (UBC): project manager

  • Shawn Minto (UBC): component owner of Bugzilla integration and XML support

Interested parties

The following projects have expressed interest extending the model or tools, contributing ideas, guidance and discussion. Key contacts listed.

  • CHISEL lab (University of Victoria): Margaret-Anne Storey

  • JDT (IBM): Philippe Mulet

  • AspectJ/AJDT (IBM Hursley): Adrian Colyer

  • CDT (Texas Instruments Canada): Winnie Lai

  • Rational (IBM): Jin Li

Developer community

We expect to extend the initial set of committers by actively supporting a developer community.  The initial community outside of UBC will include Margaret-Anne Storey's CHISEL lab, which is planning to extend Mylar to their work on software visualization.  We have two additional developers working on Bugzilla integration, and will be working with CDT developers to extend support to C/C++.  Our goal is to have the initial developer community harden the core Mylar APIs to the point where it is easy for any other plug-in to incorporate the technology, and we will encourage all active contributors to become committers.  We will make it easy for interested parties to take an active role in the project by making our planning and process transparent and remotely accessible. 

User community

Mylar is a new technology that promises to improve the user interface and interaction model of Eclipse.  As such, supporting and soliciting feedback from a large user community of commercial developers is critical to creating a scalable model and usable UIs.  We plan on doing this by using the standard mechanisms of supporting an open project and community of early adopters.  In addition, we will collect user feedback in the form of remotely conducted user studies.  These will take a similar form to the one reported on in the AOSD 2005 Mylar paper, and will involve users sending their feedback and usage statistics on a weekly basis.  This data will provide us with detailed information on view usage, navigation patterns, and the accuracy and predictability of the Mylar model.

Since the EclipseCon presentation over 75 people have signed up for the summer user study.  Those individuals will form our initial user community.  With the input of the study we plan on tuning the Mylar model and UIs, and subsequently growing our user and developer communities.  For information on the user user study please refer to the Mylar page.

Tentative Plan

2004-08 v0.1: internal release for IBM Toronto user study
2005-02 v0.2: internal release for EclipseCon presentation

2005-04 v0.3: internal bootstrap release
2005-06 v0.4: public release for user study

"Mylar" is:
a) An aluminized film used to avoid blindness when staring at a solar eclipse
b) A user interface and interaction ‘skin’ used to avoid information blindness when staring at Eclipse