Friday, February 06, 2009

why a widget, brother?

Davide posted a (micro-)blog entry noting to use the word "widget" rather than "applet" which caused a small flurry of conversation in the comments around the possible reasons for this. In Plasma we rarely do things without thought and conversation and so, yes, there are good reasons for this.

First off, Applet is not a well known word in the user populace. I've actually done semi-formal surveys of people to figure out which words are recognized by them and which aren't, and despite "Java applet" being a part of our technology vocabulary for quite a while, the average person doesn't really connect the word "applet" with anything overly meaningful. Many KDE users know "applet" from kicker, but that's not a huge percentage of the world population. "Plugin", thanks to web browsers, is probably the winning word but because it's associated with web browsers so strongly and has a well understood it wasn't really an option.

Widget, however, is increasingly used by people to mean "those little mini-apps that you put on your desktop, in our browser, on your phone etc". Therefore we have MacOS Dashboard Widgets, Vista Widget, Yahoo Widgets, Opera Widgets ... Google Gadgets are one of the odd ducks there. The others are of the form "$TYPE Widget".

Of course, we also have the word "Plasmoid". A Plasmoid is a native Plasma widget, meaning that it uses the Plasma facilities for theming, widgets, data, services, etc. Since Plasma is a canvas that you can put more than just Plasmoids on, though, we decided to use the generic term "widget" everywhere.

The point is that the user should not need to care what language or what widget toolkit something is written with. They are all "widgets" and why they don't work well together is a technical issue not a user issue. Exposing that to the user, therefore, is not the way to go. They are all widgets. They all work on Plasma. The user need not understand the fine points if they don't want to (though they can drill down if they wish).

For those who were concerned that we already have a meaning for the name "widget" in the sense of pushbuttons, menus, etc. that's confusing technical jargon with user facing language. As a developer, I don't get confused when there is a Plasma::PushButton which is a "widget" but all the Plasmoids are also "widgets". I know the distinction, and it's pretty easy to sort out. The typical user doesn't know the word for "all things pushy and poppy and clicky" and so doesn't face this confusion at all in the first place.

So, in summary, we picked a word that is already being used as a generic term for these things by many others, which would minimize confusion and which was accurate given the broad nature of Plasma.

Now we just need to remember to always use the word consistently in our communication. :)

7 comments:

Einar said...

Thanks for the explanation, Aaron. Time to review the Plasma FAQ (which uses "plasmoids" and "widgets" in a rather liberal way)...

Marcel said...

I will keep on calling 'em Plasmoids. Just coz it sounds the best. ;)

Aaron J. Seigo said...

@Marcel: .. and when referring to native Plasma widgets, you're absolutely correct! :)

Daniƫl said...

Wasn't it vista gadget?

Kevin Kofler said...

I strongly disagree with this. Users will come to us developers for help. And we will normally answer in our terminology, so we will be talking about widgets when we mean pushbuttons etc. and about applets when we mean plasmoids etc. I think it is extremely confusing that KDE is showing different, conflicting terminology to users in the menus. It creates a lot of confusion wherever users and developers are talking to each other (e.g. in the #fedora-kde chan and the fedora-kde mailing list).

We should stop trying to hide names from users. An applet should be an applet everywhere. Keywords like Plasma, Phonon etc. should be mentioned where relevant. We developers will always talk about the Phonon preferences, it's then extremely confusing to users that they're just called "Sound" (and in fact those vague terms are also confusing to me as a user, I often have to guess what vague paraphrase corresponds to the technology I'm trying to configure and the first try is not always the good one).

And sorry, you'll never get the developers to use the user terminology, because they aren't familiar with it (see above - I often have no idea what weird paraphrase is being used to describe a terminology, and it gets even worse with translations: Phonon is Phonon everywhere, Sound gets translated into lots of more or less vague terms).

meso said...

Having lived outside of computing a little, I think the problem is deeper than this. The word "widget" has a meaning already, along the lines of "misc thing".

The word itself implies an uncertainty about what the speaker is actually talking about - an intentional vagueness that doesn't line up with the word's usage in the context of the GUI.

"Applet" is at least descriptive - It's an application, only less.

Thomas said...

to kevin and meso; as a developer its easy to get stuck in a very specific way of thinking based on very different aspects of logic than many end users do.

The truth is that you will be hard pressed to tell the difference between a widget and a widget even if you name the latter plasmoid consistently.

As meso said; «The word "widget" has a meaning already, along the lines of "misc thing".»
Which describes both meanings of the word just fine.

So I think you are trying to protect the users when they don't need protection. The developers might need to learn how to talk to less technical people without using technical terms, though ;)