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:

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.

Description

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.

Organization

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 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:

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 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.

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.