At last — the long awaited ICFP post! In summary: ICFP was
awesome. Freiburg is lovely, the German beer is fantastic,
and everyone at the conference was very friendly. It was
great to put faces to people we’ve conversed with for
years, to meet old friends, and to make new ones.
We gave two talks, one at ICFP on our work building web
sites in Scheme (paper here), and one at CUFP (PLT Slideshow slides PDF slides). Both were, I think, well received: a few people
expressed some interest in having us come and talk to
their groups, and the CUFP organisers invited us to join
them at dinner.
There was a definite buzz about ICFP. It seems functional
languages are beginning to take off — CUFP doubled its
attendence over last year, and ICFP strained the capacity
of the hotel. There was something of a reality distortion
field in place though. After a few days at the conference
you could begin to believe the entire software market
consisted of either program verification tools in Haskell
or telephony apps in Erlang. There was little
representation from web developers, who I think must make
up the largest group of commercial developers. I believe
this is because Haskell users really dominate ICFP, and
Haskell doesn’t have a particularly good web development
story as far as I know.
It was interesting to see how the other communities are
developing. The Haskell guys had a 3-day Hackathon right after ICFP, which is pretty impressive, and there
is a practical Haskell book in development, something which is needed for
Scheme. Erlang seemed to have slightly better industry
representation and also has several recent
practically-oriented publications. I heard that many
people had arrived just for the Erlang workshop, which was
held the day after CUFP.
Of course the conference revolved around the paper
presentations. There were too many to review them all, so
I’ll just note the ones that were particularly relevant to
our work at Untyped.
Matthew Flatt’s talk on Adding Delimited and Composable Control to a Production
Programming Environment was a great presentation on a new feature in PLT Scheme,
delimited continuations, that will be very useful in the
web server. Matthew hacked Slideshow (something you can do when you’re the core developer) to
support animations by quickly fading between slides. His
1028 slides made for some slick animations that quickly
and clearly got across the concept of delimited
continuations. This was perhaps the best presentation I
saw at the conference and it was on something we’ll
definitely be using.
The iData toolkit is a Clean library
that uses meta-programming to generate code for viewing
and editing arbitrary data online (like Ruby on Rail’s
scaffolding, but better). At ICFP this year the followup,iTasks: Executable Specifications of Interactive Work
Flow Systems for the Web, was presented. Essentially it is a combinator library
for specifying workflows, including higher-order
workflows. At is happens we may soon be involved in a
project that deals with workflows, in which case we’ll
review this work.
I really liked Advanced Macrology and the Implementation of Typed
Scheme by Ryan Culpepper, Sam Tobin-Hochstadt, and Matthew
Flatt. Typed Scheme is pretty cool, and we’ll probably use it when it has
matured a bit more, but my favourite bit of this paper is
the first half which is essentially a tutorial on
intermediate to advanced macrology. There is precious
little material available on this corner of Scheme, so it
is very welcome addition.
Also of particular interest to us were Applications of Fold to XML Transformation, and Software Transactions Meet First-Class Continuations. We’ve already had occasion to use ideas from the
former, while the later gave us some food for thought with
regards toSnooze We had an interesting conversation with Adam Wingo,
author of the paper on folds, about the advantages of
distributed version control. Something we need to look
into. Adam also has a great job that allows him to spend
two days a week hanging out in Barcelona’s cafes. Some
people get all the luck.
One point from ICFP that is particularly relevant for this
blog: Dave Herman told me he’d like to see more technical
posts. I’ve tried to make the content a bit more technical
of late, but if there is anything in particular you’d like
me to write about drop me a line.