Taste for the Web

February, 2005

Wednesday is soccer day. One of our regular players, hoping to show a friend how to meet up with us, discovered Google Maps. After trying it for two minutes, it's easy to see why Google is losing the innovation edge.

It's not hard to guess that users will flock to dynamic, interactive interfaces like Google Maps and GMail. This sort of behavior is often described as sheep-like, but it more closely resembles a less common mammal: the naked mole-rat.[1] Without any ability to regulate their own temperature, they face what seems like an inevitable choice: cooperate with the hive or die.

But if people behave like small mammals, they would do well to imitate a different one. The star-nosed mole can identify an object as edible and consume it in less than 250 milliseconds. It's no coincidence that the star-nosed mole's claws are curved like parentheses.

Google Maps is essentially a large Javascript application. Great hackers have an almost instinctual aversion to Javascript. Google is betting its future on something a tasteful programmer's radar rejects.

Everyone I've asked agrees that Javascript is nasty and tasteless.[2] It's not hard to see that it would be a waste of a hacker's time to be proficient enough in Javascript to create an elaborate, interesting, interactive application in it. But few people have looked beneath their natural revulsion to find Javascript's deeper flaw: curly braces.

Here's an accumulator generator in Javascript.

function foo (n) { return function (i) { return n += i } }

This example, which has four curly braces (two opening and two closing), corresponds to surprisingly elegant Arc code:

(def foo (n) [++ n _])

This example has zero curly braces.

The curly brace is not a natural thing to write. Giambattista Bodoni initially rejected the curly brace characters, and only pressure from American printers persuaded him to include it in his typefaces.[3] Algol 60 lacked curly braces, but nearly all of its descendents have them.

Languages which avoid curly braces attract hackers like a W. Somerset Maugham novel attracts thoughtful and sensitive readers, or a Brueghel painting attracts hackers who are also painters. Many people do not know exactly why they find Python so appealing, but it's not hard to guess: the almost complete lack of curly braces speaks to a deep aesthetic instinct that few closely examine. To find hackers with an innate sense of taste, look for those who love Python, even if they can't articulate why.

Viaweb did not rely on client-side Javascript, fancy cascading style sheets, or dynamic content generation.[4] Yet it was effective enough that Yahoo! bought it for $49.6 million. $49.6 million will buy a lot of time for reflecting on the things that really matter, such as why Google Maps and GMail represent one step in the road to intellectual and cultural bankruptcy for Google.


[1] In The Periodic Table, Primo Levi wrote: "I must also mention another peculiar and beneficent consequence of CS [Customer Service]: by pretending to esteem and like your fellow men, after a few years in this trade you wind up really doing so, just as someone who feigns madness for a long time actually becomes crazy." Also, naked mole rats are pretty neat.

[2] Eric S. Raymond has zero lines of Javascript in fetchmail.

[3] Benjamin Franklin, a contemporary of Bodoni's, was among those who applied the pressure. He wrote in his Autobiography of "that publick desire for brackets which sadly must be acquiesc'd."

[4] CSS is also tainted by curly braces. I read a book that explained CSS with an example like this:

a { color: blue }

Microsoft may not have great hackers, but I think they deliberately make Internet Explorer incompatible with this curly brace-infested syntax.

If you liked this, you may also like Dabblers & Blowhards.