Length: 75 minutes
Many of the shortcomings of Java's type system were addressed by the
addition of generics to Java 5.0. Java's generic types are a direct
outgrowth of research into strong type systems in languages like SML
and Haskell. But the powerful, expressive type systems of research
languages like Haskell are capable of feats that exceed the dreams of
programmers familiar only with mainstream languages.
In this talk I give a brief retrospective on the history of type
systems and an introduction to the type system of the Haskell
language, including a remarkable example where the Haskell type
checker diagnoses an infinite loop bug at compile time.
was invited to speak at the 23rd OOPSLA conference. OOPSLA is the
annual ACM conference on object-oriented programming systems,
languages, and applications. This talk is the result.
I'd like to take this opportunity to thank Gail Harris, the conference
chair, for inviting me. Also thanks to Philip Wadler for advising me
on what OOPSLA people might like to hear about.
If you don't want to read the notes below, you can
skip straight to the slides.
When I gave the talk at OOPSLA, I pretended to have forgotten my
slides. "No problem," I said. "All my talks these days are generated
automatically by the computer anyway. I'll just rebuild it from
scratch." I then displayed this
form, which initially looked like this:
I then filled out the form appropriately for OOPSLA:
Then press the button, and poof! Instant slides.
The shameful confession
Slide 3 just says "shameful confession". The shameful confession is
as follows: Several years back I was at a technical conference and I
was attending a keynote speaker session which was unusually bad. The
talk was a long sequence of platitudes and the speaker was a smug
windbag. I stood up in disgust and walked out. "These keynote
speeches are always a waste of time," I said. "I swear I will never
attend one again."
And until 2008 OOPSLA, I kept that promise. But I had to attend that
session because I was the keynote speaker! So the shameful
confession is that I am an oath-breaker.
Funny story about the Java compiler
On slide 24 I mention Philip Wadler and Martin Odersky. At this point
in the talk I repeated an anecdote that Wadler told me. After they
had done the work on generics, Odersky was hired by Sun to write the
new Java compiler. He thought the generics were a good idea, so he
put them into the compiler. The Sun folks always ran the compiler
with the generics turned off. But they couldn't rip out the generics
completely, because they needed them in the compiler in order to get
it to compile its own source code, which was written with generics.
So they had to leave the feature in, and eventually they started using
it, and eventually they decided they liked it.
Browse slides online
This is actually a revised, updated version of Strong Typing Doesn't Have to Suck, for an OOPSLA
audience instead of a Perl Mongers audience.
Universe of Discourse main page |
Perl Paraphernalia |
Other Classes and Talks