Monday, April 04, 2011

It's useless, but somehow not

Twitter. Even ardent supporters admit that if you describe Twitter in simple terms ("you post whatever pops into your head, many times a day!"), it does seem lame. Someone once called it "the stupidest application you’re ever going to see."

Yet this was someone who thought it was great. Fans have a hard time describing to the unconvinced why Twitter is so great. Scott Hanselman -- prolific blogger, early adopter, and unabashed supporter -- came up with a term that seems to capture this combination of banality and utility in his blog post Twitter: The Uselessfulness of Micro-blogging. In fact, Hanselman goes one better in a subsequent post -- he calls Twitter a river of uselessfulness, and a river (indeed, torrent) it is.

It's an amusing neologism, what with its oxymoronic melding and clever way of both anticipating and retorting to the common criticism of Twitter.

Perhaps surprisingly, this is not the only citation. I found one instance from a time before Scott's blog post, and meaning roughly the same thing (I think), but in a very different context. This is from a forum post that pertains to pickup trucks:
Nothing fancy and of debatable uselessfullness (probably should never be in 4Hi with lockers ON). Maybe some cases in sand dunes or snow, but not much else.
Or perhaps this is just a bit of a mistake. Note that the author here includes "debatable," which I think is unnecessary if you stick to your guns with the new term.

I did find another instance, more recent, but this one is clearly intended with a different meaning.
Uselessfulness. Yes that is now a word. A term we are coining for Tuscon artist Nick Georgiou who takes useless trash (pretty much anything print) and creates amazing useful works of art.
And one more, which came up in the context of a programming blog, a post titled Shuffle: an extension method of random uselessfulness. In this case, the author simply uses the word with no real additional context. I believe the implication is that he's presenting a programming technique that is of perhaps no real use, but it's actually not that clear to me why he's using the term or what he means by it.

I know Scott a little bit, enough to ask him about this term. He confirms that he invented the term for his original blog post. I'm guessing that these other instances are probably independent inventions, or in the last case (the programming blog), maybe it's one of Scott's readers taking up the term and propagating it.

A fun exercise would be to think of new places to wield this term. The concept certainly isn't strange, so there should be lots of candidates. :-)

Friday, April 01, 2011

Truthiness and falsiness

Stephen Colbert put the term truthiness on the map (pdf), but there is a context where the terms truthy and falsy have another, quite precise meaning. This is among people who use the programming language known as JavaScript, which runs in web browsers. The following explanation, by Mike Davies, appears on the isolani blog:
JavaScript has keywords for true and false, but like many C-style derivative languages, it has concepts of truthy and falsy. These are non-boolean expressions that can be treated as a boolean value. The number zero is falsy, and any other number is truthy. Equally for strings, an empty string is falsy, and a non-empty string is truthy.
A slight variation from another blog:
When javascript is expecting a boolean and it’s given something else, it decides whether the something else is "truthy" or "falsy". An empty string (''), the number 0, null, NaN, a boolean FALSE, and undefined variables are all "falsy". Everything else is “truthy”.
(NaN here refers to a value known as "not a number", which JavaScript returns when it needs a number but gets something else, like if you try to add 12 + "a". A discussion for another time: does boolean get a cap?)

I'm not finding a lot of references to these terms outside JavaScript. One blogger uses the terms when referring to the Clojure programming language, and I found a couple of references to falsy in some text about the language Python. Contrary to what the first cite suggests, truthy and falsy are not, at least as far as I can tell, used in descriptions of the C language or its close cousins C++ or Java.

Truthy does have a dictionary definition, which is listed as "Truthful; likely; probable." It seems to me that the JavaScript definition does not match this; in JavaScript we're not talking about likelihood or probability, just a collection of values that all are treated the same (i.e., as true).