About ribbon and user interfaces

There’s been some discussion on the blogosphere lately, especially after Patrick Smacchia’s posts on new interface for NDepend. Well, I’ve already said, that as much as I love this tool, it’s current interface leaves much to be desired. It’s a good thing that finally they are doing something about it, and in the direction I talked about in my first post (similar to Visual Studio). Only thing that surprises  me is that by default NDepend will have ribbon, but you (fortunately) will be able to go to options and change it to good old menus and toolstrips.

I’m not going to comment on NDepend team’ choice, instead I’d like to concentrate on other thing – is ribbon really something we should go for? I get it, Office 2007 has ribbon, so finally we have something new and fresh in stiff winforms world, so everyone eagerly wants to play with it. But I don’t really think ribbon is like any other winforms control. I think it’s simply not general purpose, like a button, combobox, or even toolstrip.

There are several reasons why Microsoft put ribbon in office. The most apparent one is target group. What is ribbon anyway? It’s a toolstrip with tabs and really big icons. The reason why Microsoft decided to build office’ user interface with it (the way I see it) is to make it easier for average secretary for whom computer is voodoo to use it. Instead of menus hiding option everything is right in front of her eyes, labeled, and with big shiny icons. That certainly makes it easier for starters to use it.

For advanced users however result is opposite. Advanced users do most of their work with keyboard shortcuts, and don’t care about big icons and descriptive labels under them. What they rather care about is: this big thing on top of my screen eats up lot of space on my monitor. This is especially important in tools where you want to have multiple windows open at once, and every pixel is worth gold.

There’s a reason why Microsoft didn’t put ribbon in VS 2008, and (again, the way I see it) that is exactly this: different target group. Visual Studio is targeted for advanced users who don’t care about big icons and who most of the time use keyboard shortcuts.

Another confusing thing about ribbon is its contextual nature. Like in Word when you click on a table, a tab on a ribbon pops out that lets you select options specific to tables, like add a row, add a column etc. That’s great, but two things first: There is absolutely NO reason why you couldn’t do it with menus and tools strips, and: in case of ribbon, it’s not an option: it’s necessity. Simply ribbon takes so much space that having those all tabs and groups open all the time would eat up space on whole normal monitor. or would require like 3 levels of tabs, that would be even more confusing than toolstrips. And the reason why (almost) no one is doing this with toolstrips and menus is that “Why hide it if there’s enough room for all of it?”.

I personally thing that over time we’ll see some applications with ribbon, as some applications can really improve user experience by leveraging ribbon, but vast majority of those will be targeted for non-computer people. I see ribbon simply as new toy people want to play with. It’s like, in one episode of Dot Net Rocks, if I recall correctly, it probably was about WPF, Carl’s and Richard’s guest said that back in VB3.0 days there were applications that had red forms, simply because they could. I guess what happens with ribbon now, is a similar thing.