The Strange Case of the Twiddle Wakka
The Untold Story of Ruby’s Strangest Operator
If you’ve ever tried to learn a programming language, you’ve probably encountered at least one combination of characters you had no idea how to pronounce. In Ruby, a language that dates back to the mid-90s and is now mostly used for the web, there are a whole bunch of these:
- => is a hash rocket.
- <=> is a spaceship operator.
- ~> is … a twiddle wakka?
You can sort of understand the names for the first two. The hash rocket looks like a rocket and it’s used in hashes. The spaceship operator looks like a spaceship.
But what in the world is a twiddle wakka?
If you try Googling the term, you’ll encounter a few different articles about how to use the twiddle wakka in Ruby, along with some asides about how the story behind the unusual name has been lost to history.
But the people who invented this stuff are still around. They know how it happened, and a journey into some of the more obscure internet archives can fill in the rest.
Once you really dig into it, the story of the twiddle wakka goes back much further than the Ruby language. It goes back further than the internet. It goes back more than six decades, to a small club at MIT.
As programming languages go, Ruby is relatively new. Between that and the fact that it’s open source — meaning the code behind the language is freely available — its development history is fairly well-documented.
So we know that ‘~>’ was added to Ruby in June 2004, although back then it was known as the “pessimistic operator.” Outside packages known as gems are often used in Ruby programs, and ‘~>’ tells Ruby the highest version of each package with which your software is meant to be compatible.
But “pessimistic operator” is a lot of syllables. It was only a matter of time before programmers came up with a better name.
That said, if you search for the term “twiddle wakka” itself, you won’t see much prior to 2008. As far as I (and Google) can tell, the earliest recorded mention of the term was by Ruby expert Jeremy Hinegardner during a lecture at LoneStar RubyConf 2008.
It’s unclear whether anyone put together the phrase “twiddle wakka” before that, but we do know what inspired it.
Hinegardner says he “definitely did not coin the individual terms,” noting that both “have been in use since at least the 90’s somewhere.”
The culture behind them, however, goes back much further.
In 1959, MIT’s Tech Model Railroad Club put together a dictionary of all kinds of strange new slang — words like “foo,” “frob,” and “hack.”
Over time, generations of students turned this into what became known as the “Jargon File,” adding new terms that sprang up as computing developed. In 1983, it was published as The Hacker’s Dictionary, and today, many of those strange words are ubiquitous among programmers.
The 1959 dictionary didn’t list the terms “twiddle” or “wakka.” But the earliest known version of the Jargon File, which dates back to 1981, does define a twiddle:
TWIDDLE n. 1. tilde (ASCII 176, “~”). Also called “squiggle”, “sqiggle” (sic — pronounced “skig’gul”), and “twaddle”, but twiddle is by far the most common term. 2. A small and insignificant change to a program. Usually fixes one bug and generates several new ones. 3. v. To change something in a small way. Bits, for example, are often twiddled. Twiddling a switch or knob implies much less sense of purpose than toggling or tweaking it; see FROBNICATE.
Unfortunately, “wakka” is nowhere to be found in the Jargon File or the later Hacker’s Dictionary. Back then, the ‘<’ and ‘>’ characters were plain old angle brackets, or occasionally “brokets” if you happened to hang out around Stanford. But it seems like the twiddle, at least, was fairly well-established by 1981.
The origins of the term “wakka” (aka “wahka,” “waca,” or “waka” — however you want to spell it) are much harder to track down.
Its earliest uses on the web almost all come from the same place — a poem, supposedly written in 1990 by students Fred Bremmer and Stephen Kroese. It goes like this:
<>!*’’#
^@’$$-
!*’$_
%*<>#4
&)../
|{~~SYSTEM HALTED
Transliterated:
Waka waka bang splat tick tick hash,
Caret at back-tick dollar dollar dash,
Bang splat tick dollar under-score,
Percent splat waka waka number four,
Ampersand right-paren dot dot slash,
Vertical-bar curly-bracket tilde tilde CRASH.
It’s easy to see why this poem went viral (at least by early 1990s standards). But even then, almost all posts about it went out of their way to explain that “waka” mean the ‘<’ and ‘>’ characters.
In fact, they attribute this name to a poll apparently conducted by the magazine in which the poem was first published, where readers voted “waka” as the most popular term for what most of us know as angle brackets.
This is the internet, though, and as anyone who’s been on Facebook in the past five years will tell you, it’s probably not the best idea to believe everything you see on the internet.
It’s tough to know if the background behind the poem is actually true, since the magazine where it’s said to have been published seems to have vanished from the face of the earth about twenty years ago.
It was called INFOCUS, and its website, preserved by the Internet Archive’s Wayback Machine, says it was published out of Pennsylvania for “users of advanced application environments.” But the site has been offline since at least March 2000.
We can still trace this poem’s history to the days before the web proper existed, though — to what seems to be the original post sharing it over the internet, via the collection of newsgroups known as Usenet.
For those of us who are under 30 — or just weren’t into computers back then — Usenet was the main way people shared information over the internet in the 80s and early 90s. Developed in 1979 at Duke University, it was basically a combination of what we would call an email list or message board today.
Members of a newsgroup could post things, which would be shared with everyone else in the newsgroup. They were often organized by theme or topic, and “Waka Waka Bang Splat” appeared in the group known as rec.humor.funny in July 1990.
Not many people use Usenet today, and it’s not something you can just search or scroll through using a web browser. But at some point Google did archive many of the newsgroups, and if you know where to look, you can browse posts from a specific group.
The poem was shared by Tom Schiavinato, and claims it was posted with permission from the author of the column where it appeared in INFOCUS magazine’s May/June 1990 issue. He prefaces it with the following:
FYI — a “wahka” is the decidedly “proper” (by popular vote) name for the characters “>” and “<”. This is in spite of INFOCUS readers of Denver who still refer to them as “Norkies”. The Michigan crowd apparently has corrupted the spelling to “waka”.
Note that while this seems to imply that in some form readers voted that the ‘<’ and ‘>’ characters should be called “wahka,” there’s nothing to indicate it was actually a popular term — as opposed to, say, a choice between a few humorous suggestions by the magazine.
It’s clear that in the decades since, “wakka” has become a fairly well-known term for angle brackets, at least among programmers and various other types of computer nerds.
But the fact that Schiavinato felt he had to explain what the term meant even to Usenet users, who were for the most part extremely computer-savvy, indicates that it may not have been as popular as the people who later shared the poem on the web suggested.
It’s not too surprising that “wakka” became popular enough to inspire the twiddle wakka, though. It’s a pretty catchy poem.
As for officially dubbing ‘~>’ the “twiddle wakka” in the documentation for the Ruby language … back in 2011 that was a matter of some heated debate among the language’s contributors.
Some were in favor of twiddle wakka; others preferred a different term that had made its way into the documentation over the years: the “spermy operator.”
You can sort of see where they were coming from there. But I, for one, think we can all be grateful they went with twiddle wakka instead.