Slashdot Mirror


8th Annual ICFP Contest

mauricec writes "Think your favorite programming language is the best one out there? Put it to the test in this year's International Conference on Functional Programming's annual Programming Contest. The contest is coming up in a little under 4 weeks! This year's competition rewards programmers who can plan ahead. As before, we'll announce a problem and give you three days to solve it. Two weeks later, we'll announce a change to the problem specification and give you one day to adapt your program to the new spec. More info on the contest and prizes is on the contest's web page."

13 of 72 comments (clear)

  1. Is rewriting cheating? by nhnfreespirit · · Score: 3, Insightful

    If the original program can be written in 3 days, chances are a good programmer can write a new one that matches the changed specifications from scratch in one day. Is this cheating? :-P

  2. Re:Plan ahead? by Markus+Persson · · Score: 4, Informative
    Refactoring does not change behavior.

    Prediction: more people in this thread will make that mistake.

    --
    If the cat can't experience its own death, nothing will ever kill you. (No, really!)
  3. Not a bad exercise! by nhnfreespirit · · Score: 5, Interesting

    We actually did just this as an assignmet in a software engineering class a while back. We had to write a simple life simulator, and then a new assignmet was handed out that changed the original specifications.

    The last part of the assignment was to make our life-forms compatible with that of at least one other group. This last part proved quite interesting as, even though the critters were technically compatible with the other groups environment, many of the assumptions our two groups had made about the world (such as sight radius of each creature, how much food a creature needs, how fine grained the world was...) made the creatyres behave rather weird.

    Still, it is a good way to be forced to write code that is easy to refactor from start!

  4. Sounds like my clients by SlightOverdose · · Score: 5, Funny

    Hmm. Two weeks to complete a project, followed by a changed spec the day before going live.

    sounds like some of my clients.

    1. Re:Sounds like my clients by ^DA · · Score: 4, Insightful
      Change of spec sounds like real life to me. Customers rarely know excactly what they want before they have a working system up and running. THEN they start to see the possibilities.

      Frustrating? Yes! But we have to live with it. We just need to make them understand that the project will be delayed and it will cost more and why this is so if they change the specs late in the project.

      Our job as developers is to make the system easy to change bacause we all know this will happen.

  5. Wow by CastrTroy · · Score: 4, Interesting

    This is just like in real life. Design a program to spec, and then 1 day before launch, change the requirements. Is this the kind of activity we should really be promoting? Maybe we should give well laid out requirements, and whoever follows them the best, wins. Not only would following the requirements be important, but also not exceeding the requirements, and adding a bunch of stuff that wasn't asked for, would cause you to lose points.

    --

    Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    1. Re:Wow by NoseBag · · Score: 3, Interesting

      Is this the kind of activity we should really be promoting?

      You answered your own question in your first sentence: "This is just like real life."

      Humans (and spec writers, too!) make mistakes and sometimes overlook aspects of a desired requirement that are important. Recognising this and being ready to deal with it is part of the job for any professional in any industry.

      --
      Cloned foods give the statement "We had that last week!" a whole new meaning.
    2. Re:Wow by jorleif · · Score: 3, Insightful

      Is this the kind of activity we should really be promoting?

      Don't you just hate it when competitions are similar to real life, instead of promoting some "pure" academic ideal?

    3. Re:Wow by CastrTroy · · Score: 3, Interesting

      I do realise thats its kind of important to make a program that can easily be changed to meet changing requirements. Even if it follows spec, and does what the customer wants today, within 3 months, the customer will want it to do a bunch other things, or do some things differently.

      I was just kind of pointing out that this contest brings to light one of the most frustrating parts of designing software in the first place. This is one of the things that makes it so hard to get right. If you told a civil engineer to build a bridge, and then half way through building it, told him you wanted it to hold twice as many cars, and be a draw-bridge, instead of a suspension bridge, well, I think that he would basically have to start over from scratch, and the project would of course be over budget, and take longer then originally expected. With software, there is less of an impact, but people still have to realize the real impacts of trying to change things at the last minute. People who don't really know much about software will look at competitions like this, and think that they don't really have to worry about changing requirements, because programs can be changed easily, without any ill effects.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    4. Re:Wow by jjc2222 · · Score: 3, Informative
      You are getting "procedural" programming confused with "functional" programming. Functional languages generally refer to languages that concentrate on the evaluation of expressions with no side-effects rather than statements that modify data. Examples of functional languages are:

      Note that C and Pascal are decidedly not examples of programming languages designed for functional programming. Wikipedia's page is a decent starting point for learning about this.
      http://en.wikipedia.org/wiki/Functional_programmin g/
  6. FP by mistersooreams · · Score: 5, Insightful

    There are some comments already saying "if the program could be written in three days, couldn't they write a new one from scratch in one day?" The answer is that a very fast programmer probably could. But what would the point be? The object of this exercise is to show off just how generic a program written in a functional language can be. It really is possible to abstract everything, leading perhaps to the famous paradox "Everything can be solved by adding another layer of abstraction, except having too many layers of abstraction."

    Putting that aside, I think this is a great idea for a competition. I hadn't heard of it before this one, and have only recently got into functional programming myself. I'm a new-found convert to ML, and find it interesting to be forced to think about a problem in a completely new, and usually recursive, way. ML also has some imperative elements but I prefer to avoid them as far as possible. I'll attempt to make an entry to this contest, although I doubt I'm at the relevant level of expertise yet.

    I'd be interested to hear what languages other Slashdotters think would be most appropriate to a contest like this. Lisp gurus, start your engines!

  7. Re:Plan ahead? by Maffy · · Score: 3, Insightful

    No, but (from your link) it does "change its structure and design, and remove dead code, to make it easier for human maintenance in the future."

    Refactoring might be a sensible thing to do during the two weeks between the first and second phases of the competition.

    Having said that, from my (limited) experience, you tend to need less refactoring in functional programming languages than in imperative (or object-oriented) languages.

    Matt

  8. Re:second row by archeopterix · · Score: 4, Insightful
    Also the top prize is $700.00. If you spend every waking moment on it for 4 days (700 / 96) it amounts to a CHANCE at $7.29 an hour. Explain THAT to your significant other.
    Challenge accepted.

    "Hey, significant other, I'm not into it for the money"

    Worked for me. YMMV.