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.'"

43 of 137 comments (clear)

  1. INTERCAL must be a functional programming language by Paul+Maud'Dib · · Score: 2

    I tried to put a team together for this thing. They thought we'd use some weird blend of Python, Java and Lisp. Somehow that didn't quite mesh with my plan to grind INTERCAL, Befunge and Assembly into a coarse grind which only the few, the proud, the Real Programmers could stomach. Ah yes, the aroma of code rot...

    --
    Checkout taccom my worl war II simulator
  2. 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.

  3. 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.

  4. Ooh! Ooh! by Ravagin · · Score: 2

    Quick, all you Linux geeks out there, help a DOS fantic out: Is there a QBasic interpreter for Linux?
    :)
    -J

    --

    Karma: T-rexcellent.

  5. Totally unfair! by randombit · · Score: 2

    No bash? Sheesh, I guess the judges knew I would really clean up if they let me in there. ;) [It's a joke, laugh]

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

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

  7. Fetch XBasic off of SourceForge... by Svartalf · · Score: 2

    It's the closest thing to QB there is and I think you'll find it a wee-bit more useful than QBasic (32-bit binaries. Support for Windows and Linux under X. I could go on, but you get the picture...)

    --
    I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
  8. Re:Shame it doesn't include Win32 ... by technos · · Score: 2

    There is a Visual Basic VM implementation for Linux. http://www.softworksltd.com/vbvm.html has a little bit more information on it..

    Please, feel free to enter your Visual Basic 5.0 or 6.0 programs! I like to laugh!!

    --
    .sig: Now legally binding!
  9. Surprising by mirko · · Score: 2

    Am I the first guy to speak about Forth here ?
    It is IMHO one of the most elegant languages ever, even though you first have to declare many words in order to code efficiently.
    (Depending on the interpreter used) a Forth program can be faster than the same optimized program coded in Assembly !
    I indeed saw some that were reoptimizing the generated low-level code according to specific contexts.
    I just wish some competitor could just validate my admiration for this language upon the others.
    --

    --
    Trolling using another account since 2005.
  10. Re:idiot by PD · · Score: 2

    Oh for Brainfuck's sake.

    Squicking is a word that arose from a very specific story posted on alt.sex somewhere around 10 years ago. My comments were NOT trolls, and they didn't merit a -1 score.

    My comments were meant as humor, to add to the thread with such a goofy programming language. Why not make a goofy virtual machine to go along with it?

    The very fact that NOBODY seemed to know what squicking was is PROOF that the link to the admittedly sick squicking page was REQUIRED. Still, nobody got it.

    10 years ago, squicking was an actual topic on alt.sex. Except for me, Elf Sternberg, and a few others, everyone else apparently has forgotten that.

  11. Re:What if... by ackthpt · · Score: 2

    But what if the winner uses hard-coded machine code -- directly? Would this have any effect on the assosicated computer language conference?

    Only if you can write it object oriented with a GUI interface. Better get going on those toggle switches, sport, that PDP-3 ain't gonna code itself!

    Vote Naked 2000

    --

    A feeling of having made the same mistake before: Deja Foobar
  12. Re:Lisp anyone? by NaughtyEddie · · Score: 2

    You become an advocate of a language by recognizing its power? Well, to compare with that, I use LISP for 40 hours a week professionally. And in doing *that* I've come to the conclusion that it sucks. At least, compared to a good OO language like C++ or Smalltalk. On the other hand, it *is* better than Perl - it just made me laugh that you compare two shitty languages and say one's better than the other. They're both shitty! ;)

    --

    --
    It's a .88 magnum -- it goes through schools.
    -- Danny Vermin
  13. Re:Functional Languages Only by NaughtyEddie · · Score: 2

    It's easy to be mistaken, when you don't read the rules. ANY language is allowed. It says so EXPLICITLY.

    --

    --
    It's a .88 magnum -- it goes through schools.
    -- Danny Vermin
  14. Yes by Captain+Pillbug · · Score: 2

    There's QBCC and there's a linux port of Chipmunk Basic. Both are QBasic compatible.

  15. 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.

  16. 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.
  17. Re:*Functional* Programming by FigWig · · Score: 2

    Hey man, there's a functional component in C++'s STL. I cringed to see map et al. in this ungodly language. Of course the syntax is impossible and makes you long for the parentheses of LISP or Scheme.

    --
    Scuttlemonkey is a troll
  18. 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.

  19. Re:hey, man by PD · · Score: 2

    I probably should have attached my note to the parent of your article. Yes, you did get it, but the clueless cowards who used the "overrated" tag so their bad moderation wouldn't stand in meta did not.

  20. Open source C obfuscators by Signail11 · · Score: 2

    Search for the cutils package (I know it's in Debian), specifically obfusc and unloop. GPL and all that, makes code practically unreadable.

    1. Re:Open source C obfuscators by istartedi · · Score: 2

      A GPL'd source obfuscator? That's pretty ironic.

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
  21. *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!

  22. Why not Perl? by tilly · · Score: 2

    Perl supports full closures and anonymous functions. It may not be a "real" functional language, but it isn't officially anything other than darned handy to have around...

    You can certainly program Perl in a functional style.

    Cheers,
    Ben

    --
    My usual seat in the cluetrain is at A HREF="http://pub4.ezboard.com/biwethey.ht
  23. Cilk is threaded C for parallel/distributed apps by jabbo · · Score: 2

    So their tastes are imperative as well as fickle, in some years.

    Cilk is pretty cool, actually. When I saw that it won so easily, I downloaded and played with it. Didn't use it for anything really cool, though.

    --
    Remember that what's inside of you doesn't matter because nobody can see it.
  24. 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
    1. Re:Lisp anyone? by NaughtyEddie · · Score: 2
      Writing a LISP compiler in LISP is a joy! The benefits are less clear for, say, a C++ compiler. LISP definitely makes the syntax parsing easier. But writing an industry-strength compiler is a different matter. You really want to be using objects, and CLOS is very slow compared with C++. The listy aspects are only a small part of a full compiler, but a large part of a mini-compiler, IYSWIM. Part of our project is indeed a compiler, and the main problem with that is its speed - not good. But if you were doing a CS course and one of the assignments was to write a mini-compiler, then LISP would be a good choice of implementation language.

      We use LISP macros everywhere, sure. That's one of my complaints about the language. Everyone on a team can write their own mini embedded language, using macros, which means everyone else's code is virtually incomprehensible to you - and vice versa. But macros is definitely a powerful feature, and I was attracted to LISP initially because of that power.

      Anyway, my complaints about LISP are not entirely serious. Horses for courses, etc. etc. It's just when you use a language everyday its flaws become oh-so-apparent. And you like to moan! But I'm not saying that LISP is without its uses: emacs being a case in point.

      But then, personally, I hate emacs too <g>

      --

      --
      It's a .88 magnum -- it goes through schools.
      -- Danny Vermin
    2. Re:Lisp anyone? by NaughtyEddie · · Score: 2

      Shows how shitty LISP is that you consider its nearest rival to be Perl.

      --

      --
      It's a .88 magnum -- it goes through schools.
      -- Danny Vermin
    3. Re:Lisp anyone? by NaughtyEddie · · Score: 2
      Object dynamism is unnecessary. Mostly. Certainly, its prevalent use in CLOS and Smalltalk makes those languages slow. C++ is fast precisely because it doesn't have object dynamism, past virtual functions.

      This thing about "your CLOS implementation" is rubbish. There are only about five, and we have the best. It still sucks.

      Converting a large project to another language is not something to be done lightly. I certainly wouldn't spend months switching to another slow interpreted language.

      No, I hate Emacs too ;)

      I might not be spending 40 hours weeks writing C++ now, but I have in the past (thank God). Ambiguous nonsense is hardly a good description. The language is complex enough to have some abiguity for the naive - every ambiguity is actually not ambiguous, of course, or else programs wouldn't compile. That's nothing compared to the ambiguity of calling a CLOS method.

      Still, if you think interpreted OO languages are the future, don't let me put you off.

      --

      --
      It's a .88 magnum -- it goes through schools.
      -- Danny Vermin
  25. Screw that by Captain+Pillbug · · Score: 2

    I'm gonna submit mine in brainfuck. Just to get the contest blacklisted by censorware idiots.

  26. 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

    1. Re:Biased! by drivers · · Score: 2

      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.

      You silly person. Pronouncing the winning language a "fine programming tool for many applications." is the explicit reward for winning second place! Same with the other pronouncements (for other places)....

      (Not that they wouldn't be biased towards functional languages... they don't disallow other languages because they don't want to have to say which languages are or are not functional.)

    2. Re:Biased! by Q*bert · · Score: 2
      O.K., to my surprise, I have been proven by later posts to have been wrong in almost all of my criticisms.

      In a break with Slashdot tradition, I admit I was wrong and retract my post.

      Also, I pledge that I will hereforth wait no less than twelve (12) hours after smoking crack before posting to Slashdot.

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

  27. Re:Biased? Not surprised. by kiolbasa · · Score: 2

    The FP in ICFP stands for functional programming. It's a programming contest designed to flex functional programming languages, and promote their use. Deal with it. The reason they let any language enter is that everyone might not be so privvy to functional programming.

    Part of the first prize is that the judges will say "[insert winning programming language] is the programming language of choice for discriminating hackers." Something similar for second prize.

    So, yes they're biased towards functional programming languages. Deal.

    --

    Beer wants to be free
  28. The Secret of winning ICFP by Christopher+H · · Score: 2

    ...is to design and implement the language you're using. The 1999 winners were the authors of OCaml, GHC, and HBC.
    The 1998 winners built Cilk.

  29. Done.. I just registered ``Lisp does not suck'' by Convergence · · Score: 2

    Yes, I love and use LISP.. And have registered myself for the contest. if you want to join me, bounce me an email..

    (Though I do wish that they had CMUCL on their machine. It's still the most sophisticated and fastest lisp compiler out there... It's comparable in speed to C, with all the plusses of LISP.)

  30. That's scheme, not [common] lisp. by Convergence · · Score: 2

    That's a scheme program, it's not common lisp.

  31. 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
  32. Leave ppoores microsoft alone by Anonymous Coward · · Score: 2

    Those guys at microsoft makee greet softwares. So leave them alones since they should be mentioned anyways. MIcrosoft is great in that they can competers so easiee to use. I knows because Im an mcse!

    Its great certificationes programs like mcse that makes 5th grade dropouts like myself sucessfull.
    Oh I am very smarts and thet is why I left 5th grade earlier to persue my mcse certification. The mcse is whole lots more changeling then reel college wark! and vb is the vest!

    Vb is so powerful that I can crete something called a loop so that my computer here can make descisions by looking comparing variiables. Try doing this MR Dennis Ritchie and Linus Trovalds, I bet you cants loop. That is truee jhacking I bet whole os's llike windows could totally be written in vb!

    Thanks you bill gates for inventing loops and real objects languages like vb that are truely objet oriented unlike c++ which just supports moduleses.

  33. Re:Last Year. by DunkPonch · · Score: 2

    We didn't finnish

    Did you norwegian instead?

    --

    The real DunkPonch is user 215121. Everyone else is Bruce Perens.
  34. 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
  35. 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?"
  36. try Jammer by Captain+Pillbug · · Score: 2

    Take a look at Jammer. It does C/C++ in addition to html and javascript. I don't have any experience with running it on linux, though, so your mileage may vary.

  37. See Sharp! by Eponymous,+Showered · · Score: 2

    Anyone got a C# compiler for Linux yet? 'Cause I know it would beat the pants off of any other language available. I read this on a really colorful, shiny page in my trade journal just yesterday.