Go back Scroll to reddit comments

Ruby puns


January 21, 2020

We all know his name... but many of us only "sort of" know it.

W
e all remember Boole in our own way, if at all. His work comes up in discrete math and in electrical engineering, among other places. But computer science students and programmers in general remember him chiefly for the Boolean operators and the concept of the Boolean data type.

I decided to Google for "who was Boole"... this was the result.

Notice the top autocomplete. This seems to suggest that "Boolean" was the person's name. I decided to make this blog post to set the record straight.

But that isn't the only reason I'm writing this. I want to speak up for this historical figure just a little and correct what I perceive as a minor injustice.

Did anything look unusual in the previous sentences? Perhaps the capitalization of "Boolean"? It's often lowercased in the computing community, and there are reasonable historical reasons for this.

In the old days, it was often inconvenient or impossible to type or even to render lowercase letters. As recently as the 1980s, I have seen terminals and printers that were strictly uppercase. Take a look at a textbook or manual from that era, and you will often see the same thing.

On the other hand, people have always known that in English and similar languages, lowercase was an essential part of reality. As it became practical to use computers for applications such as typesetting and word processing, we started to take mixed case for granted.

Somewhere in this time frame (or a little earlier), UNIX came along. And yes, we did spell it in all caps at the time. This was true of most computer language names and such, many of which were some kind of acronym or abbreviation: FORTRAN, COBOL, BASIC. There was no particular reason to put PASCAL in all caps... but people often did, out of a strange kind of habit.

But let's get back to UNIX. Have you ever wondered why we type ls, cp, and mv rather than list, copy, and move? It's not just that old terminals could be slow to echo. One of the UNIX creators basically hated to type. (I remember it as Brian Kernighan, but it may have been Thompson or Ritchie.) And I argue this laziness also extended to a reluctance to type capital letters. Can you think of a command flag that is capitalized (such as -F) except where the lowercase (such as -f) was already used by something more fundamental? I can't think of one.

So as we made a transition from all-caps to mixed case, programming languages that were traditionally written in upper case were now written in all lower case. In Pascal, we might once have written FOR I:=1 TO 10, but a little later, we wrote for i:=1 to 10 instead.

Do you see where this is going? Where we once wrote BOOLEAN, we wrote boolean instead. And because we saw this so often in our programs, we started writing it that way when we wrote about our programs.

Sometimes this is necessary. If you are using a language where identifiers are case-sensitive (like most or all modern languages), there may well be an actual data type named boolean, and it would be an error to capitalize it (even outside our code).

So typography matters here. For many years we have tended to write code in some kind of monospaced typeface, harking back to the days when we had no choice in the matter. So consider these three sentences, which might appear in any manual or piece of documentation:

  1. This function takes a boolean parameter.
  2. This function takes a boolean parameter.
  3. This function takes a Boolean parameter.
It's reasonable to use lowercase in (1), because we're presumably referring to an actual identifier or reserved word in some language. As for (2) — I think we see that all the time, but I'm arguing here it's not appropriate. The usage in (3) is more appropriate.

Now, before I am misunderstood and/or flamed — here are the things I am not saying:

  • I'm not saying we should change the compilers or interpreters.
  • I'm not saying that all the books and manuals should be rewritten.
  • I'm not saying you're ignorant or a bad person if you don't capitalize "Boolean."
  • I'm not saying we should call out people who don't capitalize it.
But for comparison, let's look at some other scientists and mathematicians whose names have been converted to adjectives. So far I have searched for these: Einsteinian, Newtonian, Galilean, Ptolemaic, Copernican, Wronskian, Laplacian, Lagrangian, Riemannian, Euclidean, Keplerian, Gaussian, Hamiltonian, Archimedean, Diophantine, Pythagorean, Darwinian, Lamarckian, Eulerian, Cartesian, Napierian, Bayesian, and Brownian.

These terms have this in common: They are always capitalized. (Interestingly, Abelian seems to be an exception in many people's usage.) And yes, you may find places where these names are not given capital letters, but I contend they are very few in number.

Let's range further afield, into the realms of philosophers, religious figures, writers, and artists. I have searched for these: Socratic, Aristotelian, Mosaic, Benedictine, Kafkaesque, Epicurean, Shakespearean, Elizabethan, Edwardian, Spenserian, Petrarchan, Smithsonian, Botticellian, Dickensian, Orwellian, Jungian, Freudian, and Adlerian. I've found very few uncapitalized names. The lowercased kafkaesque is not unheard of, and we may informally call someone an epicurean (though we refer specifically to the Epicurean philosophers in uppercase).

It's worth noting that units of measure named after people are not capitalized: newton, ampere, coulomb, gauss, fermi, kelvin, henry, hertz, pascal, and watt. I can't find an exception to this. Sometimes, though, the person's name is tacked on as part of the unit or system of measure; we do capitalize the names when we refer to degrees Fahrenheit, degrees Celsius, Richter scale, Mohs scale, and the Dobson unit.

Of course, in many cases, we just don't convert a name to a different form: Hilbert space, Schwarzschild radius, Feynmann diagram, Bohr model, Fermi principle, Drake equation, Rohrschach test, Hall effect, and so on. Why is this so common? I think it's because an adjective form might often be hard to spell or pronounce, and overall we have less of a tendency for "fancy" adjectives nowadays. But in any event, we'd never think of lowercasing these names.

And yet Boole is shortchanged so often in our world! Mathematicians talk about Boolean algebra, and even electrical engineers talk of Boolean logic; but programmers talk of boolean data and boolean operators.

Come on, guys. Give him his due. By the way, his first name was George.

So I am making a pledge: Where it's possible and practical, I will capitalize Boolean whenever I write an article, a book, or a piece of documentation. I encourage you to do the same.



[Back] [permalink]