John Gruber is annoyed by the simultaneous use of “Web Kit” and “WebKit” when ostensibly referring to the same thing. While his complaint boils down to allegations of editorial laziness, there may be a more benign cause. In any case his post opens up a can of very interesting worms.
I think the confusion comes from the fact that in most cases, when these distinct terms are used, the author is not referring to exactly the same thing. The Web Kit is a development technology from Apple. There is a tradition of calling such an aggregation of functionality a “kit.” So among all the kits that Apple provides, the Web Kit is, you know, the Web one.
As programmers who deal largely in framework and header names, we tend towards using the CamelCase versions of such technology names. This habit probably comes partly from technical geekiness, and partly because doing otherwise in our code would result in compiler errors.
Admittedly, the use of umbrella frameworks by Apple prevents us from frequently doing:
But when we do find occasional to include from or load code dynamically from that framework, we must refer to it as “AppKit.” This is more than convention, it’s the law! Similarly, programmers who employ Apple’s Web Kit must cite it by it’s fundamental framework’s name:
Similarly, in my last position at Apple, I worked on the “Core Services” team. But our framework was (and is) called CoreServices. Both terms are in common use.
Let’s take a look at the primary violation cited in Gruber’s article. His snapshot of an Apple web page shows use of WebKit and Web Kit side-by-side:
But notice the (relative) consistency here. Web Kit is a concept. A big thing. It’s got a Version Matrix (caps and spaces!) for crying out loud. WebKit on the other hand is “the system framework used [on Mac OS X].” The paragraph goes on to inform developers that they can download the sources to WebKit (the framework) and build their own. By using the sans-espace WebKit nomenclature, the author communicates to developers that the framework itself is specifically being referred to.
This issue is a condensation of the difference between technical writing and technical typing. As a programmer who dabbles in both typing and writing, I appreciate Gruber’s complaint for all its pedantic charm. But these inconsistencies are welcome in my world. Programmers will tend toward using the framework name, and the situation is even “worse” than Gruber fears. He cites a few frameworks that seem less vulnerable to CamelCasing than others:
We don’t frequently see this erroneous closing-up of kit names with I/O Kit or PDF Kit because closing up their names looks bad.
But these supposed abuses are in fact common in my lexicon. I refer to IOKit and PDFKit just like that, because compilers and other programmers are most likely to understand me when I do. They are also shorter, instantly imply their singularity, and even wiki-able, if that floats you boat. I even think they look beautiful all closed up like that.
The OED lists the etymology of “caboodle” as supposedly a “corruption of the phrase kit and boodle.” So even if Gruber’s complaint proves well-founded, abusing the word “kit” is a time-honored tradition that will no-doubt be preserved.