Living inside Eclipse, embedding browsers and Google Chrome

by Mik Kersten, September 3rd, 2008

I just spotted a neat post about Living inside Eclipse. This line of reasoning is where Gail Murphy and I were at a couple of years ago when laying out plans for bringing the benefits of Mylyn and Eclipse to activities outside of programming. We had created an RCP version of Mylyn, coined the “task-focused desktop”, and installed it on some non-programmers’ machines at the University of British Columbia. Extensions of these basic ideas are now available as Tasktop, and are giving many the “living inside Eclipse” feeling that Rahul is after. He mentions several desires to improve his life in Eclipse, which I have quoted below. Since his desires and our experiences line up so well, I’ll walk through how we support almost all of his Eclipse wish list. His first complaint was:

Eclipse web browser. Limited in features but helps during basic debugging or investigation… Wish it offered tabbed browsing.

One of the first things we did in Tasktop is to provide a full-featured tabbed browser that’s embedded within Eclipse. It builds on the existing SWT Browser widget and provides all of the features that you expect from a modern browser, such as password completion. I recently read the Google Chrome announcement and will compare the two browsers’ features. Let me clarify that we are not a copy of Chrome, since we first released these features in February ’08. But it’s great to see uptake of a “less is more” approach to browser UI design. Here’s Chrome:

One of the biggest UI changes that the Chrome team points out is the placement of the address box under the tabs. This was a natural choice for Tasktop, since Eclipse makes the tab a first class part of the UI. It’s nice to see this approach taken by another browser since Firefox 3.0 and Internet Explorer 8.0 still keep the address bar above and replace its contents when the user changes tabs. Like Chrome, Tasktop allows you to drag tabs between browser/Eclipse windows, which I find myself doing frequently when working on multiple monitors. Note that in the Tasktop RCP app, we also got rid of the menu bar, and there are quite a few similarities in the end result. Here’s Tasktop:

It’s also interesting to note the differences. With Tasktop we got rid of the forward button, considering that if you are going forward you may need to see where you are in your history, hence we provide a drop-down similar to Internet Explorer 8. I like how Chrome got rid of the Stop button. When we discussed this a year ago, we figured it was too soon. Another layout difference is that Tasktop renders the starred list vertically to avoid using too much precious horizontal space (you can flip it to horizontal if desired). The address bar behavior is very similar since Tasktop allows searches to be typed in and offers similar completions.

The most fundamental difference between Tasktop and other browsers is the use of tasks (not files or web pages) as the primary unit of interaction. Let’s take a look at how the task-focused interface approach surfaces in the browsing facilities. Consider that Chrome makes starring very primary. This is a manual approach to remembering what is important. With Tasktop, your interest in web pages for a task is tracked automatically and browser tabs are instantly restored when you switch tasks. Taskop’s Starred list is simply a listing of all the landmarks in your current working set’s global context. This means that when I switch from my “Mylyn” to my “Personal” working set I get to see a different starred list. Being able to focus on both working sets and tasks when browsing means a lot less repetitive searching and bookmark/starred list management, saving me time in my day. It also means that my address and search history are specific to the working set, so I don’t have any problems with completions for things I looked at in my Personal working set showing up when I’m at work work. And we make privacy primary by not storing any history if you’re browsing without a task active.

Like other browsers, Chrome is built around an overlapping window interface. Tasktop is built around a solitary, usually full-screen, workbench window with editor and view tabs. It uses task context to ensure that the information that shows in the UI is relevant to the task-at-hand. Having worked this way for a couple of years I personally think that the prime time of overlapping window interfaces has past. They work great on my 46″ television where I want a bunch of gadgets, and a few little web apps that I’m happy to stack around myself, but not so great for my day-to-day productivity. I wonder if after the first few days of using Tasktop it is possible for anyone to miss the manual management of tabs, windows and spaces. And then dealing with it all being lost during a reboot.

This big window approach means that unlike Chrome, we had to keep the separate search box. If you have a task editor open instead of a web browser, I may still want to do a web search. In addition, we wanted to make it very easy to search within web applications such as wikis and Google docs. In the screenshot above you can see how I have my search box configured to search various web apps. Web app support is another parallelism between Tasktop and Chrome. With chrome they are integrated into the OS via shortcuts that open windows without navigation bars. In Tasktop, web applications are integrated via the search box, open without a location bar, and if they provide a connector, offer rich and offline access, as is visible with Google Calendar below.

There’s one snag with the browsing integration and improvements that Tasktop offers today–they’re only supported on Windows. Internet Explorer is the only browser that’s embeddable with the quality that we require (neither WebKit not XULRunner provide much more than a rendering engine). There are a lot of improvements in terms of JavaScript execution and web app process management level in Chrome, and I hope that the Chrome team prioritizes embedding in order to support browser-based applications like Tasktop. For now we’re not holding our breath since embedding is a technically challenging problem, and since we need respond to all the users on Linux and Mac who have been asking for Tasktop’s browsing facilities. The good news is that we are now working on integration of focused browsing with a secondary Firefox window. The same approach will work for integrating with a standalone Chrome.

With the browser stuff is out of the way, let’s take a look at the rest of Rahul’s wish list:

Mind map plugin to let me gather my thoughts.

For me the Task List has taken over a good portion of mind mapping, but I still find myself using mind maps for brainstorming. We briefly tried embedding some free mind mapping tools, but found standalone mind mapping tools like MindManager better, and easy to link to Tasktop via hyperlinks (since Tasktop is my default browser and will open tasks from web apps when offline). But it would be great to hear more about what people want, and we have a mind mapping entry on our integration survey.

More powerful text editor. I use block-editing heavily.

Our answer here is Mylyn’s new WikiText component. Between that and continued improvements in the Eclipse text editor framework, Eclipse is on a good trajectory in this respect.

A plugin for MS Outlook that lets me attach emails to Mylyn tasks.

This is something I couldn’t live without. Same for Gmail messages, since I use both Outlook and Gmail. To see more check out the 2nd to last screenshot on the Tasktop Tour.

A plugin for MS Excel

This is already supported, since you can open Excel documents within Tasktop and Eclipse via Open With -> In-Place Editor. Early versions of Tasktop made this the default, but the more we used it, the more we found that office applications like PowerPoint and Word were usually nicer to use in full screen mode, even on large monitors. So instead of embedding everything now, Tasktop monitors your interaction with external applications, and can open and close Excel as you switch tasks.

A powerful desktop indexing and search plugin.

We added a full index of all file system locations that you have mapped in Tasktop and all of the files files in your projects. This gives you instant search for all files of interest, and since we integrated this with a Common Navigator view, unlike other instant search tools, Tasktop shows you the directories structure that containing the matches. It took us a while to get this to scale to hundreds of thousands of files but we’re there now. After only a month of using this for a while I turned off Vista’s indexing of documents and haven’t felt the need to turn it on again.

With the coming of Chrome, it’s great to see progress from the browser front on better support for running JavaScript applications and integrating with the desktop workflow. But I think it’s good for developers to keep in mind how mature and robust of an application framework Eclipse provides. I rely on Google apps daily, but I could not imagine giving up the highly streamlined user experience that I get from desktop apps like Microsoft Office and Skype. Given the fact that Tasktop facilities like instant search push on the resource limits supported by the Windows OS, we have learned about some fundamental benefits of running on the native widget layer provided by SWT. Between that, the other benefits of Eclipse RCP and the overall awesomeness of plugging applications together with OSGi, Eclipse continues to be the ideal application platform for us to deliver the innovations of Tasktop, which serve as the task-focused glue between the various desktop and web applications that we use.

Be more productive. Guaranteed.

6 Responses to “Living inside Eclipse, embedding browsers and Google Chrome”

  1. integration Says:

    [...] [...]

  2. Edwin Yip | Mind Mapping Made Easy Says:

    Wow! I envy you guys have such a powerful IDE!

    Best Regards,
    Edwin Yip
    Mind Mapping is as Effortless as Typing
    http://www.InnovationGear.com

  3. Web 2.0 Announcer Says:

    Living inside Eclipse, embedding browsers and Google Chrome…

    [...]In response to a Mylyn user's wishes for browsing within Eclipse, I posted a summary on how Tasktop embeds a full-featured browser into Eclipse, and how our browsing experience stacks up against Google Chrome.[...]…

  4. Alexander Deliyannis Says:

    I’m not certain this is the right place for the issues I have in mind, but they are directly related to the post so here goes. I’m a registered Tasktop user and have made significant efforts to integrate the program in my workflow by trying to initiate as many tasks as possible from within its browser to maintain the overview. My results are mixed. On the plus side, Tasktop is an excellent timekeeper and has some other useful features. On the minus side:

    - It is a resource hog (both memory- and processor-wise); no wonder since it is an application built on an application (Mylyn) built on an application (Eclipse) and relying on an externally loaded virtual environment (Java). The overhead for what it does is overwhelming.

    - It is as yet too focused to software developers to be able to support other knowledge workers, e.g. lawyers, engineers, or consultants (like myself). The majority of external programs that can usefully interface to Tasktop are related to software development. What the rest of us can do from within the browser is still rather limited.

    - I find the browser itself slow and buggy for a significant number of websites. It would be useful to have the option for new tabs to open in the background, as in IE7, so that one can get on with their work while pages load. In addition, a default browser automatically opens local .html files as well, but opening these in Tasktop is rather cumbersome.

    - Google maintains the advantage for nomadic workers as it provides access to its information from anywhere. Tasktop provides the ability to maintain some task information on a portable USB drive, but this does not seem to include browsing history, so much of the context is lost.

    - I am unconvinced that getting rid of the forward button was indeed a choice rather than a necessity. The backwards button behaves rather oddly and –stranger still– does not always do what the keyboard shortcut Alt-LeftArrow does.

    There’s more, but my aim is not to bring down what you have written on Tasktop’s philosophy, rather to note that there’s a long way to go before it can be considered a viable alternative on the browsing front, among others. Interestingly, much of what was mentioned as innovative even by Google, such as placing the address box under the tabs, was already available in Opera which is lightning fast compared to Tasktop.

    I have personally been publicly supportive of Tasktop in related forum discussions (see http://www.outlinersoftware.com/topics/viewt/657 ) but I am afraid that it remains focused on a very limited niche to “bring the benefits of Mylyn and Eclipse to activities outside of programming”.

    Alexander

  5. Mik Kersten Says:

    Hi Alexander. Thanks for the great feedback.

    - It is a resource hog (both memory- and processor-wise); no wonder since it is an application built on an application (Mylyn) built on an application (Eclipse) and relying on an externally loaded virtual environment (Java). The overhead for what it does is overwhelming.

    Similar to an application like Microsoft Outlook, Tasktop is doing a fair amount behind the scenes for you. But our end goal is that you never have to wait more than 200 milliseconds for the UI to open up anything you need that we have stored or cached locally (that’s the threshold at which response time feels instant). To that effect, we have made several tradeoffs for using more memory to keep information availalbe. For the fall release of Tasktop we will be doing some optimizations of that, so it would be great if you and others could let us know your own expectations of memory usage, since we can use that as input for tuning these tradeoffs.

    Interestingly the overhead of building on Eclipse and Mylyn is not much of a problem. This is because Eclipse uses the OSGi modularity technology, which means only the parts of the user interface that you use are loaded into memory. But note that we have Internet Explorer running within the Tasktop process, which you would normally see running as a separate process. It can dominate the memory footprint.

    Regarding Java, yes, there is some overhead. But many modern applications written for Windows have a similar overhead because they also run in a virtual machine (the .NET CLR). This overhead can more visible in the Windows Task Manager for Java applications, but the benefits and robustness are the same for Java and in general worth the memory consumed. In addition, the choice to use Java means that we will soon be able to respond to the high demand for Tasktop on Mac and Linux.

    Most importantly, if you ever see Tasktop using your entire CPU for any noticeable CPU for any amount of time, please file that as a bug. We generally resolve any performance bottlenecks of that sort very quickly, but need users’ feedback (e.g., to find out that they’ve linked in several hundred thousand files). If you’re curious about what background operations Tasktop is running that might be using CPU, use the Home toolbar drop-down and select Window -> Show View -> Other… -> General -> Progress

    - It is as yet too focused to software developers to be able to support other knowledge workers, e.g. lawyers, engineers, or consultants (like myself). The majority of external programs that can usefully interface to Tasktop are related to software development. What the rest of us can do from within the browser is still rather limited.

    Yes, developers have been our initial target and this is still the case. However, we have had increasing demand and feedback from non-developers, and more than half of our downloads are now Tasktop for Windows. We have been incorporating all of this feedback into some major simplification and streamlining of the tool, which you can expect to see released in a major update sometime in the next 1/2 year.

    - I find the browser itself slow and buggy for a significant number of websites. It would be useful to have the option for new tabs to open in the background, as in IE7, so that one can get on with their work while pages load. In addition, a default browser automatically opens local .html files as well, but opening these in Tasktop is rather cumbersome.

    Assuming that you’re on Windows, there should be absolutely no difference in speed or quality of site rendering, since Tasktop is embedding IE. That said, we have heard reports of IE being slow enough on some people’s machines that this alone was a reason for them use Firefox. If you’re experiencing that, I suggest updating to the IE8 beta (I’m using that and it’s very snappy) or waiting for our upcoming integration with Firefox. Regarding opening HTML files and opening tabs in the background, it would be great if you could file a bug for this. I’ve found myself wanting it as well and they’re both straightforwad to implement.

    - Google maintains the advantage for nomadic workers as it provides access to its information from anywhere. Tasktop provides the ability to maintain some task information on a portable USB drive, but this does not seem to include browsing history, so much of the context is lost.

    Yup, we don’t yet have a great solution for multiple computers. We’ve had a fair amount of demand on that and are working on it.

    - I am unconvinced that getting rid of the forward button was indeed a choice rather than a necessity. The backwards button behaves rather oddly and –stranger still– does not always do what the keyboard shortcut Alt-LeftArrow does.

    You’re not the only one, and for the next major release we will consider putting back some kind of forward button, freeing up space for that by only showing the stop button when needed. Regarding the occasional mismatch between the keyboard shortcut and button, that’s currently our most major browser limitation which has to do with some trickiness in IE’s history. We plan on addressing it that in the next major release.

    There’s more, but my aim is not to bring down what you have written on Tasktop’s philosophy, rather to note that there’s a long way to go before it can be considered a viable alternative on the browsing front, among others. … I have personally been publicly supportive of Tasktop in related forum discussions (see http://www.outlinersoftware.com/topics/viewt/657 ) but I am afraid that it remains focused on a very limited niche to “bring the benefits of Mylyn and Eclipse to activities outside of programming”.

    Yes, this is no small task that we have undertaken :) But what’s very encouraging is that we first released this technology less than seven months ago, have collected an amazing amount of user feedback since then, and demonstrated that even with some rough edges people are finding focused browsing and task switching a very significant benefit. Over the next few months, we will iron out the rough edges in addition to releasing the Firefox extension for focused browsing. What I’m most excited about is that Shawn Minto, our browser guru, and I will be taking a pass at the degree-of-interest model and browsing UI for the next major release of Tasktop. We haven’t touched that since they early internal prototypes, and there’s a lot that we have learned about how to put the most relevant pages and web apps at your fingertips when you switch tasks. If you’re interested in being an early adopter of that consider getting on our early access program: https://tasktop.com/support/faq/#earlyAccessBuilds

  6. Recent URLs tagged Overlapping - Urlrecorder Says:

    [...] Recent public urls tagged “overlapping” → Living inside Eclipse, embedding browsers and Google Chrome [...]

Leave a Reply