
On Tue, 2008-09-23 at 00:20 +0400, Bulat Ziganshin wrote:
Hello Isaac,
Monday, September 22, 2008, 11:49:30 PM, you wrote:
i mean that naive haskell code is very slow and 3 or 5 or twelve libs can't solve the problem of ghc generating slow code
Is there something particularly fascinating about naive code written in any language?
yes, in asm number of instructions executed more or less define number of CPU cycles used.
On modern processors (RISC design), naive asm is likely to be extraordinarily slow, because memory usage and cache considerations and register scheduling dominate processor cycles.
C known as portable asm.
Known as != is. And naive C is also extraordinarily slow, especially if written at a high level. It is not the least bit difficult to write memory hogs in C. (I should know; I've done it. And so has every major software house (including open source projects) to release in C, for that matter.)
Haskell was developed with goal to hide implementation details from egg-headed scientists and this obviously should have some drawbacks
Should != is. Not all shoot-out entries look like C with Haskell syntax (although some do). Naive Haskell can be 100s of times slower than well-tuned C; naive C can be 100s of times slower than well-tuned Haskell (where well-tuned Haskell can just mean using good data structures. It's quite naive indeed to dismiss better data structures and better algorithms (especially where `better algorithms) as `libraries.) jcc