A Technology Project Proposal
The Mylar Project is a proposed open source
project under the Eclipse
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
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:
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
The initial committers will focus on evolving and hardening the Mylar model by delivering support for Java development. Our agile development process will follow eclipse.org'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:
The following projects have expressed interest extending the model or tools, contributing ideas, guidance and discussion. Key contacts listed.
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.
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 eclipse.org 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.
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
2004-08 v0.1: internal release for IBM Toronto
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