Philip Wadler

Philip Wadler has moved to Edinburgh to become Professor of Theoretical Computer Science. He’s a bit of a well-rounded clever bunny, he is. He’s been involved in the design of Haskell, support for generics in Java, a whole load of XML stuff and a static type tool for Erlang (which we were discussing recently at Ergnosis). This makes me wonder about PhD plans all over again.

One of his most admirable traits is that he writes extremely well. You know the quote: “Programs must be written for people to read, and only incidentally for machines to execute”? Well, (within his field) I think Philip Wadler writes for humans to read, and only incidentally for computer scientists. Heh!

I’ve always hated dry academic papers; In fact, I hate any situation where information is deliberately made to seem arcane or difficult by the use of jargon or needless layers of abstraction. Joel understands this. Richard Feynman understood this.

The closest I come to having a “life philosophy” is my continual belief that nothing is really as difficult as people make it out to be. That’s why I just go ahead and do things like melting metal (it ain’t as hard as you’d think either). There is some primitive force which makes people want to dress up their knowledge to make it seem more impressive, and they are reluctant to share that knowledge – as if somehow that will drain away some of their own power. There’s something very Emperor’s New Clothes (Gutenberg text) about it. Maybe “knowledge horder” is a suitably pejorative term.

My parents are both teachers. One consequence of this is that I have no inclination to become a teacher! But, I feel very strongly about education and about equality of opportunity. I guess when I see people “dressing up knowledge in jargon”, I perceive people who are building unnecessary barriers around learning. If it isn’t really hard, don’t make it seem hard.


Emacs Fun

I’ve been using emacs for nine or so years, and I’m still discovering cool stuff it can do. That’s probably a bad thing, since a good application will lead a user to naturally discover it’s feature set – anything from “tip of the day” to well structured UI design.

Anyhow, here’s a list of things which I’ve uncovered, mostly from the emacswiki.

  • Wiki modes for editing an existing wiki, or for maintaining your own one locally.
  • Flymake which does on-the-fly syntax checking as you type source code
  • Mouse gestures for emacs
  • Session management so that emacs remembers all the recent used files, commands etc.
  • eldoc-mode, which displays function args in the minibuffer when you’re editing a function call.