I consider myself an experienced EAGLE user. I know lots of commands by
heart. I have NOT used the menu bar for years. When recent posts harshly
complained about EAGLE's user interface, I took the liberty to really
LOOK at the menus and - gosh! - find things that I didn't like at all...
In more than 20 years of using computers, I have NEVER come across more
unusable menus - sorry, CadSoft.
Why is the menu bar important? Because it's one of the first things a
new user will explore to try out the program and see whether it's useful
for him or not. The menu bar SHOULD contain nearly all the program's
functions and present them in a clear way that even a new user can
easily UNDERSTAND.
Why is EAGLE's menu bar so abysmal? Because
1. its texts are partly unintelligible,
2. there is no structure in its entries and
3. it's missing vital functions.
In this post, let's take a look at point 1: Unintelligible menus? But
all commands are properly mentioned in the menus! And they're even
nicely sorted! What the heck am I talking about?
I'm talking about USABILITY. What does a new user want? He wants to USE
the software. He knows what he PLANS to do, but he doesn't know HOW to
do that with the new software. Therefore, the menu should provide words
that the user already KNOWS. These words should help him to easily
decide whether THAT's the function he needs or not.
What would a user think of a word processor that included menu entries
such as 'Houghton-Mifflin hashing' or 'Proximity pattern search', but
did NOT show 'Spell checker' and 'Hyphenation'? He would probably dump
it. WRONGLY, perhaps, because the cryptic 'Houghton-Mifflin' thingy IS
the spell checker, and the other one IS the hyphenation. The programmers
of that word processor just made the GRAVE mistake to put THEIR INTERNAL
ALGORITHM NAMES into the menus. The typical user is NOT a programmer.
The typical user does NOT understand that gibberish.
Unfortunately, the EAGLE menus sometimes don't do better: They often
ONLY provide THE INTERNAL COMMAND NAME of a function, which a new user
does NOT know yet. Examples:
4. Words like RATSNEST, ERC and DRC contain information only for
professionals. CadSoft was wise NOT to put these words into the
menu, but instead 'Calculate airwires' and 'Check schematics'
(I use the German version, so I don't know the EXACT English
translation). That's good!
5. If you're a new user, words like ADD, INVOKE, SMASH, MARK and
JUNCTION might mean NOTHING to you. Of course these words DO
mean something, but probably in a completely different context.
That's NOT so good. Better descriptions are needed.
6. If your native language is English, you're FAR BETTER off than as
a German, because quite a number of German potential EAGLE users
can NOT speak English fluently. One of my colleagues simply
REFUSES to use EAGLE, because his English is NOT good enough
to be able to understand the menus ('What does MITER mean? Or
GATESWAP?'). Another colleague does not LIKE to use EAGLE because
of the same reasons. And this with a German software. Several
customers lost. What a pity...
7. Worst of all are menu entries that SEEM to do a certain thing,
but do something DIFFERENT. Take a look at the attached picture
'junctionhell.png'. This is a REAL excerpt of a design done by
a user new to EAGLE. Though the thing LOOKS like a joke, it is
NOT: This is the DIRECT result of poor menu texts! The user
- searched a LONG time before realising that library symbols
can be inserted with the ADD command. After placing all
components, he wanted to connect them. There was no CONNECT
command anywhere in the schematics. Hmm, what OTHER word
could one use?
- Ah, there it is: WIRE. The CORRECT English word for creating
electrical connections is 'TO WIRE'. The German equivalent is
'VERDRAHTEN', which is more a less the literal translation.
Using WIRE for wiring is the absolute OBVIOUS choice, and
it's WRONG! But the user didn't even see this, because he
COULD create electrical connections with the WIRE command.
- The guy was just VERY frustrated that electrical connections
were NOT created reliably, and that junctions were NOT set
automatically. After hours of searching for unconnected
wires that SHOULD be connected, he just decided to put
junctions at EVERY corner, to make sure everything was OK.
What utter mess!
That user immediately HATED the program, because it was so
EXTREMELY stupid, and couldn't do things properly. After asking
me WHY the program was so stupid, I told him that NET was the
command he wanted, and that everything was REALLY easy with
that, and he asked me 'And why do they provide a WIRE command
that does NOT wire properly'? Why indeed...
Abysmal menu wording is ONE point MAKING new users hate EAGLE. They
download it, try it by exploring, spectacularly fail, and throw EAGLE
away. I agree. I would do the same.
How to get rid of these problems? Well, that's easy:
8. Write text into the menus that the majority of users can
understand BEFORE reading any manual.
9. Even write MORE than ONE word into a menu line, if one is
just not clear enough.
10. Do NOT use programming gibberish in menus, but words that
the typical user knows from every-day work.
11. Use DESCRIPTIVE words properly translated into the current
language.
With other words: HELP the user and give him INFORMATION. EAGLE doesn't
do this properly at the moment.
(Yes, I'm aware that the program DOES provide some useful information in
the status line. But that's TOO LATE: I do not want to hover the mouse
over every menu bar item to get to know what it does. The TEXT of the
menu should provide that information. The status bar may show ADDITIONAL
information to clear up things. Any anyway, some of EAGLE's status bar
hints are also not TOO helpful)
Examples (for the German EAGLE version):
- 'Bauteil tauschen' instead of 'Replace' (you can replace LOTS
of things, so just one word is NOT enough. Make it crystal
clear that the user can replace COMPONENTS with that).
- 'Ecken fasen/runden' instead of 'Miter' (people whose English
is not SO good will fail to understand the command name).
- 'Bauteiltexte loesen' instead of 'smash' (smashing normally
signifies damaging things, so that afterwards, they are
broking and defective. No user wants to damage the schematics.
And additionally, one can smash LOTS of things. Make it
clear WHAT can be influenced by the command).
Etc. Etc.
(Yes, I'm aware that the menu entries get longer that way, and that the
EAGLE executable gets larger. But WHO CARES? 20 years ago, with only
640kB RAM, programmers had a GOOD reason to keep all texts as short as
possible. Nowadays, it just doesn't matter! And for proper readability,
the menu items need not be THAT long, anyway)
Of course some of the more experienced users might LIKE to see command
names in the menus, to be able to more quickly learn the syntax. But
there are probably not THAT many users of that type around. And anyway,
that can be easily managed, too.
All this plus a more exhaustive example of how menus could be done will
follow in posting 4 (posting 3 will be about the problem of UNSTRUCTURED
menus).
Andreas Weidner