[Novalug] I am thinking of a programming language - Can you name it?

Gregory Maxwell gmaxwell at gmail.com
Wed Oct 28 23:59:51 EDT 2009


On Wed, Oct 28, 2009 at 11:27 PM, Paul D. Bain <paulbain at pobox.com> wrote:
[snip]
>        A language's memory usage or speed in execution are no longer terribly
> important. DRAM is cheap and CPU speeds are continuing to increase apace
> (Moore's law). Basically, programmers look for tools that tend to

I can't really agree; sadly.

I tried thinking that way: "My time is more valuable than the
computer. It can crunch while I get a drink, or overnight and if I
saved 10 minutes coding then that would be a good win."

Yet, even for one off programs that I would only run once or a few
times I've found this to be untrue for the interpreted loosely typed
high level languages which are currently in vogue:   They aren't just
a few percent slower, they aren't even half or a quarter of the speed.

We're talking about *starting* at around 1/30th the speed of C code
and even that often takes someone who is experienced at eeking speed
out of the language. — and I think once you're into ricing out your
python, perl, php, or ruby for performance you've lost much of the
advantage of using the easier language.

I've found on various numerical codes that it's not uncommon for me to
see on the order of a 2000x speed difference between a naive python
implementation and the same simplistic algorithm in C (to be fair, the
C version was able to be use SSE while the python was not).

2000x is 16.4 years of Moore's law.

I certainly accept that there are many people and applications which
find the performances losses and memory usage are tolerable, but there
are also many places where they are not.

Many people are going out of their way these days to use GPUs for
computation, even though they represent a terribly awkward
architecture with terrible constraints… simply because of the extreme
performance available for carefully optimized code.

There are modern languages in the same general performance league as
C. But I have not generally found them to offer significant
development productivity gains for *small programs*. (Large programs
are another matter entirely…)



More information about the Novalug mailing list