In our institute, the electronics workshop has a stock of several
thousand components, mainly distributed over a number of drawer
cabinets. To be able to find the components, the stock is structured
from the most general to the most detailed, and labelled accordingly.
The first cabinet is labelled 'Passive components', because that's
what's in there. There is NOTHING in there that is NOT a passive
component. That's clear and easy, and you cannot be mistaken.
The topmost x drawers are all labelled 'Resistors', each drawer with
some additional information like 'Resistors 1%, 1k-95k3, E48 series'. In
each of the resistor drawers, there is a maximum of 112 small boxes
containing all resistor values and labelled something like '1k, 1%,
0.6W, 100ppm, 300V' (or something similar). Below these 1% resistors,
there are 0.1% resistors. Below that, power resistors, special
resistors, several sorts of capacitors, coils, etc. All labelled
accordingly and CLEARLY. This way, you can easily and quickly find your
way through the stock and grab the necessary components.
Even people NOT overly familiar with electronics can find their way
through, because even these know the differences between 'passive
components', 'semiconductors', 'electromechanics' and 'mechanics'. There
are always some parts that will be tricky to find, but overall, it's
quite easy.
I COULD have structured the stock alphabetically, or by value (mixing
resistors, capacitors and coils and ONLY looking at their values), but
this would of course be completely ridiculous. For looking up a WORD in
a dictionary, alphabetical sorting is nice. For getting to know how to
DO things, it it NOT.
Unfortunately, EAGLE's menu bar is NOT properly structured, but
ALPHABETICALLY at points, which is extremely cumbersome and even
dangerous for new users. The 'Edit' menu contains lots of commands
sorted by their NAME. In my 'EAGLE GUI (2)' post, I already described
that using internal command names is a VERY BAD thing to do. Using more
descriptive (and clearer) texts, things can get MUCH easier to
understand, but the best thing is introducing STRUCTURE into menus:
Commands belonging together LOGICALLY should be near each other (NOT
alphabetically), helping the user guess HOW to do things.
CadSoft even did this properly at several points: E.g., UNDO and REDO
are NOT sorted alphabetically, but are next to each other. That's fine.
But why stop at that? All OTHER commands should ALSO be grouped
properly. In my 'EAGLE GUI (2)' post, I attached this horrific screen
shot of a schematics completely flooded with junctions, because the new
user didn't know the command NET, but used the obvious-sounding WIRE
instead (with all resulting problems). This is NOT only a problem of a
dangerously misnamed command, but also of NOT STRUCTURING the menu. If
the menu is NOT structured, the user just takes the command that SOUNDS
best. A structured menu gives the user additional hints about program usage.
Some commands in EAGLE support COMPONENTS, others ELECTRICAL
connections, still others create just graphics without electrical
function. THESE SHOULD ALL BE GROUPED for easy understanding.
Examples:
- MOVE, ROTATE and MIRROR belong together, because they're all
transformations.
- REPLACE, GATESWAP and PINSWAP belong together, because they're
all exchanging something that has to do with components.
- NET, JUNCTION and BUS belong together, because they create
ELECTRICAL connections.
- In the schematics, WIRE, RECTANGLE, CIRCLE, ARC and POLYGON
belong together, because they create GRAPHICAL objects. These
should be SEPARATED from the electrical functions to prevent
the mentioned disaster.
Additionally, think about better BALANCING your menus: EAGLE's
schematics editor uses 9 main menu entries, 5 of them having only less
than 5 entries. On the other hand, the EDIT menu is STUFFED with things,
even with ones NOT belonging there, e.g.:
- ADD does not EDIT any already existing thing, but INSERTS
something.
- All four menu entries below VALUE are typically found under TOOLS
(or something similar) in other software.
- PASTE FROM is something that NOBODY will EVER search for in the
EDIT menu. This is a FILE function usually called IMPORT. That
EAGLE calls that by another name is bad enough, but completely
leaving out the word FILE is unnecessarily ignorant of user
interface standards.
Of course, EVERYTHING that the user can do SOMEHOW edits the design, but
this is NO reason to throw out all other menus and ONLY provide EDIT.
20 years ago, in bad old MS-DOS times, EAGLE didn't have ANY menu, just
text buttons. At that time, that wasn't so bad, because proper GUIs
still had to be invented, and all other programs were similarly cryptic.
In the meantime, GUIs have evolved and can now help the user
TREMENDOUSLY in learning unknown programs. EAGLE has implemented SOME
good interfaces (look at the NICE component previews during ADD, the
very useful CONNECT dialog and the ERC/DRC windows, all of which are
SUBSTANTIALLY better than), but MUCH to few.
In one recent post, one guy complained that the E in EAGLE stands for
'easy', but he couldn't really see that, because he found the interface
crappy. Though he complained about things that the program COULD do
properly (he just didn't know), he has a point: EAGLE's menu entries in
parts were taken over from a 20 year old piece of software, and haven't
evolved since. That's not nice. If CadSoft don't bring their interfaces
at least A BIT up to standard, EAGLE will lose ground with new users. We
don't want that.
In the next post, I'll try to give some example of how balanced,
structured menus with READABLE items might look.
Andreas Weidner