Monday, December 22, 2008

The Obscenity of New Syntax


A couple of weeks ago, I attended the Lambda Lounge for a talk on OCaml. I decided to be proactive, so before the talk, I downloaded the runtime and kicked the tires.

For days, during compilations and Fit tests, I would play with the language. I had used ML years ago, but had forgotten much of it (aside from a vague memory of an ultra-strict, Klingon type system that was both a high-grade irritant, and yet oddly reassuring).

By the end of a week, I wasn't much further ahead with OCaml. I had written some basic functions and expressions, but nothing substantive.

The Experience

During the talk, I realized that the experimentation was more useful than I had imagined.

The presenter showed something like this:

# let sphere_surface = fun x -> x *. x *. pi;;
val sphere_surface : float -> float = fun

The questions flew immediately: why is there a double-semi (;;) ? are we running as root? how do we interpret the output?

These were natural questions by smart newbies to the language. I had two thoughts:
  • Naturally, it helps to prepare for a talk, but I was surprised by how far my modest time investment had taken me. I couldn't have answered all of the questions, but I could place myself in both mindsets: one of the questioner (what the heck?) and also the presenter (oh, see it works like this).
  • The first few examples struck the audience as obscene. I don't mean morally, and I don't mean that as a slight to OCaml per se. I mean in an artistic sense: well-known symbols that were beloved in other contexts had now been thrown together in a way that was jarring and almost repulsive. It takes some time to get past that shock of illiteracy.
The Upshot

This post is a reminder to myself: if a language talk is on the calendar, it is vital to download the environment and write some toy examples before attending, even if you only have a couple of hours to spare. The idea is not to learn the language but to embrace the obscenity and overcome it: celebrate the dissonance! As one music teacher put it: the Hendrix chord would have been considered hideous, even dangerous, in other eras. Now, it rocks.

Next Up: JavaFX

You may have several opportunities to see presentations on a new language in the near future: JavaFX. If you subscribe to the idea behind this post, you might be interested in an article by my friend Weiqi Gao: it is a top-shelf article on JavaFX as a language.

I'm going to be giving it a whirl over the holidays. The goal is to sing Auld Lang Syntax on New Year's Eve!

ps. Best holiday wishes to all readers... Here's a toast to a fine '09

Monday, December 8, 2008

Island Rhubarb Dessert (Favourite Holiday Recipe Meme)

I've been tagged by Eric on the Favourite Holiday Recipe meme. Here is mine: it is not difficult compared to other family recipes but it is excellent. It works best with rhubarb grown on Prince Edward Island, but if not possible, work with the freshest stuff you can find.

I'm tagging:

and Dave

Island Rhubarb Dessert

This a 4-layer pan dessert.

  • Put on some favourite holiday music and pour a beverage of your choice.
  • Prepare separate packages of dreamwhip and a 6 oz package of vanilla pudding.
  • Eat some vanilla pudding, to set the stage.
  • Crust layer: Mix 1 1/2 cups graham crumbs, 1/4 cup soft margarine, and 1/4 cup brown sugar. Spread in 9 x 11 inch pan. Bake at 350 F for 5 to 8 minutes. Let cool.
  • Filling layer 1: 4 cups fresh or frozen rhubarb, 1 cup white sugar, 1/2 cup water, 3 tablespoons cornstarch, and 2 tablespoons strawberry jello powder. Boil until cooked and thick to a sauce. Spread on crust. Let cool.
  • Filling layer 2: Cover with prepared dreamwhip and add 1 1/2 miniatures marshmellows if desired.
  • Top layer: spread prepared vanilla pudding over the dreamwhip layer.
  • Refrigerate.
  • Enjoy with friends.

Saturday, December 6, 2008

Lambda Lounge Lures Legion of Licentious Linguists

As many others have mentioned, the first meeting at the Lambda Lounge was a big hit! It was clear from the turnout (30+) that (a) a lot of people have a thirst for something more exotic than Java and (b) the IT community in StL is thriving and sophisticated. We all agreed that we are 'promiscuous' regarding computer languages (hence the post title).

Appistry served as gracious host and formed a fitting backdrop for the evening, and the vibe was palpable; there was an energy similar to the NFJS conferences.

The content was excellent stuff: Matt Taylor discussed categories and mixins in Groovy; Ryan Senior gave an overview of OCaml.

Overheard at the meeting (paraphrased) :

  • Java is wonderful, boring, and the new COBOL, all at the same time. (Editor's note: perhaps it is the new C ?)
  • I wish OCaml didn't use # as the prompt. I feel like we're the root user and something crazy is about to happen.
  • 10 years ago, we turned out in gatherings like this because we were stoked about Java. Now we turn out to get away from Java.
  • The opposite of a functional language is a dysfunctional language.
  • They should name OCaml's web framework to be ODromedary.
Bottom-line: Come on out to the January meeting if you want a piece of this. Time well spent with cool people.

Wednesday, December 3, 2008

Child suspended for EJB taunt

CtJ Newswire
Parody City
December 3, 2008

A district schoolboard reported today that a Grade 2 student has been suspended indefinitely for calling his teacher "the EJB of school" in class.

The announcement comes on the heels of a heated exchange between the teacher and the student as to whether cursive writing was important.

The principal of the school, Edgar J. Boyle, provided a brief statement: "We aren't exactly sure what EJB is, but after consulting with the IT industry, we understand that it implies a high degree of excess proportion and baroque complexity, ultimately leading to failure. In some circles, it is a taunt of the highest order. We believe this kind of language was learned in the home, but we refuse to stand for it in the classroom."

There is no word if the parents will appeal the decision, despite rumors of a protest website being constructed with Grails, a nascent IT solution.