[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: A 21st Century Apple II?



Hi Michael,

On 2009-03-10 02:41:11 +0700, "Michael J. Mahon" <mjmahon@aol.com> said:

John B. Matthews wrote:
In article <gp2v0k$2moc$1@news.ett.com.ua>, JB <jasonb19xx@yahoo.com> wrote:

[...]
I haven't read the entire thread, but it appears to me to be a central part of his argument that C++ is faster than Java. Unless I missed something obvious, that appears to be supported by the benchmarks at the language shootout web site if you look at them in aggregate.

The results at <http://shootout.alioth.debian.org/> show only that language X is <faster|slower> than language Y for some comparable pair of benchmark programs. These results do not support a claim that "X is faster than Y" in general. Numerous other factors may shift the balance completely: project size, time-to-market, platform constraints, availability of suitable libraries, developer experience, etc.

I think the *current* discussion has been focused just on execution
speed, as opposed to time-to-market, etc.

And that comparison can only be done at particular sample points
in which the same algorithm is implemented using each language
and its compiler/runtime.

If you're comparing procedural languages, I concur. This is related to why I brought up the memory pre-allocation issue earlier.

Does anyone care enough to examine the source code on the language shootout site to confirm whether this is the case or not?


Benchmarking is always valuable only to the degree that the sampled
programs resemble your intended patterns of use.  But it is the best
we have for comparing performance short of doing a dual implementation
of your problem and directly comparing the results--not usually an
option for real problems.  ;-)

Comparing languages on more "human factors" issues like productivity,
time-to-market, support costs, etc., has all the problems associated
with psychological experiments, including large sample sizes, normed
developer groups, long-term followups, etc., and has only rarely (and
expensively) been done in such a way that one could have any confidence
in the results.

It is difficult to eliminate subjectivity from any of these human factors comparisons.

Languages do have domains of applicability. For example, C++ is a systems programming language. Among other things, you can implement an operating system in it (for example Windows). Java is not a systems programming language and is unsuitable for this type of use because it must run on a JRE. In Java's defence, C++ is not really suitable for writting web applets.

Jason