User-agent: Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.4) Gecko/20030630
btw, if you want a mindblowing productivity boost then try Ruby!
I am agree, the mindblowing productivity is the main criterium for a
language.
But why Ruby?
During a long time, I looked for the best language,
I thought that I found it when I discovered Ruby (and the
pragamtic programmers)
Nevertheless I found the syntax ugly
(0 .. 9).each { | i | sum += i }
So I goback to java. But I still hate things about java:
The iterator, the bad design of collections, the way to use files, ...
But I discovered python.
The only frightenning thing is significant indentation, but after half
a day, I found that really avoid to type the brackets,
and that the mistake was caught at compile time.
And after 2 days, I really love the absence of brackets.
And the syntax was so elegant (like the rest of language)
for i in range(10): # the only strange point is that range(10) == [0..9]
sum += i
print sum
# there is no end instruction,
# the code is based on indentation
Clearly, I don't see what Ruby has more than Python, except syntax
which is really different than other language's syntax.
So you understood that I am a fan of Python.
I think it would perfectly fit with the design of a computer go program.
The advantagefor go programming are:
- Python gets the job done: (see explanation at
http://www.fsbassociates.com/books/pythonchpt1.htm)
- Easy prototype
- Development faster: twice as fast as java development (specially, looking
in the library API is very rare and far easy)
- Easy integration with C necessary to optimize things.
- A lot of C written libraries for computing expensive part
(for working with matrix computing, imaging processing, ...)
- Easy to learn (two days is enought to reach the same knowing stage,
I reached usually in two weeks)
- The code looks like pseudo-code: very easy to understand even for
programmers wich are not aware about Pyhon
- Syntax close to usual languages: Perl, Lisp, Caml, or Prolog are
very good and powerful, but I am too afraid that only Perl, Lisp, Caml
or Prolog programmers
can understand hwo work my program
- No compilation step
I tried to keep this list short ;-)
Computer go seems to be just at the experimental stage,
so the ease of developpement should be the major criterium.
So, the major advantages are certainly easy prototype and fast development
and the minor one the C integration.
The drawbacks are:
- No standard IDE (as eclipse for java)
- No standart way good GUI (as SWING)
- for somepeople, hard to multithread application (but that is quite
subjective,
I don't think so)
- The range function parameter
I hard found things to put in this list ;-)
I would say that they are minor drawbacks:
- the IDE is not a major concern, I work just with plain text files
and there is no really drawbacks ( for exemple, the lack
of autocompletion is not a such big handicap as in java)
- there is still good GUI for example wxPython/wxGlade. The only point is
that for the moment, no GUI is commonnly accepted as the standard in
the Python Community.
- Usually, the range do exactly what I expect, and moreever, we can iterate
on a lot of different sequence
So I wonder why aparently there is project to build a go program in Python.
gotools exists (http://gotools.sourceforge.net/) but it's not really a
programm,
just tools.
If someone is interested for creating a go program in Python, maybe we
could do something together.