There were plenty of things that you Just Have To Know in order to get things to work. Examples follow: In Lisp, you JHTK the arguments to '''format''' (like printf). You JHTK that '''with-open-file''' defaults to input if you don't tell it explicitly. You JHTK how things like '''parse-integer''', '''y-or-n-p''', or even simple stuff like '''or''' and '''if''' work. In C, Java, and a slew of other languages you JHTK that a for loop uses initialize-compare-operate inside the parenthesis. In America, you JHTK that the national speed limit is 65MPH unless a sign posts a different limit. Most localities have either a 30 or 35 MPH limit unless otherwise posted. * ''Er, isn't it 55mph?'' Not since the federal law was repealed (in 1995, if I remember right). Each state now sets there own limit (see http://www.mit.edu/~jfc/laws.html for details). ---- So JHTK is shorthand for "just have to take the introductory course on etiquette/driving/C/Lisp"? ''Or "just have to RtFm." -- AdamBerger'' Yeah, except in cases (often social contexts) where there is no FM. ''Programmers often think social contexts have no manual, but that's just because they largely don't care. How many programmes do you know who have read an etiquette book, for instance? That's one of the basic manuals.'' ---- This is a reasonable gripe about many systems. One of the supposed advantages of a MenuDriven system over a CommandLine system is ProgressiveDisclosure. The user can examine all the options in all the menus to see what kind of functionality is available. Another step in this direction are the various "balloon help", ContextMenu, and "tool tips" mechanisms available in modern UserInterface''''''s. ''How can one get to all the menus in the first place? Even if you've seen all the menus, how do you remember how to navigate to the specific menu you need?'' * Two ways: hierarchy of submenus and spatial memory. Also, a ''good'' menu system manages to have only a few menus (although I expect there are exceptions to this, they're rare). Although Unix has ManPage''''''s for (most of) the common commands, and most commands give rudimentary usage help when given unrecognized arguments, there is not to my knowledge a unified mechanism for a user to determine how to do particular tasks. Please correct me if I'm wrong. -- IanOsgood One of the nice things about the GNU utilities is that they standardize on some common parameters. One of the most helpful (so to speak) is "--help". Also, the BourneAgainShell (bash) has a facility to do CommandLineCompletion not just for commands and files, but also for command line options! You need both to enable this feature and to supply standard databases of options for each command. Many LinuxDistribution''''''s have this support turned on by default. ---- ''How can one get to all the menus in the first place?'' Huh ? That's the whole point of early MenuDriven applications: all menus are listed in a row at the top of the window. (Later applications had sub-menus and dialog boxes, which make it much harder to find ''all'' the functionality). ---- ''Even if you've seen all the menus, how do you remember how to navigate to the specific menu you need?'' Huh? The whole point is that you *don't* need to remember. You can simply *guess* which of the menus has the function you want, and select that menu. If the function you want is there, click it. If it's not there, you simply select all the menus (listed at the top of the window) one at a time ("file", "edit", ... etc.) until you find it. If you use some function often enough, you'll notice the keyboard shortcut listed next to it in the menu, and start using that shortcut. ---- CategoryIdiom