EclipseCon 2016 — Rethinking the IDE · basic install. A bigger task is to simplify/reorganize...

17
Rethinking the Out of the Box Experience of Eclipse as an IDE Brian de Alwis (Manumitting Technologies) Today I’m talking about some work spearheaded by the Eclipse Foundation to simplify the startup experience for newcomers to the Eclipse IDEs. It’s very instructive to listen to newcomers about their experience. One of the beautiful things about Eclipse is its vibrant diversity. The platform allows for great innovation and customization. But it can sometimes feel a bit disconnected, like there’s no central guiding force. Not a problem for old-timers, but can be confusing for newcomers, presenting a fragmented appearance.

Transcript of EclipseCon 2016 — Rethinking the IDE · basic install. A bigger task is to simplify/reorganize...

Page 1: EclipseCon 2016 — Rethinking the IDE · basic install. A bigger task is to simplify/reorganize preferences; and the USS project is a first step in being able to store and share

Rethinking the Out of the Box Experience of Eclipse as an IDE

Brian de Alwis (Manumitting Technologies)

Today I’m talking about some work spearheaded by the Eclipse Foundation to simplify the startup experience for newcomers to the Eclipse IDEs. It’s very instructive to listen to newcomers about their experience.

One of the beautiful things about Eclipse is its vibrant diversity. The platform allows for great innovation and customization. But it can sometimes feel a bit disconnected, like there’s no central guiding force.

Not a problem for old-timers, but can be confusing for newcomers, presenting a fragmented appearance.

Page 2: EclipseCon 2016 — Rethinking the IDE · basic install. A bigger task is to simplify/reorganize preferences; and the USS project is a first step in being able to store and share

It’s worth revisiting how Eclipse started. Eclipse originated as an IDE for building plugins and RCP applications. We dogfooded, and JDT and PDE were naturally at the centre of this universe. It was like improvisational jazz — a group of musicians familiar with each other’s styles, making beautiful music.

But as Eclipse was a great platform for making IDEs, we had other musicians coming in to play. Some had different tastes, and that was cool. We might not play together, but we could appreciate each other.

But not everybody likes jazz… And for some of our users, download Eclipse and then having to download install MBs of plugins was not the most pleasant of experiences.

Page 3: EclipseCon 2016 — Rethinking the IDE · basic install. A bigger task is to simplify/reorganize preferences; and the USS project is a first step in being able to store and share

Law of Increasing Entropy: The entropy of a system (its unstructuredness)

increases with time, unless specific work is executed to maintain or reduce it

(LA Belady & MM Lehman, 1976)

Page 4: EclipseCon 2016 — Rethinking the IDE · basic install. A bigger task is to simplify/reorganize preferences; and the USS project is a first step in being able to store and share

So we began creating packages oriented towards different streams. These packages bundles together functionality that made sense for people involved in various domains. It’s been very successful and we now have 12 packages, with more to come.

But our packages haven’t changed much on the initial out-of-the-box experience provided to their users. Let’s take a look at one of the more popular packages.

Page 5: EclipseCon 2016 — Rethinking the IDE · basic install. A bigger task is to simplify/reorganize preferences; and the USS project is a first step in being able to store and share

Walkthrough of JEE “Welcome”

Funnily enough, when you click through some of these groups, you’ll see that ‘normal’ Java and PDE are the focus. The web tooling related items are pushed down.

A bunch of the actions open a browser on help pages.

A lot of this arises as configuring the help is pretty difficult.

Not meaning to pick on JEE package, but it seems less of an improv jazz than a cacophony of sounds.

But in fact, we do have orchestra conductors: our package maintainers.

Page 6: EclipseCon 2016 — Rethinking the IDE · basic install. A bigger task is to simplify/reorganize preferences; and the USS project is a first step in being able to store and share

Rethinking the “Welcome” screen

Holistic approach

Users don’t know our project structures

Users don’t care about our project structures

Users should not have to to care about our project structures

They’ve got stuff to do. Help them get it done.

Page 7: EclipseCon 2016 — Rethinking the IDE · basic install. A bigger task is to simplify/reorganize preferences; and the USS project is a first step in being able to store and share

What makes a design seem “intuitive”?

(JM Spool, 2005)

Fantastic article full of insight (https://articles.uie.com/design_intuitive/)● People intuit, not interfaces

● Current knowledge point: what the user knows about the interface

● Target knowledge point: what the user needs to know to use the interface

Two conditions where users will consider a design “intuitive”:1. The knowledge gap = 0

2. The design helps the user bridge the gap

How do help bridge this knowledge gap? Both by training them (moving the left goalpost), and by reducing the knowledge necessary (moving the right goalpost)

Page 8: EclipseCon 2016 — Rethinking the IDE · basic install. A bigger task is to simplify/reorganize preferences; and the USS project is a first step in being able to store and share

This is the Welcome page, reimagined. The right–hand side features the same page pointers. The left-hand side is a collection of useful actions for developers — called ‘quicklinks’ — intended to be tailored to a particular domain/package.

These quicklinks are intended to be configured by the package maintainer. They reference Eclipse Commands, but their icons, label, and description text can be overridden to be couched in terms more familiar to the target audience.

Page 9: EclipseCon 2016 — Rethinking the IDE · basic install. A bigger task is to simplify/reorganize preferences; and the USS project is a first step in being able to store and share

Enhancing the Welcome’s Root Page

Created a new “Quicklinks” component

Configured via extension point

Add ability to trigger actions via the Eclipse Commands framework (the org.eclipse.ui.commands extension point)

Uses serialized format to allow providing command parameters (e.g., trigger the New CDT Project wizard)

Can override command images and descriptions

Page 10: EclipseCon 2016 — Rethinking the IDE · basic install. A bigger task is to simplify/reorganize preferences; and the USS project is a first step in being able to store and share

Trigger cheet-sheets

Can put useful content front and centre for newcomers like cheatsheets

Page 11: EclipseCon 2016 — Rethinking the IDE · basic install. A bigger task is to simplify/reorganize preferences; and the USS project is a first step in being able to store and share

The Welcome page is also a natural place to inform/teach users how to adjust their preferences.

The majority of complaints about Eclipse (as collected on ihateeclipse.com) are easily addressed through preferences.

Page 12: EclipseCon 2016 — Rethinking the IDE · basic install. A bigger task is to simplify/reorganize preferences; and the USS project is a first step in being able to store and share

Startup Questionnaire [Oomph]

Ask the user about common preferences

Preferences and why they exist and why they can’t change

Breaking existing users is anethma

We can leverage Oomph’s Startup Questionnaire to deal with the issues.

Page 13: EclipseCon 2016 — Rethinking the IDE · basic install. A bigger task is to simplify/reorganize preferences; and the USS project is a first step in being able to store and share

Oomph Preference Recording & Synchronizing

Uses Foundation’s new User Storage Service (USS)

Another are to improve the experience is the Preference Recording & Synchronizing work, also coming from Oomph. It leverages a new service offering from the Eclipse Foundation to provide small hosted storage space for Eclipse users. The synchronizer will monitor for and apply changes on new and existing workspaces.

Page 14: EclipseCon 2016 — Rethinking the IDE · basic install. A bigger task is to simplify/reorganize preferences; and the USS project is a first step in being able to store and share

CastTim ChristensenJohn YoderEike StepperEd Merks

Paul White Wayne BeatonIan Skerret

Email: [email protected] Twitter: @delaweeza

I’ve represented work from a group of people.

Page 15: EclipseCon 2016 — Rethinking the IDE · basic install. A bigger task is to simplify/reorganize preferences; and the USS project is a first step in being able to store and share

Evaluate the Sessions

Sign in and vote at eclipsecon.org

- 1 + 10

Page 16: EclipseCon 2016 — Rethinking the IDE · basic install. A bigger task is to simplify/reorganize preferences; and the USS project is a first step in being able to store and share

“I would like to see anyone, prophet, king or God, convince a thousand cats to do the same thing at the same time.”

― Neil Gaiman

“No structure, even an artificial one, enjoys the process of entropy. It is the ultimate fate of everything, and everything resists it.”

― Philip K. Dick, Galactic Pot-Healer

Page 17: EclipseCon 2016 — Rethinking the IDE · basic install. A bigger task is to simplify/reorganize preferences; and the USS project is a first step in being able to store and share

Notes from Paul

- Would be good to mention what else needs to get fixed, and what has already been addressed. e.g., worth mentioning that Oomph has made it easier to do the basic install. A bigger task is to simplify/reorganize preferences; and the USS project is a first step in being able to store and share preferences. In both cases, the reason is to make it simpler to get started.

- Might also want to acknowledge, at least in the talk, the "beauty" of Eclipse is that it is completely customizable. But if that results in an unruly bucket of choices, it makes it too easy for the novice to fail and the critic to point to why not to use it.