|Welcome to the Monastery|
Re^4: Are monks hibernating?by BrowserUk (Pope)
|on Feb 14, 2007 at 05:16 UTC||Need Help??|
For speed you do have to go to C or assembler
You certainly don't have to drop that far. I certainly wouldn't entertain doing much of anything in a language that doesn't support automatic memory management. And there are plenty of languages that do that can match the performance of C. Or even exceed it for some applications.
The lack of tail recursion optimisation accounts for some, but by no means all of the problem. There is a substantial overhead in simple calling a subroutine, which effectively penalises the use of subroutines for abstraction unless they do a fairly substantial amount of work to amortise the overheads. Once you move to using OO, you add another bunch of overheads in class lookup; dereferencing instance vars; inheritance resolution; et al. And OO encourages the use of small methods. If you implement a nicely architected solution, it runs like a dog.
Maybe that's a necessary penalty for the benefits of using a dynamic language, but even without jit, Java seems to do a whole lot better.
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.