Table of Contents
Ever since I started developing browser add-ons for clients, I've battled with the confusing terminology used to describe them. A typical conversation goes something like this:
Client: How's the plugin development going?
Me: Extension development.
When we started running some Google ads, I noticed the same phenomenon at work. I picked a bunch of keywords including "plugin", "extension" and "add-on". Some people found our ad with a query containing "extension" (especially if they were interested in Firefox), but the large majority queried "plugin". The funny thing is, exactly none of them wanted an actual plugin. They all wanted extensions.
The fact is that for the segment of the population who are not browser geeks, everything you install in your browser to extend its functionality is a plugin. Partly this is doubtless because the term "plugin" has an older pedigree. Partly it probably reflects the fact that a lot of other software also uses plugins but none has extensions. For all I know, "extension" simply has too many syllables.
Since a considerable majority of the population is made up of non browser geeks, this makes me wonder how legitimate the distinction between "plugin" and "extension" really is. Despite valiant attempts to explain the difference, it's a safe bet that most people will never know or care. Meanwhile the ambiguity inherent in the term "plugin", which means something totally different to an expert and a layman, is frequently annoying and occasionally downright dangerous.
How could this be fixed? I see two appealing solutions (neither of which will ever be adopted, but I can dream, right?). The most obvious is to make "plugin" mean what "add-on" does today (i.e. anything that adds new capabilities to the browser, whether an extension or a plugin). That way popular usage would no longer be wrong, and we could presumably tell from context when a plugin (in the traditional sense) is meant. Browser geeks and other pedants could say "NPAPI plugin" or "ActiveX plugin" if they want to be specific.