Hello, Ubiquity command developer community?

We need to talk.

Here is an assortment of Ubiquity verbs, that I chose semi-randomly as a representative sample. Some were developed by Mozilla Labs, and others are third-party verbs I found via the Herd. What do they all have in common?

  • google
  • yahoo-search
  • add-to-calendar
  • command-editor
  • remove-annotations
  • flickr
  • view-source
  • foxytunes
  • stumbleupon
  • validate
  • search
  • lyrics
  • link-to-wikipedia

(Answer below the fold.)

Answer: They have nothing in common. That’s the problem. The ubiquity command namespace has no consistency whatsoever. It is total anarchy. For example, why is there a “-search” suffix in the name “yahoo-search” but not in the similar command “google”? (Both
first-party commands, by the way, so there’s really no excuse.)

This anarchy is bad for users. The biggest challenge facing new users of Ubiquity is the difficulty of discovering and memorizing the names of the various commands. It certainly doesn’t make things any easier that some search commands have “search” in the name while others don’t. The more command names follow a consistent pattern, the easier it will be for new users to learn the system.

(The same goes for the way that commands use arguments, the wording of their documentation, and so on — the more consistency, the easier the overall system will be to learn.)

The current anarchy in the namespace is not the fault of the command developer community, but rather of Mozilla Labs: We imposed no standard on the naming of our own internally-developed commands, nor did we offer any naming examples or guidelines for third-party developers.

I think it’s past time to start a discussion of standards for command names. However, it’s no good proclaiming a standard if it’s not something people will actually follow. So before proposing anything, I’d like to delve into some of the difficulties of naming commands — difficulties
which push command authors towards choosing nonstandard or suboptimal names — and what improvements the parser will need in order to make better names easier.