Wow! A Real Cool Idea: Mylar
Sometimes you see something and you know it is going to be successful. This week at the EclipseCon 2006 I met Mik Kersten again. I knew Mik from my many visits to the OOPSLA and from his work on Aspect Oriented Programming. With his usual enthusiasm he told me about a new project that he was working on: Mylar. After a couple of seconds I realized he was talking about similar ideas that I had been working on before OSGi (actually, which was for me a motivation to work on OSGi): using context to minimize the information exposed to the user. Or as I called it: active information. Searching will become too cumbersome; information should present itself when you needed it. After a couple of minutes I was getting as excited as he was about Mylar. This is just one of those products you know is going to be big.
The motivation for Mylar is simple: information overload. For example, most people agree that Eclipse is a fantastic environment but the consequence is that you start doing all your document work in Eclipse. The result: your navigator window starts to resemble Times Square on New Year's Eve. I currently have over 200 projects and going back and forth is painful. Working sets, the standard Eclipse facility to group projects, is no solution, Working sets require too much handiwork to be useful. Multiple workspaces could work, but switching workspace on a regular basis requires more patience than I posses.
Mylar's task is to reduce the information that is visible at any moment to only relevant items. The choice for what is relevant is based on the context and usage. For example, a context can be initiated by a bug report. For this purpose, Mylar integrates with Bugzilla and Jira. Every action you take for this bug report is recorded and becomes part of your context. If you open or navigate to a type, that type is added to your context. If you modify a method, that method becomes part of your context. Everything you do when you work on the bug report is recorded. Planning is also included. You can get reminders for tasks that are becoming overdue. Interestingly, there is also a decay function. If you touched something and it has become part of your context, it could also fall out of your context because you never use it anymore. Computers can only become truly useful if they can forget, and the decay function is clearly in this direction.
It gets even better, there is also context switching. If you have to work on another task, you select it and instantaneously the associated perspective, views, open files, and task are restored to their previous state for that context. So you are working on a bug report, a call comes in about another project, you select another task and bam! You are right back where you were the last time you worked on that task. All this happens with hardly a single extra mouse click or key stroke, which is clearly a testimony for the Eclipse extendibility model.
I have download Mylar and installed it, and so far I have gotten even more excited. It is clearly not just an interesting an idea: it really works. It is always a good sign when a demonstrator shows the product on his own working environment. Anybody that is using Eclipse for their daily work must install this Eclipse plug-in and give it a try. Bet you will not easily give it up afterwards.
Obviously, my work 7 years ago was more theoretical than practical and never advanced nearly as far as Mylar. I had lots of ideas but no way to implement anything close to Mylar at that time. However, I fully support the basic idea that searching is not the answer to information overload. Information has to become active. A key use case in my Marvin project (yes, 42) was a short list with things that Marvin thought were in context at that moment in time. For example, if you were reading an email, it would list the projects, the key people, or other related information. If you were traveling and entered the lobby of the hotel you were going to stay, the list on your cell phone should show the hotel reservation number. This is similar to what Mylar is doing in an infinitely more polished way. However, Mylar is primarily focused on the tasks you normally do inside Eclipse: working with structured documents. For me, the exciting possibility that Mylar opens is to provide a context does not suspend when you stop your laptop or close Eclipse. I like a shared context that I can use on my phone, laptop, and in my living room. A context that can go beyond document editing by linking to my location, phone calls, interaction with other people and more. Connecting the concept of the context to the real world opens up so many interesting use cases.
Talking with Mik, I see that this is very possible and nicely enabled by the OSGi component model. There seems to be no reasons why you could not maintain/synchronize your contexts on a server and let other events append to the context. It should be easy to add bundles that add semantics to the context events, which is very much the current architecture as I understand it.
So there are some mixed feelings. On one hand I am terribly excited that the Eclipse/OSGi component model enables the significant innovation done by Mylar. It is fantastic that Eclipse is now much more useful because the perspective is so less cluttered. But there is also a bit of a sad feeling that I no longer work on these exciting ideas that I am sure will make an impact on the world. Whatever, download Mylar and let me know if you are as enthusiastic as I am.
Peter Kriens
posted by Peter @ Saturday, March 25, 2006



