Mylyn 2.1: Refactoring the Eclipse User Interface to increase productivity

| by Ryan Slobojan Follow 0 Followers on Oct 17, 2007. Estimated reading time: 5 minutes |

Mylyn, an Eclipse plug-in which was integrated into Eclipse 3.3, recently released version 2.1. InfoQ spoke with Mylyn project lead Mik Kersten to learn more about this release and what changes Mylyn 2.1 brings to Eclipse-based development.

One of the biggest changes which came with Mylyn 2.0 was a name change - version 1.0 was called Mylar. Kersten explained the name change as:

We outgrew the old name. Mylyn started out as the implementation of my PhD thesis, but very quickly moved to being adopted by a substantial user large community, grew in committers, and started receiving dozens of monthly patches. The Eclipse Foundation does due diligence on the intellectual property of all of its projects, ensuring that they can be readily adopted by the commercial ecosystem. It was impossible for the Eclipse foundation to assert rights to our old “mylar” name due trademark issues. We were already being redistributed by CodeGear’s JBuilder and as an Eclipse project needed to ensure that such vendors could provide Mylyn’s benefits to their user bases as well. With the Eclipse Foundation’s support we changed the name to a more unique one. The new name is a tribute to the “myelin” substance, which accelerates your thoughts by making neurons much more efficient at conducting electricity. We’ve heard users claim that the Mylyn tool increases their efficiency to the point where they feel like they are coding at the speed of thought. Reducing the UI friction that thwarts our productivity is what the Mylyn project is all about.

The major features which Mylyn provides are:

  • Task-Focused User Interface - the interface automatically hides items which are not part of the current task, and keeps track of what items are related to a given task
  • Integration with Task Repositories - draws lists of tasks from Bugzilla, JIRA, and Trac as well as several other providers
  • Rich editing and transparent offline work - automatic caching of task changes, and automatic synchronization when back online
  • Complete Eclipse 3.3 integration - utilizes new Eclipse 3.3 facilities such as pervasive hyperlinking, editor-based content assist and Forms support

At it's core, Mylyn is a refactoring of the Eclipse user interface which intends to increase productivity by presenting as much relevant information as possible while at the same time preventing information overload. InfoQ reviewed a detailed, two-part article which discusses Mylyn's features and functionality, and asked Kersten to summarize both how long it should take to get Mylyn up and running, and how long it would take the average developer to adjust to Mylyn's interface:

Mylyn is all about integration, which means that we support a broad range of tools. Since Mylyn provides a fundamental change in the way we work, we also make sure that every feature it adds is optional and incrementally adoptable. Here’s one concrete example of how you may get started with it if you’re using JIRA as your issue tracker:
  • Google for "mylyn downloads", grab the Update Site for your version of Eclipse and for your issue tracker (e.g. JIRA) and version control (e.g. SVN), then install using Eclipse’s Update Manager
  • Notice that you now have a Task List in Eclipse. Enter your JIRA credentials and hit Validate Settings. Complain to the sysadmin if you get a message that they should turn on SOAP/RPC
  • Create a query in the Task List that uses one of your saved filters on the JIRA service and start working with Mylyn’s rich task editor
Hopefully that didn’t take more than fifteen minutes (please file a bug if it did) and your tasks are now in Eclipse and you have all the benefits of Mylyn’s Task Repository integration including offline support and personal planning. Now you get curious about this Task-Focused UI that you’ve heard about, and prompted by either the Cheat Sheet that comes with Mylyn or other documentation you do the following:
  • Activate the task via the popup menu. Mylyn will now manage the Eclipse UI to show you only the elements and editors relevant to the task. Task activation is the one new step that Mylyn adds to your workflow, and you’ll see the benefit right after you do it
  • Browse to a class of interest, either by the usual facilities such as Open Type, or the Alt+click shortcut that you can use to show filtered elements in a focused view. Note that only the elements that you access are visible in your views and that the elements you work with most become bold, and those you work with least disappear from view. The scrollbar and general information overload of thousands of elements in the tree view is now gone
  • Notice that a new issue has come in, activate that task, and start working on it. Your workspace now shows only what’s relevant to the new issue. If the issue was assigned to you by someone who is using Mylyn you will be automatically prompted to retrieve the context that they have shared so that you can start where they left off. When you are ready to get back to the original issue, it’s just one click to get back to where you were. The benefit of Mylyn’s one-click multitasking becomes evident as soon as you go back to a task that you worked on previously

InfoQ also asked about a set of best practices related to Mylyn adoption, and Kersten replied that his company, Tasktop Technologies, have compiled a list of best practices which they use for their own and for client work. However, he also said that generally applicable best practices tend to be incorporated into Mylyn directly, and that more usage-specific features (such as email and calendar integration) are implemented through the Tasktop Extensions to Mylyn, which are currently in beta. Kersten also mentioned the partnership between TaskTop and Interface21 to develop the Spring Tool Suite based on Eclipse and Mylyn, CollabNet's Subversion integration, and Rally's Agile-oriented Mylyn connector as other examples of the codification of usage-specific best practices.

Future plans for Mylyn include streamlining and tuning of the user interface, improvements to the 'degree-of-interest' model which drives the task-driven user interface, and increases in information density and ease of use. Kersten also said that user feedback would continue to be incorporated into new releases, especially since the user community has grown by orders of magnitude since last December's Mylyn 1.0 release.

Rate this Article

Adoption Stage

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Mylin integration with subclipse caused me to dump Europa JEE version by Dean Schulze

The Europa JEE edition with Subclipse installed with Mylin integration would stop responding for several seconds at a time. This would happen after generating a bunch of Java files in my project via Ant.

Here's the bug I filed against it and another discussion about it:

Alex Blewit and Mark Phipard helped me look into it, but we never determined exactly what the problem was.

In order to solve this issue I had to switch to Eclipse Classic 3.3 which doesn't have the Mylin plugins installed. Europa JEE doesn't allow you to remove Mylin, which is a huge mistake.

I've never liked it when someone takes the attitude "We've created a new, better way to do your work and everyone should adopt our way" which is what I sense with Mylin. The fact that it cannot be removed from Europa JEE shows that the Eclipse team has bought into this too.

The Eclipse and Mylin teams should make the Mylin plugin removeable. It causes problems, and even if it didn't not everyone wants to drink that Kool Aid.

Re: Mylin integration with subclipse caused me to dump Europa JEE version by Mik Kersten

Dean, I'm very sorry to hear that this was your experience, and I completely agree with you that whenever someone adds a new way of working it should be optional. For this reason we have made sure that Mylyn stays out of your way completely if you don't use it, that each feature can be used independently, and that parts or all of it can be easily disabled or uninstalled. To uninstall use Help (menu) -> Software Updates -> Manage Configuration and disable/uninstall the plug-ins. The problem that you were most likely running into with uninstalling is that you have to disable the Subclipse Mylyn integration before you disable the rest of Mylyn. I will add clarifications on this to the corresponding FAQ entry:

Since Mylyn is a framework that multiple extensions, like Subclipse, build on, we try to do our best to make the framework as safe as possible to malfunctions in the extensions, but we cannot control them. I will follow up further on this with the Subclipse folks and suggest something else for you to try on the corresponding bug ( In the meantime, if you could try running the standard Europe JEE and use Sublcipse without installing the additional Subclipse Mylyn feature, we would value your feedback on whether that addresses the problem.

Re: Mylin integration with subclipse caused me to dump Europa JEE version by Eugene Kuleshov

Dean, it if very unfortunate that you are bringing your issues on this side instead of the issue trackers for Mylyn and Subclipse. Sorry if it wasn't clear from the discussions you've referred to, but the troublesome feature comes from one feature in Subclipse integration for Mylyn that I implemented some time ago. It is triggered by Mylyn's own hyperlink detector. We may also introduce an option to disable that feature in Subclipse integration for Mylyn.

As Mik already mentioned, you can, of course, disable all Mylyn plugins, or you can also disable/uninstall optional Subclipse integration for Mylyn feature (leaving just the Subclipse core). Another option is disable Mylyn's hyperlink detector wich you can do at Window / Preferences / General / Editors / Text Editors / Hyperlinking.

As you can see there are several options available to disable all or selected features or plugins and it is up to you to decide what exactly you want to use.

MyLyn not an option by Chris Costigan

I had a similar issue with Europa J2EE on a clean install. If I did not have the option to download a MyLyn-free Classic version I would be using NetBeans right now.

Re: MyLyn not an option by Richard Capraro

I had similar issues with Europa J2EE (many freezes, crashes,...) and everytime i check the log, issues are caused by Mylyn.
In my point of view, Europa 3.3 is not an usable IDE for Java development, so i switched back to WTP 3.2

Re: Mylin integration with subclipse caused me to dump Europa JEE version by Dean Schulze


I filed a bug report with the subclipse project after following their procedures for filing bug reports. The issue seemed to just fall off of the radar screen, though.

I brought it up here both to alert others and to see if anybody else had encountered it, since during the discussion with Mark and Alex they didn't have anyone else confirm it. As you can see form the replies there are others who are having problems too.

Re: Mylin integration with subclipse caused me to dump Europa JEE version by Dean Schulze

I'll do a fresh install of Europa JEE with Subclipse but leaving out the Mylin integration and see what happens. I should be able to report back to you early next week.

Re: MyLyn not an option by Mik Kersten

Richard, Chris: we have had dozens of bug reports filed since Europa and Mylyn 2.0 were released, fixed all the key ones for Mylyn 2.1, but have not had *any* bug reports about any failures or crashes that are attributed to Mylyn (almost all were enhancement requests). There has been some confusion because in some scenarios Mylyn puts innocuous warning messages into Eclipse's log, but those do not cause any bad behavior (see If you see any bugs that you attribute to Mylyn please report them so that we can figure out where they are coming from. From our point of view we see countless users praising the tool, and the occasional ones with a severe problem, almost always due to an Eclipse or workspace misconfiguration. If you file a bug we will help you get to the bottom of that problem.

I understand that when a new technology is added to an IDE it is easy to blame that technology for anything that goes wrong. But since your comments sound so ominous, I would appreciate that you follow up either here or in one of our public forums so that we can determine whether there are Mylyn-related problems underlying your problematic experiences. I'd had to have such comments needlessly scare users away from using Mylyn, when we can daily comments on how much it is increasing the productivity of those who adopt it. And again, if you're not using Mylyn, and it doesn't stay completely out of your way, please feel free to file a bug and call it a blocker, since being optional has always been our key design goal.

Re: Mylin integration with subclipse caused me to dump Europa JEE version by Mik Kersten

Dean, we discussed further on the bug I and Subclipse can do little to prevent this scenario, due to the number of resources out of synch in your workspace. Mylyn will be updated to timeout such extensions in the scenario where are slow to return. Mark Phippard, Subclipse lead, lists the workarounds at: If you could try either ensuring that your Eclipse workspace is refreshed after running the Ant script (generally a good practice, setting is under External Tools -> Refresh) or not install the additional Subclipse Mylyn Change Set feature and report back that would be great, either here or on bug.

Re: Mylin integration with subclipse caused me to dump Europa JEE version by Eugene Kuleshov

Dean, I am sorry if I read it wrong, but your message didn't sound as a question to the community, but rather as a statement that Mylyn don't work and its innovative ideas should be considered harmful.

It does happen sometimes that some issues fall off the radar, but only because other issues may take priority due to lack of the resources or because lack of feedback on the bug reports. Please don't hesitate to ping on the bug reports if you feel that your issues been forgotten or require additional attention.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

10 Discuss