ICFP 2005 Programming Contest Results 111
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."
My Java Bubble (Score:4, Insightful)
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.
API piggybacking... (Score:5, Insightful)
- 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!
Re:API piggybacking... (Score:2)
.NET - One API to Rule Them All (Score:1)
Re:.NET - One API to Rule Them All (Score:2)
I have a large project that runs from the same source on Windows,Linux,Solaris,AIX,HPUX,OSX,Tru64 and even iSeries. Well written C/C++ is *very* portable.
Re:.NET - One API to Rule Them All (Score:1)
MS hates Mono... (Score:2)
http://uk.builder.com/programming/windows/0,39026 6 18,39265898,00.htm [builder.com]
So dotNET is GREAT for MS people.
Java may have been THE language, but with JRuby, Jython, Groovy, and others, it no longer is, and since Groovy is now a JSR, this practice has Sun's religious app
Re:API piggybacking... (Score:2)
For servers yes, but for clients/GUI apps?
I've yet to see Java apps which can start fast and feel fast, which is necessary for (good) clients/GUI apps.
Even the administration tools of Solaris9 which were rewritten in Java by Sun suck (very slow), so if *Sun* is not able to make fast Java GUI app..
Re:API piggybacking... (Score:1)
Re:API piggybacking... (Score:2)
AFAIK Eclipse has the reputation to be a memory hog, does-it start in less than 2s?
Re:API piggybacking... (Score:1)
Re:API piggybacking... (Score:2)
Re:My Java Bubble (Score:5, Funny)
If the one you forget is English, you'll know you've hit burn out.
Re:My Java Bubble (Score:1)
Re:My Java Bubble (Score:2)
Re:ICFP (Score:5, Informative)
Re:ICFP (Score:4, Informative)
There have been "C" programs that won previously, I believe.
Re:ICFP (Score:1)
Yeah. Shame there hasn't been an entry that won both the ICFP and IOCCC. =)
Re:ICFP (Score:1)
Re:ICFP (Score:3, Informative)
Re:My Java Bubble (Score:5, Interesting)
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.
Try Q! (Score:2, Interesting)
Re:My Java Bubble (Score:2)
A good language does not a good programmer make.
A bad language does not a bad programmer make.
Not that the language is irrelevant, mind you, but with this few entrants, I wouldn't go looking for correlations.
Re:My Java Bubble (Score:2)
161 entries isn't small.
And bear in mind that this isn't the first time Dylan has done well. In addition this Judges' Prize *and* 2nd place this year, Dylan programs got the Judges' Prize in 2003 and 2nd place in 2001 (losing to Haskell that time as well).
Re:My Java Bubble (Score:2)
Just because there's a couple good Dylan programmers out there participating in some contests doesn't mean that programming in Dylan somehow works better. Even if it were a statistically significant number of entries (which it's not), the effect does not prove causation. Just like Baptists don't *actually* cause tornadoes despite having a strong correlation between the percentage of the population that is Baptists and the frequency of torna
Re:My Java Bubble (Score:5, Interesting)
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.
Re:My Java Bubble (Score:3, Insightful)
*Exactly*
You just perfectly demonstrated selection bias. From a random sampling of the world's programmers, what are the odds that both you *and* your friends would be selected?
despite there being only one Dylan entry each year
*Exactly* - you're doing a good job summing up my points in your post. With how many total Dylan programmers? You and how many friends? This points to the much more likely conclusion, that you and your friends are good programmers when it comes to th
Re:My Java Bubble (Score:1)
Haskell guys. You are just an extremely cool bunch of re-hackers.
Re:My Java Bubble (Score:1)
Re:My Java Bubble (Score:2, Insightful)
I've been in a Java bubble for far too long. Time to burst that bubble and look into things like Ruby, Python, etc.
Given the context in which you're deciding to look outside your box, don't you think Haskell or Dylan might be more appropriate languages to look into?
Bobby (Score:5, Funny)
Re:Bobby (Score:3, Funny)
Soko
Re:Bobby (Score:2, Funny)
$ like a rolling stone
-bash: like: command not found
Hmmm, that don't work. How about gcc.
gcc t.c
t.c:1: error: syntax error before 'a'
Oh, it must be c++
g++ t.c
t.c:1: error: 'like' does not name a type
Um, python?
python t.py
File "t.py", line 1
like a rolling stone
^
SyntaxError: invalid syntax
No good. What else can I try? Wait, PERL!
perl t.pl
I love that song, but I can't locate object method
Re:Bobby (Score:3, Interesting)
And how many of the rest of you actually tried it out?
Re:Bobby (Score:1)
Re:Bobby (Score:2)
2 hours ago I would not of even understood the joke.
Funny old world
Programming (Score:2, Interesting)
Re:Programming (Score:2)
Re:Programming (Score:2, Funny)
Re:Programming (Score:3, Informative)
Second, have a grand
Re:Programming (Score:2)
2. Hit record macro to generate VB
3. Cut and paste recorded macro.
4. ???
5. Profit!
Motivation (Score:2, Insightful)
Re:Motivation (Score:2)
Re:Motivation (Score:1)
Working on your own projects from scratch is a great way to learn how to code
Re:Motivation (Score:1)
Re:Motivation (Score:1)
Re:Motivation (Score:3, Funny)
By the looks of our IT dept, exercise and laundry must require a lot more motivation than leaning a programming language... Nyuk, nyuk, nyuk.
Re:Programming (Score:3, Funny)
Re:Programming (Score:1)
Re:Programming (Score:1)
in that case u might wanna try starting with C++.
Just get a good book. I use C++ the complete reference by Herbert Schildt.
When I was learning to program, I would do the examples that the book showed me, but I would always try to improve and make my own programs based on the knowledge I have in the language. In doing so, u gain valuable exp, which helps u become a better programmer.
Re:Programming (Score:5, Funny)
Re:Programming (Score:1)
Learn PHP by making a photo gallery. Make a java version of your favourite board game. Create a perl spider that goes out and downloads pictures from websites that contain the words Natalie Portman and Hot Grits.
Re:Programming (Score:2)
Hey, there's this language out there DESIGNED to be easy for people to learn. Erm.... Think it was Squeak. [squeak.org] Try finding out something about that....
And I'd say Java was easier to learn than Basic or Pascal. Just download Eclipse, unzip it, and start..... erm. Welllll..... No.
Re:Programming (Score:2)
Re:Programming (Score:2)
Re:Programming (Score:2)
Re:Programming (Score:2)
Graphics in particular is one
How To Design Programs (Score:3, Informative)
Syntax versus Logic (Score:3, Insightful)
Re:Syntax versus Logic (Score:2)
In my experience, programmers (including myself) often to go through three phases. First, for the first few years, they think that languages are supremely important, and know quite few languages. Then, they learn to think in algorithms, and for the nex
Re:Syntax versus Logic (Score:2)
Re:Syntax versus Logic (Score:2)
Eivind.
Re:Syntax versus Logic (Score:2)
Re:Programming (Score:1)
Re:Programming (Score:1)
Provided it is simple enough to understand of course.
Re:Programming (Score:2)
For the record, I've written in BASIC, C, Pascal, Modula-2, Lisp, Scheme, ML, FORTRAN, 6502 Z80 and 68000 assembler, Smalltalk, C++, Objective-C, Perl, AppleScript, Hypertalk, and Java (in no particular order, and probably forgetting some). They're all a much bigger PITA than Ruby.
I don't think there's any shame attached to simply not
Haskell stack problem revealed (Score:1, Funny)
I can see literally see my house from here. (Score:1)
I shall now set my sights on UoC Computer Science department. Taking a look at the documentation of the rules provided by the site, it seems like you're developing AI for an RPG. I would love to try to host a league myself with similar AI development contests.
Re:I can see literally see my house from here. (Score:3, Funny)
Awe, you sound like Clippy when you talk like that!
Re:I can see literally see my house from here. (Score:1)
Re:what's icfp???? (Score:2)
Malbolge (Score:1)
Can't help myself (Score:3, Funny)
Mod Parent Funny (Score:2)
No SCHEME? (Score:2)
The Scheme people hold a contest and no one solves the problem in Scheme?
Dr Scheme... LISP... ah paren city! Takes me back to being a CS undergrad.
Re:No SCHEME? (Score:5, Informative)
Re:No SCHEME? (Score:1, Funny)
Now, it'd be really ironic if the Dylan Hackers were the only term not to use Dylan.
Re:No SCHEME? (Score:2)
Watch a game in action (Score:3, Informative)
Open Dylan beta just released (Score:1)
contest is somewhat biased? (Score:2)
I don't want to sound all anti- functional programming, because I'm not, but I am wondering something about this contest. By allowing both functional and imperative languages, it seems they are in some sense comparing the fitness of not just the programmers but the programming languages. Are they doing this in purpose? Are they trying to back up the claim the functional programming languages are "more expressive" than imperative languages because functional languages tend to win the contest, and the conte
Re:contest is somewhat biased? (Score:1)
So, I may be wrong, but I think functional languages are clearly better suited for solving some of the proble
Re:contest is somewhat biased? (Score:3, Insightful)
Re:contest is somewhat biased? (Score:2)
Previous winning languages (Score:3, Interesting)
Judges prize: OCaml
Lightning division winner: Java, C++, Perl, and m4
Main division: (1st) Haskell, (2nd) Haskell and C++
2003:
Judges prize: C++ and Dylan
Lightning division winner: OCaml
Main division: (1st) C++, (2nd) C++, (3rd) OCaml
2002:
Judges prize: Python
Main division: (1st) OCaml, (2nd) C
2001:
Judges prize: Erlang
Main division: (1st) Haskell, (2nd) Dylan, (3rd) OCaml/C (a tie between two teams)
2000:
Judges prize: SML
Main division: (1st) OCaml, (2nd) OCaml, (3rd) Haskell, (4th) Mercury
1999:
Judges prize
Re:Previous winning languages (Score:2)
Small world (Score:1)