Further analysis of my web stats indicate that the notes on the Mythical Man Month is the most read article on the site. This is also consistent with the most wanted search results (except the helpmeleavemyhusband ones).
I'm certainly not done with the concepts I talk about in this log entry and most recently I've thought a little about the irony of the fact that I always, without fail disable auto completion features from 'Office-Style' applications, like mail programs, the browser (the form handling, not the history) and the word processor. This seems to be a contradiction of the happiness with which I embrace IDE enhancements like code completion. Why the difference. First of all - The standard auto-completion apps are a nuisance. They are quite simply badly done, and very intrusive. Second, I don't really trust Microsoft for a second to not send my keystrokes to shady businessmen. (So password suggestion is a very specific Thing That I Do Not Use). Thirdly, the lack of a model theory underlying the suggestions make them much less valuable. They are rarely the proper suggestion. In a word processing application you always need a specific grammatical form of a word, and the suggestion mechanism does not typically include grammar in the algorithm to guess words to suggest. Articifial languages like the ones used in computers have the quality that tokens are never modified to alter meaning, so seggestion mechanisms need not take this into account.
Of course word form is not the only interplay between language and code completion. The Delphi IDE has a particularly obnoxious model clash in it's code completion. When you're writing a sentence, and is mid sentence at an 'active' point in the sentence, i.e. the next token you write will be the first token of an expression identifying a value missing from the entire statement, Delphi has the good idea to require completion to return a value of a compatible type, since the sentence will not compile if there isn't one. However, the Delphi IDE is not able to accept the fact that you could write a sentence that computes a reference of the correct type, e.g. by descent through properties of objects nested within one another. This is particularly annoying : Code completion starts up, but does not allow you to navigate to the accessor you need, since it has the wrong type.
The Internet Explorer link history is another case in point. If you have used a site with many implicitly loader resources, the suggestion mechanism cannot do what my weblog analyzer can : Distinguish between navigable pages and implicitly loaded resources, so the history record is polluted with all kinds of gif's etc that hide the link suggestions that make any sense.
So to do a proper suggestion, you need an exact or a good statistical suggestion mechanism, and you need to allow for the grammar of expression that is currently in focus.