Programming without math, part 11

On the one hand I’ve been working on this programming language that everyone can use. On the other hand I’ve been trying out different names for it. I suppose this might be premature. On the other hand, in some ways it can be hard to work on, or even think about, something without knowing what to call it.

At first we (my students and I) wanted to call it “Patch” — an portmanteau of “Python” (the popular programming language) and “Scratch” (the MIT programming language for kids). But Patch is not really a very appealing name, is it? It sounds for all the world like the name of a sad little rag doll lying abandoned at the bottom of an old toy chest. Not really a name upon which to pin the dawning of a new era of universal literacy.

I tried out a few other names — like “Monty”, to suggest a prequel to “Python” — but most of them were just plain silly.

By far the best I’ve come up with comes from the mantra “Programming is easy”. As an acronym, that spells “Pie”, which has a rather nice ring to it. Pie is a simple name, easy to remember, and slightly whimsical, but not too whimsical. It also emphasizes the analogy between a program and a cooking recipe, which is definitely good.

I particularly like the way it sounds like the beginning of “Python”. In a sense, learning Pie is the beginning of learning Python. Furthermore (switching now into shameless pun mode), Pie is well rounded and flavorful, something you can really sink your teeth into. It’s a peachy name, fresh, yet warm. Quite à la mode, as they say. Possibly half baked, but that’s ok — this is research, after all.

And of course, everyone knows that Pie goes well with Java. 🙂

All in all Pie seems like a fine name for a universally accessible programming language, no matter how you slice it. Does anyone care to agree or disagree?

The gathering storm

I feel odd about the year winding down. No, that’s not exactly right. To put it more precisely, I feel odd about feeling odd about the year winding down. I ask myself, why does it matter so much?

As these last days curl off the calendar, one by one, everyone is focused on this coming event, this next turning of the year. It so thoroughly pervades our thoughts that we don’t even quite notice it, so obvious is this particular elephant in this particular room.

It is quite like the feeling I remember as a child on summer mountain afternoons, as storm clouds slowly massed in one corner of the sky, and the darkness gradually spread outward, swallowing the blue sky while a chill filled the air. You could always feel when a storm was coming — that peculiar sudden drop in air pressure, the way even voices sounded different in those moments before the deluge. And then eventually the delicious sound of a million raindrops drawing closer, a veritable wall of water rushing toward you, an event so much larger than mere human scale, and yet somehow so personal.

The New Year is like that. We each bring our memories of other storms in other days, of the friends we were with, and how we felt about them. Even now, with four whole days to go, I can already feel the air pressure drop. People are aligning themselves, choosing where they will be on New Year’s Eve, making their resolutions.

By any objective measure it is just an arbitrary day, a moment, a trick of the calendar conjured by an accident of history. And yet we all feel it just the same. And when it comes, and the raindrops splash upon our upturned faces, every one of us will look up with hopeful eyes, each in our own way, for the dawning of a new year.

Unobtainium

Having just seen the film “Avatar”, I’m still pondering the substance Unobtainium, which shows up early on in the plot. It was a bold move for James Cameron to include something of this name in his story. “Unobtainium” is, in some circles, a well known substance. Whether you work in the sciences or the film industry, it is the thing you can’t get. For example, my cousin who works in film production tells me that the replacement lamp you need on the set, when there is no replacement lamp to be had, is said to be made of Unobtainium.

It turns out that this substance has its very own Wikipedia page — from which I learned that it is not actually the rarest substance in the universe. That turns out to be “Handwavium” — referring to something that can’t actually exist in any universe at all, because it consists of hand waving. Apparently that is the rarest substance of all. Or the most common, depending upon how you look at it.




Unobtainium (in case you need to know what it looks like)

I love the way that Cameron just plops this term right in the middle of the most literal-minded expensively realized special effects film in history, a movie in which each leaf on every blade of grass was lovingly created at immense detail, and at even more immense expense. In the midst of all of this slavish devotion to accuracy, this delicacy of execution, he throws us a giant neon sign, a metaphor as clankingly, pointedly in-your-face as, say, the first three letters of the title character’s name in Beckett’s “Waiting for Godot”.

This is a move that shows great confidence, which I like. After all, in the world of the film, when one character explains to another that this is Unobtainium, the appropriate response would have been “What? Is this some kind of joke? Or are you just a complete idiot?” But of course that’s not how it goes down. The characters are not in on the joke — only we are, the audience. Cameron is asking us to join him in a moment of outrageously post-modern comedy in an otherwise very self-serious story. Basically he’s telegraphing, in no uncertain terms, that all of this world’s a stage, and all the men and women merely players.

When you watch “Avatar”, if you haven’t already (I recommend it highly — it’s right up there with “Lost in Austen”), you’ll see that this seemingly tiny Shakespearean detail is, in fact, a precise commentary on one of the central themes of the story. And that’s just genius.

Picture this song

Today I was listening to one of my favorite songs — “London London” by Caetano Veloso — and it occurred to me that one could create a single image that forms an unmistakeable “snapshot” of this song, for anyone familiar with the song. Here is the image I came up with:



This suggests an idea for a game: Choose or create a single image, and ask somebody to guess what song it represents. Here is one that most of you will find easy:



I showed the two above images to my cousin Ben and his wife Estéphane (she is Brazilian). Estéphane got the first one instantly, but Ben had no idea what it was.

On the other hand, Ben got the second one instantly (as I suspect most of you will), but Estéphane had no idea what it was.

Which suggests another game: Choose two friends, and create two different images, each of which represents a different song. The goal is to create your images so that one of your two friends will be able to name only the song suggested by first image, while your other friend will be able to name only the song suggested by the second image.

I think this game is much more interesting.

🙂

Lost in Lost in Austen

I saw the film “Lost in Austen”. Actually it was a four part BBC series (which I happened to catch on streaming Netflix). The premise is very simple. Amanda Price, a modern day young woman in London, upon rereading “Pride and Prejudice”, finds herself somehow swapped with Elizabeth Bennet. While the fictional Ms. Bennet is presumably left to cope with the unfamiliar world of post-millenial London, Amanda must navigate the perilous terrain of the upper classes at play in early nineteenth century England.

This could have been a complete mess. There have been so many knock-offs of Ms. Austen, from “Clueless” to “Pride and Prejudice and Zombies”. But this one is different. The writer, Guy Andrews, not only knows the intricacies of Jane Austen’s masterpiece inside and out, but he writes as if you do too. It’s all perfectly entertaining if you haven’t read the book, or perhaps have read it once and forgotten much of it, but if you really know the book inside out, then this film is a treasure map, leading you through the subtleties, the delicate jockeying for social position, sudden shifts in balance of power, delicate feints and clever subterfuges that form the lifeblood of Austen’s greatest work.

I can’t actually think of anything else like it. Rather than the usual pop-cultural trick in a “fish out of water” story of replacing a masterpiece with something coarse and obvious, “Lost in Austen” draws from the intricate strengths of the original work, building on them expertly to create an alternate version of Ms. Austen’s universe that is in every way true to the spirit of the original. In fact, the more familiar you are with the original work, the more you will enjoy “Lost in Austen”. If you are a fan of “Pride and Prejudice”, then you already know these characters — you know them intimately, know what they will do when faced with a novel set of circumstances. And yet Andrews’ biggest conceit is to suggest that you don’t know them nearly as well as you believed you had all these years. They say and do surprising things, revealing novel dimensions, but always in ways that are completely consistent with Austen’s original intent.

Part of this is due to Andrew’s perfect ear for Austen’s dialog. Everything that emerges from the mouths of these characters — from Mr. Darcy to Mrs. Bennet to Mr. Collins — is dead-on accurate, a perfectly pitched expression of how speech from that particular character would actually emerge from the pen of Jane Austen.

I think this may be something very rare indeed — a genuine work of post-modern genius on television. If you have ever thought there was more to Lady Catherine de Bourgh than meets the eye, that perhaps Georgiana Darcy was not as she first appears, if ever you harbored questions about the dynamic between George Wyckham and Caroline Bingley, or if you are simply a fan of Austen’s masterpiece (you know who you are), you should watch this film immediately.

Programming without math, part 10

One thing that is becoming clear to me, as I play around with different implementations, is that universal programming literacy will require undoing the general perception of programming as an “off-line” activity — as opposed to, say, writing, which can easily function as an “on-line” activity.

By “off-line”, I mean something you can generally only do slowly and in solitude, when nobody else is around to disturb your concentration. It is certainly true that much writing of prose takes place off-line. I generally write these blog posts during some interstitial time of day, when no one else is about. On the other hand, we don’t need to write off-line. It is quite common now for people to engage in text chats or fire off quick emails in the middle of events or meetings. And of course the entire point of a tweet is that it is an emphatically on-line act. In fact, this single quality essentially defines the very ethos of the twitterati. To tweet is to twist the dictum of Ram Dass — “Be Here Now” — into an imperative to “Be There Now”.

And so I’ve reached the conclusion (at least for now) that the proper way to teach programming — if programming is to be a universally acquired skill — is to immerse the learner into an on-line community, via a synchronously shared game or activity, in which programming serves as a fundamentally conversational skill. In such a learning environment, communication between people should be an essential purpose of the act of programming.

In this scenario, programs are not heavy things, like most programs of today — creations of psychic bricks and mortar — but rather light and airy, quickly mutable, jotted musings that produce an instantaneous effect, which can be quickly changed and just as quickly discarded.

In other words, the very qualities that we expect from a language.

A fifth of vodka

Today I was visiting the MIT Media Lab, mainly to talk with Mitch Resnick and Marvin Minsky about programming without math. While I was there, I got a demo from a grad student about a multitouch table interface he’s been developing. He told me he’d discovered that the simpler he made his interfaces, the more people seemed to like them. We discussed the need for very natural interfaces that make the most intuitive sense to people. Even if such interfaces have less functionality than the fanciest interfaces, people greatly prefer them.

At one point in the conversation I found myself saying that interfaces should pass the fifth of vodka test. “What’s that?” the student asked. I explained that the best interfaces are the ones that would still work after the user has drunk an entire fifth of vodka. The student seemed somewhat surprised to hear of such a thing, but he agreed that this is indeed an excellent test, one that seems to get at the essence of things. For example, the Apple iPhone passes with flying colors, whereas it’s hard to think of any software by Microsoft that would pass the fifth of vodka test.

So how long had this test been around? Well actually it hadn’t — I just made it up that moment. Still, I think there’s something to it. For example, it could be interesting to see how well the fifth of vodka test works in practice. Then again, I can foresee some practical problems. For one thing, I imagine it would be very difficult for a study validating such a test to get funding from the National Science Foundation.

If you see what I mean.

In her own write

We generally don’t realize where the rules are, until we see them broken. Everything we do — dining at a restaurant, riding a bus, attending a seminar, going on vacation at the beach, writing a book review — has a host of unwritten regulations, specifications, agreed-upon limitations. These rules are enforced by society at large in a host of ways. Most of these ways are so deeply engrained, so endemic to the DNA of our experience, that we don’t even realize the rules are there.

Until they are broken.

Yesterday I experienced a glorious breaking of the rules of writing a book review. In a rare — and as far as I know unique — departure, The New York Times Sunday Book Review accepted a piece by the great young singer/songwriter Nelly McKay which was itself a work of transgressive art. In all my years reading the NYTSBR I’ve never seen anything like it, and I must say I was impressed and delighted.

The context was songwriter/musicians reviewing biographies of songwriter/musicians. On one page appeared Nelly McKay’s review of a recent biography of John Lennon, and on the very next page appeared Suzanne Vega’s review of a recent biography of Paul McCartney. So far, so good — matched sets.

But Nelly McKay, apparently discontent with this prosaic formalism, chose to think outside of the box. Hell, she did away with the box altogether. Taking a cue from Lennon’s linguistically plastic 1964 book “In his Own Write”, she turned in an original work of surrealist art.

Which the editors, to their great and eternal credit, published as is. The result does far greater honor to the spirit of John Lennon than ever could be achieved by any mere book review.

But why take my word for it? You can read it for yourself.

When snow falls in New York

When snow falls in New York it fills the day
The cold air snaps in perfect crystal light
Manhattanites all wander out to play
Forgetting to be chic in their delight

The park is lovely in its winter best
Dappled by a sea of hats and gloves
Couples dart about as if possessed
Flinging snowballs at their winter loves

One day soon we’ll come back to our wits
And again be jaded, ever in the know
We’ll put away the scarf and winter mitts
But today we’re all just kids who play in snow

Literature

Circling around the topic of programming without math — but not quite landing back there yet — I remember a very evocative conversation I had with Marvin Minsky up at MIT about five and a half years ago. We got onto this very topic – the question of whether there would ever be such a thing as universal programming. To put this into some context, Marvin is not only one of the founding gods of the field of artificial intelligence, he was also a key mentor for Terry Winograd back when Terry was doing his SHRDLU work. So Marvin’s interest in such subjects goes back to the very beginnings of the era of modern computers.

I asked him whether there could be a computer programming language learnable by all. Marvin’s response was unique, and rather profound. He said “Computer science already has a grammar. What it needs is a literature.”

There are a lot of implications nestled within this response. When I think of a “literature”, I think of the fact that we all enjoy reading what each other has written. We read Jane Austin, Woody Allen, Stephen King or Alice Munro for fun. It’s not work, it’s enjoyment. If I write a prose piece and nobody ever wants to read it, then on some fundamental level I have failed.

When we talk about computer programming the situation is not so simple, because there are two artifacts: the computer program itself, and the resulting runnable program. In today’s world, most people who play around with a program you’ve written will never look at your code.

Marvin’s response suggests the possibility of a different relationship between the written program and the user’s experience — one in which program and experience are not kept separate, but rather are intertwined with each other. If we look at the user as a reader — analogous to the way we think of the reader of a novel — then we want the user to be aware of the written program, with sufficient literacy to be able to appreciate, and even critically comment upon, the author’s process.

Of course this is very different from the world of computer programming as it exists today. But I think Marvin is right: In order to truly enjoy a medium on a cultural level, we all need to be able to appreciate the beauty within the process of creating the work, not just within the final result. Whether it be dance, music, architecture or the novel, we learn to fully appreciate art only when we understand something of how it was made.

And so it will be when the ability to program expands beyond the realm of math/science and becomes a universally accepted mode of cultural production. When that happens, we will be able to read each other’s programs with a casual facility that will simply be taken for granted. And then programming will be on its way to developing a literature.