[computer-go] Drunken sailor on payday

Jacques Basaldúa jacques at dybot.com
Thu Nov 22 04:13:36 PST 2007


Raymond Wold wrote:

> Do you have anything to back this up? I was under the impression that
> most decent assembly programmers agreed that they can't compete with the
> best C compilers.

Absolutely NOT. 

"Only" the typical, perhaps 99.9% of the programs, made of: transfers, 
conditionals, integer arithmetic and _non-parallelizable_ floating
point arithmetic are efficient when compiled in C (or Pascal which 
compiles to the same binary and creates the same compatible .obj as C). 
In these cases, writing in assembly is both less efficient (because the 
compiler finds optimizations the programmer won't find) and harder to 
maintain.


BUT

Programs with bitmaps, bit manipulation, masks, etc. Which are really 
useful in go, are (sometimes x4) more efficient written in assembly. The 
same was the case when Chen Zhixing wrote Handtalk in assembly. The same 
happens in any cryptographic, binary image compression/decompression, 
application today and forever etc. Compilers optimize "vulgar" programs, 
because that is what most programs are. Please, understand "vulgar"
as defined above, we all write lots of vulgar programs, it is not
an insult.


Programmers should view the code they are generating and _only_ that 
should tell them what is worth writing in assembly and what isn't. 
The best programming language is the language that lets you write 
assembly language hacks clean and easily using the high level symbols.


It is fine to use "cool feature" languages on the base that your 
priorities are different and you don't care about the binary, but
you shouldn't claim that you can have both "coolfeatureness" and 
efficiency, because that is simply not true.


Of course, what is "cool" is very subjective debate: Some people
find it cool to depend on runtimes that increase at mega/month 
rate, do what the API already does only much worse, gift the user 
with "the gray rectangle experience" even on a quad-core. After 
two seconds of gray rectangle they paint something that does not 
properly support clipboard operation, replaces the system's file 
dialogs for dialogs in which you have to manually type: *.sgf, 
*.SGF, *.Sgf, .. (to see all your .sgf files), that never remember 
last folders, etc. All this annoyance just because someone bought 
the "platform independence fallacy" from a company (Sun microsystems) 
that never cared a bit about compatibility. I am still waiting to 
meet the first person who answers affirmatively to the question: 
"Have you ever paid for a program written in Java?"
Simple question, everybody I ever met answers no. Guess why.


Jacques.



More information about the computer-go mailing list