ICFP Programming Contest

The ICFP Programming Contest is a little competition just before the International Conference on Functional Programming. Anyone can subscribe and attend. This year 364 teams took the challenge with their programming language of choice.

The contest is not tied to functional programming languages, you can choose whatever language you want. That’s the reason for this article. Which language has proven itself in this contest?

I’ll include the first, second and the Judge’s price here.

Year First Second Judge
1998 Cilk OCaml J http://www.ai.mit.edu/extra/icfp-contest/
1999 OCaml Haskell Haskell http://www.cs.virginia.edu/~jks6b/icfp/
2000 OCaml OCaml GML http://www.cs.cornell.edu/icfp/
2001 Haskell Dylan Erlang http://cristal.inria.fr/ICFP2001/prog-contest/
2002 OCaml C Python http://icfpcontest.cse.ogi.edu/
2003 C++ C++ Dylan http://www.dtek.chalmers.se/groups/icfpcontest/
2004 Haskell Haskell/C++ OCaml http://www.cis.upenn.edu/~plclub/contest/
2005 Haskell Dylan Dylan http://icfpc.plt-scheme.org/index.html

The results of the 2006 ICFP contest are not included since they weren’t published at the time of this writing.

To sum it up:

Language First Second Judge Sum
Haskell 3 2 1 6
OCaml 3 2 1 6
Dylan 0 2 2 4
C++++ 1 2 0 3
Cilk 1 0 0 1
C 0 1 0 1
J 0 0 1 1
GML 0 0 1 1
Erlang 0 0 1 1
Python 0 0 1 1

Interesting, isn’t it? There are few well known programming languages in this table. Haskell and OCaml both won six times! No Java, no Ruby, no Perl program made it to the top, what’s up with those languages (Again, the contest is not limited to functional programming languages…)?

What are the possible interpretations of such a result?

  1. Functional programming is pretty good (at least in Haskell and OCaml)
  2. The tasks are “functional-friendly” (at least we know that there are differences and you should choose your tools to suit your task)
  3. Only teams using obscure functional programming languages submit to ICFP (sorry, not true)
  4. ICFP isn’t able to run programs written in other languages
  5. Libraries don’t help you that much
  6. Only smart people learn obscure programming languages

Do you think your language is better than the other ones? Prove it, and sign up for the ICFP 2007 :-).

After more than 45 years in the field, I am still convinced that in computing, elegance is not a dispensable luxury but a quality that decides between success and failure;
Edsger Dijkstra