Archive

Archive for November, 2009

What He Said

November 18th, 2009


‘Nuff said… :-)

Uncategorized

I’m Just Not Very Creative

November 17th, 2009
Comments Off

At least, not by comparison with this.

Uncategorized

Evolution in Action

November 17th, 2009
Comments Off

It turns out that a human lifetime may in fact be long enough to see a new species emerge. Cool.

Uncategorized

Why Am I Not Surprised…

November 16th, 2009
Comments Off

…that Lego would be a leader in augmented reality?

Uncategorized

When I Said “The Last Twenty Years…”

November 16th, 2009

Last week, in response to Google’s announcement of a new programming language called Go, I said:

I’m underwhelmed: it’s as if the last 20 years of programming language research hadn’t happened.

Turns out I was being generous: read this post from start to finish, and you’ll see what I mean.

So what should a new programming language do to get my attention? First, just as applications should be designed for testability, languages should be too. That means choosing constructs to make the lives of static and dynamic analysis tools better. Building such tools after the fact is like trying to add security to an app after it has been deployed; I think we’d do better to treat the capabilities of today’s leading-edge program analysis tools as hard (but not unbreakable) constraints on what’s allowed to go into a language, and see how far it gets us. I suspect this will push us toward strongly typed and mostly functional languages.

Second, user testing of language features. The folks at CWI did this with ABC (a precursor of Python); Steven Clarke has done excellent work on API usability at Microsoft (see for example this DDJ article from 2004), and there’s lots of other prior art — hell, I did a little myself nine years ago for Python (see these messages for details). I’m not suggesting design by committee [1], but checking to see how comprehensible or surprising feature XYZ is going to be to the average programmer before it’s put into the language just seems like common sense. I suspect this will push us away from pure functional languages: monads are just plain hard, and while purely functional data structures are possible, they’re hardly intuitive.

Third, a new language should explicitly be designed to make the expression of common design patterns as straightforward as possible. Languages (of all kinds, not just programming languages) evolve by formalizing the common usages of the day: idiomatic uses of goto statements become for loops, structs with function pointers become objects, and so on. There’s a tremendous literature on design patterns at several scales; why not treat them as something akin to use cases?

Of course it’s never too late — if someone has the time and energy, they could apply these three criteria to Go (or any other language) right now. Hm… sounds like an interesting thesis topic…

[1] Which gets an unfairly bad rap — both the American Constitution and the King James version of the Bible were produced by committees.

Research

Speaking at CUSEC 2010

November 16th, 2009

As they just announced on their blog, I’ll be speaking at CUSEC 2010 in Montreal in January on evidence-based software engineering (which is a lot more fun than you’d guess from the title).  Hope to see some of you there.

Uncategorized

Bend It ‘Til It Breaks

November 16th, 2009

Want to know how strong a piece of steel is? Bend it ’til it breaks. Want to know how usable a programming system is? Make a few deliberate mistakes and see how comprehensible the error messages are. It’s not the only approach, but it’s the one Zef Hemel took with Ruby on Rails. In his original post, he took a critical look at how helpful Rails is when a developer mistypes something. A lot of people misunderstood what he was doing, which prompted a follow-up post; since then, he has tried the same approach with JBoss Seam and Scala Lift. I think this is pretty cool — so cool, in fact, that I’m wondering if there’s a thesis topic in there somewhere…

Uncategorized

Two More Gov 2.0 Links

November 13th, 2009
Comments Off
  1. The Toronto Star‘s Map of the Week shows where in Toronto the Canadian casualties of WWI lived. Humbling.
  2. The Sunlight Foundation‘s goal is greater transparency in government. Laudable, but I think the inverse of Gilmore’s Rule will hold as it always has: criminality will interpret openness as a threat and route around it. Still, a Red Queen’s Race is better than outright defeat.

Government 2.0

The Definition of “Exotic”

November 13th, 2009
Comments Off

Someone other than Oscar Wilde once defined “exotic” as “anywhere that people poorer than us can’t afford to go”. The same cynicism fits techno trends as well. Take, for example, this recent post by Marc Drapeau about last Friday’s Audience Conference in New York. No laptops, no cellphones, no twittering—in short, none of the things that cool people were calling cool five years ago. Why? Because if everyone’s doing it, it can’t be cool. Next up: a Wired article about the rebirth of attention, followed by a new book from Chris Anderson…

Uncategorized

WWTD?

November 13th, 2009
Comments Off

The saddest part of Terry Pratchett’s Alzheimer’s is, well, the Alzheimer’s. The second saddest is that no one else writing in English today would be able to use tree-eating crabs in a story quite as deftly as he could. Food falls down from the sky without anyone (or any crab) knowing where it comes from? Just think where he could go from there…

Uncategorized