computer science: n. a study akin to numerology and astrology, but lacking the precision of the former and the success of the latter.
– Stan Kelly-Bootle, The Devil’s DP Dictionary
I’d say the above is no longer true: computer science is successful. But it really isn’t very precise.
The field of computer science is probably the area of knowledge that is closest to pure gibberish. On my shelf are books with the titles Python in a Nutshell, Enterprise Java Beans, and MySQL & mSQL. A random passage reads:
In this example, gmpy manages to compensate for the float’s “representation error” and emit the exact fraction that you presumably meant rather than the mathematically exact one, which tends to be less useful.
– Python in a Nutshell, p. 374
You get the point.
This is because where other fields invent new names for new concepts, computer science tends to borrow old names for new concepts. Thus “bean” and “object” take on new meanings. Even mathematics tends to coin terms carefully, and use names for specific concepts, such as “Jacobi identity.” You won’t confuse that with a desert topping, and other mathematicians will typically know what you mean.
Sometimes things get really confusing as perfectly good words get used up. Like the word word, which means 16 bits (bits?) on most computers. Wouldn’t want to confuse that with a dword, or double word. You get the confusion of the specific versus the general, when words like object, entity, and attribute get used up. Then you get text like the following (I plead the Fifth on where this originates):
If the entity is a class object then the collection of known object classes is updated with the provided class object. Otherwise the object’s class is declared to the container manager prior to being serialized.
Fred Brooks pointed out that most fields study what’s out there; natural phenomena, if you will. Computer science studies its own invented concepts, and they could have been implemented in different ways and often are; there are many competing ways of doing things.
All this is relatively important. Computer scientists, programmers, and others who work in the field develop an affinity for this sort of silliness and help perpetuate it, often just for fun. Need a name for your just-in-time compiler? How about ElectricalFire? (Apparently the other name proposed was, famously, “sexual chocolate.”)
The goal isn’t to be perspicuous (or I wouldn’t have used that word, after all), but to have fun. And in the end, isn’t that what computer science really should be all about?
