Dojo (HowTo)







  Easter Eggs




  Martial Arts

Menus: Who does what, and why
The different implementations

By:David K. Every
©Copyright 1999

Once you understand the basics of Menus [Read How Menus work to get all the low-down on Menus (and the nomenclature that I use)], the next issue is how they are implemented differently on each System.


MacOS - This was the first (mainstream) User Interface, and Apple did a lot of research to get menuing right. They did a real good job, and are still the yardstick with which the others must be measured. The placement is done right, it is pretty consistent, and Apple defined most of the menuing concepts we use today (and went way beyond the work done at Xerox-PARC). Menus are very efficient, easy to hit, easy to use, and clear.

How Menus work on a Mac

With the Mac there is one global menu-bar, that is always at the top of the screen, that changes context based on the front most Application.

Selecting a menu topic, will bring down a menu -- which may be hierarchical (have more than one level). Once selected, the menu will go away (and return to the "clean" state).

Macs can use contextual menus (pop-up menus that have information based on context) -- but this is a relatively new feature, so is not supported very well yet. Yet, Apple's implementation of the architecture is far more powerful than anyone elses.

Macs support tear off menus (so you can pull a menu off the menubar, and place it anywhere) -- but only within particular applications or through third party extensions.

With the Mac you can dramatically change the look and feel of menus.

In some ways the Macs menus have not kept up with the times, and should have had more power features added (like tear-off support, and more/better shortcuts), and should have outgrown some behaviors (stalling the system when the menu is down) -- but overall the MacOS is still great UI for doing menus. 

NeXT - NeXT had to come up with a unique way to do menus when they (Jobs and other NeXT founders) broke away from Apple -- and they came up with a different (and good) approach. These are the power-users menus. The menus sacrifice space (and take up a lot of room), but you get a lot of power for that. Everything is clear and easy to hit, easy to understand, and easy use.

How Menus work on NeXT

With the NeXT there is one global palette, that is at the upper left of the screen (but is movable). This menu palette changes context based on the front most Application.

As you choose menu items, they pop-out (grow) to the right. They are hierarchical (can have two levels). Some often used commands can be put at the "root".

NeXT doesn't have contextual menus -- they instead can have a pop-up menu-palette (the whole thing). While not bad, it is a little different than where most of the industry is going.

NeXT supports tear off menus in the OS itself -- so you can place any menu close to your work. The popular "chicklet" buttons are almost unneeded in the NeXT UI, because you can just drag off a menu to do the same thing.

Frequently used items, can be placed at the top layer (while on other Systems, people don't put commands in the menubar itself). It is less inconsistent to do this on NeXT, and slightly more powerful. But it doesn't seem to offer much in usage.

There is also another special function with NeXT's arrangement. On other systems, frequently used menu items should be placed at the top (so they require less dragging to get to). With NeXT, you are dragging to the right -- so you can easily go up or down to frequently used menu items. This means you have to drag less distance more of the time. Alas, it requires odd menu ordering to fully utilize this. Furthermore, NeXT's stacked menus are a little harder to hit than the Macs menubar (because words / menus are wider than they are tall), so I don't think there is any real gain.

About the only thing NeXT could have done to make the menus more powerful, is to give users a power-menu/palette -- where they could drag the most often used menu items (to create their own menu).

In implementation, NeXT's menus have not fully lived up to their potential -- mostly because NeXT Apps are the products of corporate developers, hackers (and geeks) and vertical markets -- this gives a little less "commercial" feel to some of the App designs (and a little less consistency) than some would hope for.

I think NeXT found a truly unique approach to Menuing, and is only a smidgen worse overall (mostly because of screen real-estate issues).

Windows - Microsoft tends to borrow from others, and take whatever seems good. This has lead to a pretty powerful (versatile), but somewhat inconsistent menuing system. Well, Windows is no exception to the Microsoft rule.

How Menus work on Windows

With the Windows there is lots of menubars -- one per window. This is not very space efficient, and somewhat confusing. Furthermore the window may be small, and so the menubar must sometimes wrap onto two (or more) lines.

As you choose menu items, they pop-out (grow) to the right -- but since windows can be near the right edge of the screen, often Menus must pop-out to the left.

There are often many duplicate menus on screen, and multiple ways to do things, and because of so many developers, and not very rigid standards, it is hard to know where to find things, or how to do things -- each App becomes its own little environment.

The display is of Menus is the least attractive of any system I've worked with, but it is certainly usable. One problem is that anything can have a menu, and it is hard to differentiate a menu from a control.

The shortcuts are sometimes multi-stepped, but versatile. Users often find themselves using shortcuts, and chicklet buttons as a way to avoid using the menuing system itself. This is the "compromise" of all menuing systems.

BeOS - Be has an unfair advantage in that they are small, and came late to the game (and they could learn from Everyone else). Unfortunately, they failed to exploit that opportunity and have added little to the party when it comes to menuing. The menus work, are very clear and sexy looking, and are easily understandable -- but they just copied Microsoft (and X-Windows). Menus behave basically like Windows menus do (which I'm not impressed with). But they briefly tried to be "powerful" by having a difference between "Application" (global) and Window (local) menus -- which was very confusing. Fortunately, they are small and adaptive, and corrected this. The real problem is going to be that Be is catering to geeks and programmers -- and unfortunately most programmers are really bad at User Interface (and forget about users), and are more likely to implement things to be "interesting" or "cool", rather than to be consistent. Be is likely to be cursed with this even more than Windows was, and they haven't defined UI standards well enough to solve the problems -- which means lots of weird (bad) behaviors. Because Be is still a small company, I am hoping that they are agile enough to adapt and improve, and their UI gives them an area to do so.

Others - By this I would mean Solaris, Irix, X-Windows, Motif, and other Unix based UI's I have worked with. In most cases they don't really have User Interfaces (per se) -- they have a collection of controls and User Interface features, that each Application developer uses at whim (including the OS providers themselves).

Programmers of these systems are usually a bunch of Unix-hacks (sharp coders), that value coding more than interface -- and it shows in most Apps. Many of the controls created and implemented are atrocious to begin with (from a UI point of view) -- like Solaris's scroll-bars (ick). Menus seem to be no better. It is quite common for them to have a global hidden menu, that can only be displayed through the use of a special menu button -- but then individual apps will implement menus or a menu-bar. (Usually the menus are displayed inside a Window like Windows -- or more appropriately, Microsoft stole this ugly behavior from X-Windows).

I know I sound harsh, and I am not very experienced with all these systems -- but it usually takes no more than a few minutes with any of those Systems to find glaring inconsistencies between Apps -- and the name of the game of interface is consistency. There are certainly some pearls (of Apps) in this world, but all the rest of the apps (and lack of consistency) bring them down. As long as certain Computer Systems (like Unix) are being targeted at people that value code more than interface, then the results will show accordingly. Sadly, this is the market segment (or developers) that BeOS is shooting for -- and they are likely to reap the rewards (in quality of interface).

[return to Menus]

Created: 12/28/97
Updated: 11/09/02

Top of page

Top of Section