
Lisp developer walks away with Google AI contest - janzer
http://www.zdnet.com/blog/burnette/hungarian-lisp-developer-walks-away-with-google-ai-contest/2131
======
pietrofmaggi
Lisp was clearly a fine tool for this kind of challenge, but the programmer
was, as usual, the important piece of the solution. Otherwise I'll expect to
have some other of the 33 lisp based entries in the top spot (the second lisp
entry is ranked at the #280 spot: <http://ai-
contest.com/language_profile.php?lang=Lisp>).

What about the top ten solutions? <http://ai-contest.com/rankings.php>

    
    
      4 Java 
      3 C++
      2 C#
      1 Lisp
    

So is Java the real king of the AI challenge? ;-)

[edit for formatting]

~~~
Zak
I find the mix of languages found in the top 100 interesting. Smart is
obviously a big factor in determining the winners. Speed was a factor in the
contest as well, with a 1 second per move time limit. Based on that, I'd
expect to see the faster of what Paul Graham calls "languages for smart
people" near the top. Lisp, Haskell, ML and Lua come to mind. That didn't
happen. What follows are observations about things I found interesting, with
no specific conclusion:

Popularity in industry seemed to be a big factor, with Java, C++, C# and
Python making up most of the entries in the top 100.

Speed wasn't that important: Python made up 20% of the top 100.

Some popular languages, such as Javascript, PHP, Ruby and Perl did quite
poorly. I'd blame it on speed, but Python did quite well.

New and exciting languages I'd expect the sort of people who enter programming
contests for fun to like were underrepresented. Only 6 people used Go, and 4
used Scala.

Unless I'm mistaken, the contest was limited to supported languages. F#,
Clojure, Lua and Scheme don't appear because they weren't supported, not
because nobody wanted to use them.

~~~
thomas11
I think a lot of participants might be in the same situation I'm in: I like
new and exciting languages and play with them now and then in my free time,
but I work in one of the "boring" languages. Having way more experience with
the boring language, it's the one I turn to when I have a deadline or the
problem is hard enough that I can't afford to spend brain cycles on the
language itself.

~~~
jimbokun
I feel like Clojure has crossed that threshold for me.

I program in Java at work because it's what my team understands and it's what
the rest of the application is written in. But if I need to do some
exploratory programming or build tools to increase my personal productivity, I
turn to Clojure first. It's much more productive because I can test each
little piece at the REPL and it takes so much less code than it does to do the
same things in Java (even when it is just invoking methods on Java objects).

If I need to, it is then a straight forward step to expand the code out into
its verbose Java form.

------
silverlake
A better title: "3 Time Winner of Computer Games Olympiad Wins Yet Another
Contest".

~~~
swannodette
Can't believe this Reddit quality comment is getting any upvotes. Google AI
Challenge is "Yet Another Contest"? Though you may not be surprised, he is,
<http://quotenil.com/Planet-Wars-Post-Mortem.html/>.

~~~
eelco
The point is that he won because he's a great programmer, not because he used
Lisp.

~~~
gruseom
_The point is that he won because he's a great programmer, not because he used
Lisp._

Given that people have argued that the absence of Lisp winners from such
competitions is evidence against Lisp's greatness (I'm going by memory here
and don't have time to dredge up the record), it seems relevant to point out
when it does happen.

~~~
foljs
So, essentially:

a) given that people has made bad arguments before b) it "seems relevant" to
make bad arguments in the opposite direction now

Huh?

~~~
gruseom
It's relevant because it's a counterexample. Now people can't say, "If Lisp is
so good why don't people win these things with it?" They have to say things
like this instead:

<http://news.ycombinator.com/item?id=1961546>

Obviously the OP is relevant for other, better reasons than this, but that's
what my comment meant.

~~~
foljs
It would only be a "counterexample" if it was a valid example. This only keeps
the "counter" part, but as an example it is flawed.

------
idan
Reminds me of a classic comic strip:

<http://www.whattheduck.net/strip/95>

------
StavrosK
Is there a summary of the algorithms he used anywhere? I don't see how it was
the language that won the competition, rather than the code he wrote in it.

~~~
tudorachim
Looks like alpha beta with a good evaluation function, move ordering, and a
changing depth parameter (not sure about this one, though).

~~~
Shamiq
Isn't alpha-beta pruning a type of optimization you can do to a search
algorithm, but not the base algorithm itself? I only bring this up since I
helped make an Othello bot that used Mini-max _with_ alpha-beta pruning to
help reduce the number of branches it needed to follow down a tree.

~~~
kermit_de_fro
Alpha-Beta pruning is, to my knowledge, only really defined in a mini-max
setup. By definition, it leverages the mini-max framework to prune areas of
the search space.

You can apply the core concept -- refusing to expend computation effort when
the result of that effort is guaranteed to not be used -- to any number of
other methods and approaches in Machine Learning and AI.

~~~
Shamiq
As far as the first line in the wikipedia page goes..."Alpha-beta pruning is a
search algorithm which seeks to reduce the number of nodes that are evaluated
by the minimax algorithm in its search tree."[1] it seems like you're correct.
Thanks.

[1] <http://en.wikipedia.org/wiki/Alpha-beta_pruning>

------
aufreak3
Hmm .. maybe I should consider settling in Hungary.

~~~
lmaonade
After seeing Gábor’s performance, many participants commented that they would
be taking a new look at the 1000 year old country. "Bocsimako is the proof
that Hungary is best for AI algorithms", quipped one player.

~~~
eru
Being born and educated in Hungary is even better. Compare John von Neumann,
Edward Teller, Leo Szilard, and Eugene Wigner.

They changed the education system, and no longer used the one they had around
1900. Unfortunately.

~~~
aidenn0
There is a quote that I don't know who to attribute to or even the exact quote
but it's roughly "Only in Budapest can a man walk into a revolving door behind
you and come out in front of you"

------
Xurinos
There are many comments here that he won because of his programming/thinking
skills versus using the Lisp language, and I think this true in comparison to
the other contestants. However, one thing he mentions that is an interesting
piece of the puzzle -- and a common theme in language competitions that
include Lisp -- is:

 _Lisp doesn’t get in my way as much as other languages. After getting hooked
I learned to value the interactive development environment, the object system,
etc.. What’s good about Lisp is rapid development and speedy execution._

This might be a small effect, and you can have good programmers in every
language, but if he was just as familiar with Java as he was with Lisp, could
he have accomplished the same results in the same time with Java? How would
the code look?

------
ihodes
I know at least a few people who had bots written in/were prepared to write
bots in Clojure. They didn't end up adding support for it, however. I still
can't wait for the next contest—wouldn't Pentarow be cool? Or Pente?

Anyway, cheers to Waterloo for putting this on again!

~~~
agravier
You should beware not to be too enthusiastic, because this year's organizers
were pretty aggressive when I politely asked (over PM) if there was any
specific problem with adding Clojure. I still don't know what the problem was.

------
richcollins
_Bocsimako is the proof that Lisp is best for AI algorithms_

Cargo cultism at its finest

~~~
ohyes
It seems that any positive inclination towards lisp is cargo cultism.

Gabor Melis is a seriously smart guy, and probably would have kicked ass in
any language.

That said, I'm going to pull out that phrase next time someone says 'Java/C#
is good for Enterprise', or 'C++ is good for video games', or 'C is good for
systems programming'.

Cargo cultism indeed.

~~~
danparsonson
Two things:

1) "X is good for Y" is very much not the same thing as "X is _best_ for Y"

2) One person having great success at something is not a pattern, and doesn't
usually prove a general rule (I'm hedging with 'usually' - I can't think of a
counter example but I expect someone else will :-). Common usage, while not a
guarantee, is at least a good indicator of fitness - if Java were better for
systems programming than C, it's likely (though of course not certain) that we
would be saying 'Java is best for systems programming', and have some basis
for that claim beyond the success of one person who has already demonstrated
competence in the same general area (i.e. the contests previous competition
wins).

The headline might better have been "Experienced programmer uses Lisp to win
Google AI contest". Correlation vs causation - he didn't win because he knew
Lisp, but he did use Lisp in his winning solution, and you can understand that
without taking a position on Lisp itself; there are shades of fanboism in some
of the comments on this thread.

~~~
ohyes
1.) People (who use them) will happily tell you that each of those are the
'best' choices in their respective fields. People say 'C is best for systems
programming', that I worded it more weakly is irrelevant.

2.) Lisp has been in use in AI, since before the birth of AI. It is still used
in AI, and there has been plenty of success with it. There is plenty of
'constant conjunction' (to borrow the causative definition from Hume),
associated with Lisp and AI.

Acting as if his use of Lisp couldn't have given him an advantage in an AI
contest is pretty much the ultimate lisp denial-ism.

------
ld50
"You can win 6, 12 or 24 months of membership to AiGameDev.com PREMIUM if you
place third, second and first in the contest respectively. We'll also provide
any single person team that ranks higher than our official bot three months of
AiGameDev.com PLUS — our brand-new part of the site that launched last week."

he must be excited. until google puts out non-trivial problem sets and offers
non-trivial prizes i'll save my upvotes and cycles.

~~~
JoachimSchipper
Meh, it's worth quite a bit to have that on your resume.

------
trezor
Very interesting stuff. Is the source for the various bots posted anywhere? Is
it even a requirement that you disclose your source or that it will be made
public after the results are published?

I looked around but couldn't find any obvious place to find the source for the
bots used.

~~~
dmoney
The winner: <http://quotenil.com/git/planet-wars.git/>

------
lr
The matrix will be programmed in Lisp...if it's not already...

~~~
waqf
It is already: see <http://matrix.itasoftware.com/>.

------
mfukar
Not a bad article, but did you have to make the title a Lisp promotion fest?

~~~
vixen99
This very short article mentions the winner's views, as he sees it, on the
suitability of Lisp (used by 0.7% of the contestants, surely interesting) for
the job. Half the article never even mentions Lisp. And this amounts to a
'promotion fest'?

~~~
mfukar
_The point is that he won because he's a great programmer, not because he used
Lisp._ I was referring to the title and not the article. Do you understand
that or have you got more asinine comments?

