## OOPSLA / Wadler / Generics

From: "andrew cooke" <andrew@...>

Date: Sat, 28 Oct 2006 17:16:17 -0300 (CLST)

I enjoyed this talk, but I don't think it went down so well for many in
the audience; I also think he ran out of time and the final point (which
is very interesting) got kind-of lost.

Anyway, it was pretty damn cool to get a basic lesson in logic from the
big cheese.  Even if it's also frustrating that the kind of thing that
took me a fair amount of effort to teach myself is so obvious after just a
few minutes of a lecture (how much I must still not know....)

The thread of the talk started with Haskell type classes, and then
compared those to Java Generics.  One difference (apart from the many
extensions in Haskell) was that Java's implementation through type erasure
is pretty useful - allows separate compilation, backwards and future
compatibility, etc.

[This is where his time ran out].  The last few slides introduced Links,
which is a "full stack" language that includes DB, business and
presentation. In other words, one language compiles, depending on the
area, into SQL, server code (Haskell?), or Javascript for the client.
Which is pretty neat. And which is (I think - this wasn't clear) only
possible because it adapts Haskell's type classes so that they can be
implemented through erasure (basically by dispatching on the first type,
afacit).  In other words, while the "upper" language is statically typed,
it can compile "down" to a dynamically typed (tagged) core.  And so works
on Javascript.

Which is pretty cool.

Andrew

From: "andrew cooke" <andrew@...>

Date: Mon, 6 Nov 2006 19:33:58 -0300 (CLST)

The previous post was written in a hurry (everything from OOPSLA was).
Some clarification might help:

- The slides are at

- He has a book out on Java Generics.

- Erlang is also in the mix (the paper at
messages to mailboxes).

- As far as I know, Java Generics are equivalent to normal polymorphism in
Andrew