Comments on: Faces, Widgets, or Gadgets?
So, on the lighter side, I need your help...
What do we want to call our primary GUI element?
The choices are:
| ||Face||From the word interface. R2 used this name because it is short, unique, and accurate. (It also makes some fun function names, like make-face, show-face, hide-face, etc.) However, this word is not standard in the world of GUI's, and in the font domain it has another meaning. And we used the related word facet to refer to a property of a face.
| ||Gadget||The word that the Amiga operating system used for graphical objects. The word was selected by master wordsmith RJ Mical (creator of the Intuition GUI) because of its inference to small mechanically interactive objects.
| ||Widget||A word used by many GUI systems which came from the fact that no good word could be thought of for the concept. (Prior to this usage, the word widget was a reference to generic unnamed objects.) However, the name has become fairly standard, and unfortunately, some systems (OSX, Konfabulator, etc.) also use this word for a class of applets (a higher level concept, more than just a GUI element.)
There are trade-offs to whatever word we select, but I want to query the user-base before we make any final decisions. Please make your opinion known in the comment section. Thanks.
I am not a regular REBOL user so my comments should not be give heavy weight, but I must say that I always had trouble with some of the terminology, and "face" was one of the items. Whenever I would get out the VID documentation again and try again to understand it, I would have to stop and think what these various things were. I realize that I should be able to see the definition and say, "OK, 'face' is a graphical element, I got it" and then just happily read on, but for some reason I could not. I was always thinking something like, "OK, what was a 'face' again?" I just attributed that troube to my lack of experience, but maybe terminology smoothes the way for those like me.|
As in the entry about VID's design, and defining a target user, who is the target user here? If it's existing REBOLers, I would stick with 'face (I've gotten used to it now, coming from 'control in VB, and still the term used in WinForms and such). If you want to attract people from other languages, I don't know what the best term is, though 'control might not be bad. I think both 'widget and 'gadget are used for micro-applets these days.
If we define and doc it clearly, WRT gob, /pane, facets, etc. 'face should still be OK.
I like 'face. Sounds cooler then the others mentioned in the article and I hear the other names applied to loosely and not as tight as we use 'face. "Face" is short and simple. |
I feel that having separate names for containers and controls helps less expert people like me in building GUI interfaces.
This perhaps implies a little less flexibility than everything is a 'face approach but perhaps would make give a better context for the non-expert to build GUI apps.
To stick with the human analogy, you could continue to use 'face as the underlying object, use 'skin for the container and 'feature for the controller (or 'eye 'nose etc). (This would of course clash with the normal use of skin in a GUI context but that could be called 'complexion).
More seriously though, how about using 'box for containers and 'gadget for controls?
(Not all boxes are rectangular).
I grew up with widget, and to me it has always meant Window Gadget.
I grew up with gadget. :-) REBOL has always strived for well-defined terminology, regardless of what the other languages/systems use, so I would not use widget unless we specifically only use it for one purpose. It's either face or gadget for me.|
Face word is short, simple, clear and have the same meaning in french ;-). Btw, I always thought that it was the shortcut for surface word...|
face. Because we have 'feel, and maybe we will get 'look too. After all - what is 'gob? Unusual too. But rebollers are used to 'face already.
But if we want to attract many other ppl, 'widget is more general. But we can also use 'style (but this is more like a 'class element equivalent to me) ...
Widget: Make it as compatible to the rest of the world as possible to attract more people.
BTW: This applies to the rest like events (was it feel?), handlers, callbacks etc.
Even if the other wording might not be that precise I vote for using it. It makes communicating with others simpler and that's what we want.
In order of preference, widget, gadget, face. |
just thought a bit more about it, and I somehow don't understand, what we are talking here about in particular.What is gui element for us anyway? Face is just object, which keeps some things together. But then we have 'style, which is more like a class. As for widgets - those are usually more complex controls, some ppl use 'widget name even for small tools. So what are we trying to describe here?|
I am a french people so I apologize for my english.
One of the leading concepts of Rebol is "keep it simple". And I think we can do better with this concept: "make it intuitive". Intuitive is more powerful than simple because it gives capacity to anticipate.
To make rebol intuitive it's possible to think in way of "generative grammar", I mean choose principal words (related with central rebol concepts), fix rules of combination of these words. Then apply systematically the rules. For example the GUI domaine is graphic and then can be sumarise with "graph", so
"face" --> graphbrick
"style" --> graphclass or graphwall
"gadget" -->graphfunc or graphhouse
"widget" --> graphapp or graphdistrict
Voilà my proposal
Face. You can use family for font name in the same context.
I am all for face, widget and gadget are just some placeholders if do not really know a name.|
Note that RebGUI uses the term widget not gadget. When thinking about a good word for face/widget/gadget, one must not forget about the corresponding requirement for facet/attribute/property.
In this regard, face has the advantage that facet is a phonetic complement ... the two just look right together, unlike other combinations such as widget and attribute. Also keep in mind that View/VID will be treated as 'low-level', so using terms such as gob, face and facet at that level 'frees up' more common words for higher-level end-user wrappers around View/VID.
The two cents of a layman lexicograph, who does sees that, from the Oxford Dict, the current terminology is:
Viewport: computing a framed area on a display screen for viewing information. Port is conveying the meaning of entry point. See guichet hereafter.
Translation french: fenêtre.
Note: Nice interplay of words with rebol View.
■ noun informal a small gadget or mechanical device. ▶Computing a component of a user interface with a particular function.
Contraction of window and gadget.
The term 'control' is the MSwindows choice of terminology for widget.
Translation french: same 'widget', but rare.
Gadget: ▶ noun APPLIANCE, apparatus, instrument, implement, tool, utensil, contrivance, contraption, machine, mechanism, device, labour-saving device, convenience, invention; informal gizmo, gimmick, widget, mod con.
a small mechanical device or tool.
Note: The word gadget does exist, in english, french, italian, spanish, german. Good opportunity to spread understanding as no translation is needed.
In french 'gadget' conveys the accessory meaning of new device intelligently conceived, but for a need that has no long term impact. So it is exact in the meaning of an interim visual entry point device.
The term viewport, with the meaning of visual entry point, could be carried in french with the word 'guichet'.
The translation could be more expressive of what is conveyed. But 'guichet' is ill translated in english as counter.
In english, the acceptation of "counting device" is overwhelming less frequent meaning of "window through which a clerical service is offered".
So in english is added some words like "over the counter".
So gadget carries the meaning of practical function, and viewport as visual entry point.
I like face the best.|
Why not call it view?
make-view, show-view, hide-view
What else is the function of a window for but to view something?
by experience, when you say or write "gadget" while refering to a gui, EVERYONE understands, it has its roots in real life.
gadget is like a synonym for "thing" with the only added refinement that you can grab/touch/play with it.
it even sounds like "graphic object"
you also forgot "control"
try saying "widget" to your average secretary and she'll say what? the vast majority of non programers are used to the term "control" because of windows, and because its rooted in real life too. like a button, knob, etc.
To me a control, is like a subtype of gadget which doesn't include non-interactive "things" like labels, meters, etc.
so we could divide into three broad groups of gadgets:
controls (interactive: button, fields, scrollers, etc.)
displays (non interactive: labels, VUs, progress bar, etc.)
panes (groups of gadgets: rows, columns, tables, etc)
The best name for primary GUI element in VID is vidget because:
VIDget is widget/gadget for VID
vidget smells rebolish: vidget/widget is like rebol/rebel
google count is 36,300 for vidget, 131,000,000 for widget, 74,400,000 for gadget and 912,000,000 for face
I like widget or gadget, or even vidget, because they seem to refer more intuitively to a control object or "thing" on the screen. To me, face doesn't clearly elicit the idea of a contained visual object. Plus we're talking about word choice, and in any language word meaning is established primarily by common use. Widget/gadget are certainly in common use.|
I like the 'control' suggestion, especially if 'panel' is still to be part of VID, controls being the things you play with in a 'control panel'.
Vidget was used a few years back in another expression-based language so it would be nice to see it get more use ( where it meant Visual Input gaDGET )|
I like 'gadget', 'face' is also good. I don't like widget (difficult to pronounce/type). Vidget looks nice but when we say vidget people will understand it like widget, I think we should avoid using of this kind of anagrams just to be different.|
I like VIDGET like the best name for rebolished people making vid things|
Confusion comes from using a name taken from the thing rendered instead of the code that renders it.
Staying in this confusion, here are two names:
graffit (as in screen graffiti)
vidget (good one Artem!)
Instead, if we want to name the code that writes to the screen, we can try these names:
faces have features
diamonds have facets
Face with features for me.
Post a Comment:
You can post a comment here. Keep it on-topic.