I really don’t understand the extensive dicussions on such a moot point.
Running the same algorithm on two languages, and running a reasonably
complex application is different. As someone above already stated, get
the
10% and optimize it all you want. The main point will still be getting
the
project out of the door. Frankly, if performance is your primary
requirement, why would you EVER want a scripting language? These are
designed with ease of use in mind, and made from higher level
structures. If
you want core performance, just write Assembly, or if you want (some)
portability, C code. Its been done before all these scripting languages
were
developed, and it can be done now.
The moot point is, that if you can’t get the project out of the door in
your
deadline, would you really need performance?
Ruby is slow… so was C when it came out because everyone was used to
Assembly. But C had its advantages, it was more portable than Assembly,
was
structured, and a slew of other features that just made the "developer"s
life easier, nothing more. What you can do in one language, you can do
in
the other. I’m talking about the results, not the way of doing it.
As far as i see, code in the language you like to work in, know how to
use
it well, far too many people don’t know how to implement the proper
algorithm in the proper place anyway, so care about your tools later
when
you hit a brick wall, but till you hit it, take the fastest route to
your
destination. That is efficiency.
Also, a lot of the books written by a lot of the greats were done at the
time where the hardware was limited, and the common developer required
certain ninja skills to do what they wanted. Now, its a little
different.
You just can’t expect the philosophy of driving a moped to apply to
driving
a ferrari. I’m not saying that you should just write crappy code as you
like, but just that you need to write good solid “code” and worry about
the
language when it gives you a problem. As knuth said, “premature
optimization
is the key to all evil (or atleast most of it) in programming”. – Have
you
had a problem with performance with ruby? with python? Just pick a
language
that you can actually learn, and pick a good book, take some time to use
it
well, design your project well, implement the proper architecture,
datastructures and algorithms and use whatever language you are
comfortable
in.