[MLton-user] 2006 ICFP Programming Contest

Ray Racine rracine@adelphia.net
Mon, 03 Jul 2006 17:50:41 -0400


On Mon, 2006-07-03 at 15:16 -0400, Tom 7 wrote:
> Hey mlton users,
> 
> This year CMU is organizing the annual ICFP Programming Contest, to be 
> held on July 21-24. We think it's going to be really fun, and it's 
> definitely going to be a lot different from previous contests. The 
> competition is held on the internet, there is no registration fee, and you 
> can use any languages and resources at your disposal, so we hope you'll 
> enter. In particular we hope some teams will enter with SML--though O'Caml 
> has won several times, a team using SML has never won (nor placed, as far 
> as we recall). We've used it for our entries in the past, but of course 
> we're ineligible this year! ;)

In a left handed way MLton was used in the ICFP 2004 contest.  I'd tried
using PLT scheme in previous years and opted for SML that year.  I wrote
the "Ant Simulator" the first evening using MLton.  And switched to
Scheme the next day for the Ant Brain Compiler.

The interesting observation was that there were a couple of fairly solid
Scheme teams that year.  One (or both?) teams were 2 days into the
contest and were still debugging their simulator.

I'd had mine going the first evening in a few hours and it "just
worked".  So a couple of teams borrowed the MLton simulator while
debugging their respective implementations.

Later, even after they'd finally got it working correctly, I sorta
recall that they continued using the MLton version because it was
ridiculously fast.  Running full Ant War simulations in 10's of secs
when their simulators required 10s of minutes.

The reason why this all stuck around in my mind is because on that day I
recall mulling over this experience in the context of the whole strong
typing / dynamic typing debate.  

A small and anecdotal incident to be sure, but certainly the results
that day refuted the "anal retentive strong typing languages (read SML
and its ilk) drag productivity to a halt because you end up fighting the
type system, while the fast, agile prototyping, dynamically typed
languages (read Scheme and it's ilk) allow for manifold increases in
productivity" theory.

A small team of coders, all much better then I, using Scheme, struggled
to achieve what I, joe smuck coder, had knocked off in far less time, a
few hundred lines of - to a specification - code.