Don Dailey wrote:
For that, C currently appears to be the best choice. This in not
just my opinion, there is empirical evidence to support this claim.
The problem with "empirical evidence" is that you don't get the very
much needed "all else being equal". The people that code in C (and get
great speeds for the algorithms where speed means a skill increase) are
people that know C best, that have years of experience in it, and also,
people that have a different attitude towards /how/ to solve problems,
/what/ algorithms to write. I suspect that Java coders, and especially
Haskell, Lisp, etc. coders, are people with significant less experience
in those languages; partially because you need a lot less knowledge
about programming to get started and get anywhere, but also because
these languages have something of the hype about them*, and might be
chosen as the language merely for being the latest language, or the
highest-level one, learned so far. And you think differently when coding
in a higher level language. It might well be that the slightly different
mindset of low-level programmers is more suited for go. It might be that
we /need/ a domain specific language for go.
But none of this means that the /speed of execution/ is the crucial
factor, or even an important one. Yes, perhaps the same algorithm in
Haskell is ten times as slow as one in assembler. But does that mean
that if you give a Haskell coder ten times as powerful hardware, that
he'll be able to compete with the C coder? I'm not so sure.
The maintainability aspect is not to be laughed at either. Once you get
above a certain size in complexity of the program, having it in C from
the start will mean a much greater inertia against expanding and
experimenting with what you have. And I suspect go programms will have
to go above this to beat the current set of algorithms. As seducing as
the idea that there's an elegant solution is, I don't think it's
realistic. And then we'll need the added clarity of high-level programming.
*) Without that meaning they're worse languages for being hyped, or
being picked up for word of mouth value only.
_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/