Slashdot Mirror


3rd Annual ICFP Programming Contest Announced

jsarnat writes "A recent Ask Slashdot revealed revealed that there are indeed many programming language bigots (myself included) who read Slashdot. What better way to prove that your favorite language is the best one there is than to win the Third Annual ICFP Programming Contest? The contest doesn't start until August 26th, but they encourage you to register soon. Prizes include: `cash awards, famous texts on functional languages donated and autographed by the authors, and, of course, unlimited bragging rights.'"

12 of 137 comments (clear)

  1. Language biotry... by Sayjack · · Score: 3
    When it comes time to pick a language, I first assess the task, then pick the language that's right for the problem space.

    Too often, I see people "sticking to what they know" and applying the wrong technology. For instance, for 6 weeks a fellow at work was feverishly writing tens of thousands of C code. He was having a hard time and came by to ask me a few C questions. Turns out, he was writing a cgi-script in C!

    The program limped along when one day I reimplented it in a few hundred lines of perl.

    I caught another fellow writing C programs to invoke unix system commands. Sounds like a shell script to me.

    Another fellow, when I was working at a scientific firm, loved lisp so much that he wrote an inline interpreter in lisp and henceforth wrote his modules in lisp.

    My take on the languages is this:

    1. C is a good low level language. You can do anything in it and it makes everything equally easy and equally hard.
    2. C++ makes hard things easy and easy things hard. It can sing in the hands of a skilled programmer, but large programming organizations are subject to the gausian curve and programmers of lesser mastery of the language can do alot of damage to a code tree.
    3. Perl is the swiss army chainsaw of scripting languages. I've always said that perl is the language where you can do in 1 line, what you should have done in 20. It's both a blessing and a curse to the language.
    4. Lisp...lisp is a wierd beast. It takes me 2 days to transition to this language just to get my brain thinking recursively. I'm an iterative sort of guy. A handful of problems are solved quite elegantly and it's a great instructive tool, however, I'm convinced that lisp was invented by someone too lazy to write a decent parser.
    5. Java is a great language for large scale projects that don't need the performance of something like C. I say that because it's possible for the lead programmer to architect a framework which tailors the development of the other group members through interface definition and judicious inheritance. However, it's thread support can get junior programmers in trouble.

      Fortran is the tank - the number cruncher. Write it in fortran, and it'll port forever. I've seen 30 year old code surviving the test of time in it's original form, no worse for the wear. Fortran makes it hard to get in trouble, and it's problem space nowadays is mostly in heavy math shops like geophysic exploration.

    I guess my point is that each language has it's strong and weak points. Picking your language should be a function of the problem space and computing environment.

    --

    -- Good judgement comes with experience. -- Experience comes with bad judgement.

  2. Sure thing by Captain+Pillbug · · Score: 3

    1999 was writing an optimizer for their fictitious NPC language, and 1998 was to implement a program that plays pousse.

  3. Re:Lisp anyone? by Shoeboy · · Score: 3

    Whath are thu thalking abouth.
    Lithp ith the betht languash around.
    --Shoeboy

  4. cached versions: by Captain+Pillbug · · Score: 3

    So the server's been slashdotted. No fear. 1999's is cached here, and 1998's is here.

  5. Re:Biased! by JeromeV · · Score: 3
    I think you missed the fact that the phrase ... is the programming tool of choice for discriminating hackers is part of the first price, while the phrase is a fine programming tool for many applications is part of the second price (and "a bunch of extremely cool hackers" is for the judge's Prize). This explain why the first one is applied one year to Cilk and the next year to Ocaml.
    We note that this OCaml entry beat out 23 C and C entries, many of these being highly tuned programs produced by extremely competent programmers skilled in game-playing algorithms. This is a strong statement as to the performance of compiled OCaml software.
    Is it really? The games were not timed. Furthermore, we know from the nature of the contest that performance is not an issue; only winning counts. Is this just a sloppy use of language, or an unsubstantiated statement that shows again the judges' bias?
    The games were timed (30s maximum by move). And, the best programs used a brute force algorithm (alpha-beta search), so speed was essential.
  6. Re:Biased! by milesegan · · Score: 4

    Your accusations of bias are completely unfounded. The paper discussing the results of the '99 contest clearly states the objective criteria used to determine the winners. Entries were judged first on code correctness - each entry had to correctly process all of the test samples. The prize then went to the entry that produced the most highly optimized output. In other words, the prize went to the the entry that objectively produced the most correct and efficient code.

    The winners of the '98 contest were simply the best players of the game. What could be more objective? As far as the Judges' Prize is concerned, the contest announcement very clearly states:

    Finally, the Judges' Prize is to be awarded, not on the basis of the competition, but solely at the whim and discretion of the judges. Novel algorithms, interesting languages, beautiful code, arresting user interfaces, use of parallelism -- these things may well count for something in the judges' eyes.

    This is clearly a subjective decision, but the contest organizers make it very plain that this is the case.

    You could perhaps argue that the choice of problems that involve complex translation or problem-solving show a bias towards functional languages, but the fact of the matter is that you'd have a hard time coming up with a good high-level programming problem that wasn't better attacked with a functional language. The winners give much more lucid accounts of the advantage of functional languages for complex problem-solving than I could hope to. They're worth reading.

    Another interesting recent study explored the productivity advantages of lisp over C/C++ or java. Their conclusions are also very interesting.

  7. *Functional* Programming by Tom7 · · Score: 3

    Practically nobody here has mentioned that this contest is supposed to be for functional programming languages. Good examples of this are ML, O'Caml, and Haskell.

    They'll let you enter in whatever language you want, but you'd probably get beaten up at the ICFP (International Conference on Functional Programming) if you displayed your entry in something like C or Perl. ;)

    BTW, some EXTREMELY talented hackers (the kind that make me fall to my knees and cry when I hear their names) have entered and won this in the past, so good luck if you plan on entering!

  8. Lisp anyone? by Daveamadid · · Score: 3
    To quote one of the "Real Programmers" list...
    • Real Programmers never use Lisp. Only sissy computer scientists use more parenthesis than actual code

    --

    --Dave
  9. Biased! by Q*bert · · Score: 4
    They say you can use any language you like, functional or not, but look carefully at this quotation from the contest page:
    Although the precise task chosen will not be revealed until the contest begins, algorithmic cleverness matters. Performance may matter. Programming languages that help programmers to build complex systems quickly may allow contestants to attempt particularly sophisticated implementations in the 72 hours allotted for programming.
    In other words, the criteria for winning are completely subjective. The judges can make whatever arbitrary decision they choose and back it up with subjective talk about "sophistication" and "cleverness", without having to take performance into account at all.

    So what kind of programs do you think are going to win a contest called the International Conference on Functional Programming Contest? Hmmmn, maybe programs in functional languages? Let's look at past years' results: From 1999:

    The Judges are sure that the choice of language played a role in this team's ability to produce a top entry in a mere 24 hours, and they are pleased to pronounce that Haskell is a fine programming tool for many applications.
    (italics theirs), and again:
    There is no doubt in the Judges' minds that

    Objective CAML is the programming tool of choice for discriminating hackers.

    (italics and formatting theirs). Lest you think the contest used to be biased, look at the results from 1998. These ones have a refreshing touch of objectivity, since the challenge was to produce a chess program, and entries were judged by playing each other. Still, look at these glowing elegies of functional programming:
    We have no hesitation in recommending Cilk as "the programming language of choice for discriminating hackers,"
    (So their tastes are fickle as well as biased.) Though the second-place prize had several strong contenders in non-functional languages like C, all the praise went to another functional program:
    The competition for second prize was much fiercer, and, in fact, the second round of games among the six finalists produced a three-way tie for second place, between Brad Kuszmaul's Alpha Beta Soupa ST entry (written in C), Lennart Augusston's la entry (written in C), and the ENS Camlist team's OCaml entry.

    The contest judges resolved the tie by playing a final round of games between the three teams vying for second place -- and the clear winner was the ENS Camlist team, who handily won all four of their tie-breaking games (defeating the other two entries both as X and as O).

    So C held its own, thought OCaml came out in the end. Still, as you would expect by now, all of the praise is reserved for OCaml:
    We note that this OCaml entry beat out 23 C and C entries, many of these being highly tuned programs produced by extremely competent programmers skilled in game-playing algorithms. This is a strong statement as to the performance of compiled OCaml software.
    Is it really? The games were not timed. Furthermore, we know from the nature of the contest that performance is not an issue; only winning counts. Is this just a sloppy use of language, or an unsubstantiated statement that shows again the judges' bias?

    Of course, they take some extra time to pile more praise on functional languages in the third-place winner, and on the remaining entry:

    It would only be stating the obvious to say that OCaml is "a fine language for many programming tasks" -- including some not traditionally held to be the domain of functional programming.
    and, of the functional programming language J, used by a single entry that won an honorable mention:
    Without a doubt, "a bunch of extremely cool hackers" -- and an extremely cool programming language.

    So there you have it. I think these comments show a strong enough bias toward functional programming, and against C in particular, that I would not trust the judges. I am not saying that FP is necessary worse than other programming paradigms or languages; in fact, I happen to think that functional programming is a cool idea. Tools like OCaml may in fact be superior to C (and my personal favorite, Perl). However, I don't see this contest as anything approaching a fair test of whether that is true. I definitely wouldn't waste my efforts entering this contest with anything but an FP language-- which hesitance, of course, perpetuates the bias of the contest.

    Judge for yourself, but I say this is a self- congratulation-fest for functional programmers and a dubious test of the true value of FP.

    Vovida, OS VoIP
    Beer recipe: free! #Source
    Cold pints: $2 #Product

  10. 72 hours by bat'ka+makhno · · Score: 4
    Teams will have 72 hours to implement a program to perform this task and submit this program to the contest judges.

    Three days of amphetamine fueled creative rage, just what I need after meeting that deadline Friday afternoon. Hope the cash awards offset the cost. ;)


    --
    Violence is necessary, it is as American as cherry pie.
    H. Rap Brown
  11. Last Place prize? by TheNecromancer · · Score: 5
    Isn't their going to be a last place prize? The prize could be a speaker at the conference stating at least once that these programmers are "a bunch of complete losers, with no social life to speak of".

    --
    Attention all planets of the Solar Federation! We have assumed control! - Neil Peart
  12. Hey, wait! by Wakko+Warner · · Score: 3
    Why isn't C# installed on the official contest machine?

    Oh, wait. Heh. It's not installed on any machines.

    - A.P.
    --


    "One World, one Web, one Program" - Microsoft promotional ad

    --
    "Remember when the U.S. had a drug problem, and then we declared a War On Drugs, and now you can't buy drugs anymore?"