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.
_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/