Slashdot Mirror


ICFP 2005 Programming Contest Results

Fahrenheit 450 writes "The results of the The Eighth Annual ICFP Programming Contest are in, and it looks like this was the year for Haskell and Dylan, with Haskell programs taking first & third prizes, and Dylan claiming second prize and the coveted Judges' prize. This year's contest was a simulated game of cops and robbers, with a twist to the rules thrown in after the participants had submitted their initial entries. Step through the transcripts of the contests or just download the PDF version of the presentation slides and tell us all how you could have wiped the floor with the winners using your carefully crafted COBOL or awk submission."

13 of 111 comments (clear)

  1. My Java Bubble by fragmentate · · Score: 4, Insightful

    It's amazing how many programming languages there are. I would never have thought that Haskell and Dylan would have even placed.

    I've been in a Java bubble for far too long. Time to burst that bubble and look into things like Ruby, Python, etc. I know they're not new languages, but it seems like once you get buried in Java, Perl, C, or PHP it's hard to escape.

    On the other hand, my mind is like a FIFO -- in order to learn another language, I have to forget one.

    1. Re:My Java Bubble by sammy+baby · · Score: 4, Funny
      On the other hand, my mind is like a FIFO -- in order to learn another language, I have to forget one.

      If the one you forget is English, you'll know you've hit burn out.
    2. Re:My Java Bubble by TheRaven64 · · Score: 4, Interesting
      I'm not a huge Haskell advocate - it was my first introduction to functional programming, and it made me hate FP for a few years. More recently I've started using Erlang, and it's a joy to use - a functional language designed by pragmatists rather than theoreticians. It also has the best syntax I have yet seen for handling distributed programming - process creation (local and remote) and message passing are built into the language.

      As someone who liked prolog, one of my favourite parts is the pattern matching. This can be done on any data type, including binaries (bit fields), so you can have a function for parsing a datagram, and a different definition for each packet-header - and all you need to do is define the part that is constant in the function header then the remainder of the processing in the body, and write a different body for each packet type.

      --
      I am TheRaven on Soylent News
    3. Re:My Java Bubble by brucehoult · · Score: 4, Interesting

      And how many total programmers are using Dylan in this contest? :)

      Not many. Just us. Unfortunately most people have not yet heard of the Dylan programming language.

      Otherwise, you'll have severe selection bias - especially in contests with such a small number of Dylan users, but even if there were more. Really, contests like this are pretty useless for language evaluation - only individual-evaluation

      I guess I'll have to take that as a compliment :-)

      I agree that contests such as this can't prove that some language is superior to others since, yes, it is possible (though very unlikely!!) that I and my friends are all super-geniuses who could do equally well using Brainfuck or INTERCAL.

      What it does prove though is that there is nothing seriously wrong with Dylan that would prevent you from using it to write a complex program very quickly, in a situation requiring high performance and absolute correctness. I don't know if you read the rules, but if a program ever crashed, or took more than 5 seconds to respond to the server, or responded with an illegal message then it was instantly out of the entire contest. That's what happened to the vast majority of C and C++ and Java programs, and that is what always happens to them.

      and even that, only after a significant number of contests have been completed by the participants.

      How many is significant? A Dylan entry has won prizes in each of 2001, 2003 and now 2005, despite there being only one Dylan entry each year up against hundreds of entries in other languages.

      You can choose to think that my friends and I are geniuses, or you can think that maybem, just maybe, there's something worth investigating in this Dylan thing.

  2. API piggybacking... by irritating+environme · · Score: 4, Insightful

    That's why many newer languages piggyback on the Java api set (Jython and their ilk), since the real bother isn't learning the core language features, it's learning the gigantic libraries that accompany them:
    - UNIX-derived C libraries
    - C++ template libraries
    - unending Perl libraries
    Java offers a quick-and-dirty crossplatform API for these languages that handles most of what they need, if they can wrangle their language semantics and don't mind the larger memory footprint and bytecode.

    Also, if they can compile to bytecode, that helps automagically close some of the interpreted vs. compiled performance gap due to the hotspot compilers and java interpreters.

    Go go java hate mail!

    --


    Hey, I'm just your average shit and piss factory.
  3. Bobby by DysenteryInTheRanks · · Score: 5, Funny

    I have only one question for developers programming in Dylan: How does it feeeeeeeeel?

  4. Re:ICFP by The+Wookie · · Score: 4, Informative

    There was no requirement to program in a functional programming language. One guy wrote his cop & robber as shell scripts, although it failed in both rounds.

  5. Re:ICFP by putko · · Score: 3, Informative

    You can use imperative languages too. That's the neat thing about the tournament -- given a choice, most of the folks choose languages that offer more expressivity than the typical imperative language.

    There have been "C" programs that won previously, I believe.

    --
    http://www.thebricktestament.com/the_law/when_to_s tone_your_children/dt21_18a.html
  6. Re:Programming by Radres · · Score: 4, Funny

    Don't bother learning; just send your desired programming task overseas.

  7. Re:Motivation by gb506 · · Score: 3, Funny
    I find it's more about motivation than picking a language or how hard it is.

    By the looks of our IT dept, exercise and laundry must require a lot more motivation than leaning a programming language... Nyuk, nyuk, nyuk.

  8. Can't help myself by theskipper · · Score: 3, Funny

    Gosh Wally, Haskell gives me the creeps.

  9. Watch a game in action by gringer · · Score: 3, Informative

    Here is a graphical simulation of a game that was played. The red guy is the robber, and the blue guys are the cops. There's a key available if you want a better idea of what's going on.

    --
    Ask me about repetitive DNA
  10. Re:No SCHEME? by The+Wookie · · Score: 4, Informative
    They don't have complete per-language statistics. I grabbed all the team descriptions and massaged the data a bit to get a complete list. I merged Moscow ML, SML and SML/NJ. There was one entry that listed Scheme as the language. Ironically, the Dylan Hackers appear to be the only team to have used Dylan. I am one of the 21 ocaml people (O Caml, My Caml). My robber screwed up while bribing a cop in the twisted round and didn't get to the playoffs. These statistics are just for the main implementation language:
    34 c++
    21 ocaml
    20 python
    18 java
    16 haskell
    10 perl
    10 c
    6 lisp
    5 sml
    4 c#
    3 ruby
    2 freepascal
    1 visual basic .net
    1 swi-prolog
    1 shellskript
    1 setl
    1 scheme
    1 refal+
    1 nemerle
    1 modula-3
    1 mercury
    1 javascript
    1 erlang
    1 eiffel
    1 dylan