Some Good ol' Benchmarking
Tom
Tromey just posted on the gcj mailing-list a link to an
interesting Java to C benchmark.
It's actually a followup to a previous one,
to which other Java runtimes have been added.
Basically, that's a comparison of micro-benchmarks
between some "classical" (JITed) Java environments, compiled
ones (GCJ and JET) and the equivalent C programs.
As I understand it, the results show that comparing Java
to C performance-wise does not have much meaning. Depending
on the task at hand, Java timings are in a +30% to -30%
interval with respect to C performances.
If such a worn-out subject interest you, I would recommend
reading the classical "An
empirical comparison of C, C++, Java, Perl, Python, Rexx,
and Tcl". I suppose some shootout
results would be a nice read too (their FAQ
is a must-read). Oh, look, there's even a detailed wikipedia
page about languages comparison.
My Dream Language
I'm actually more interested, as stated in my previous
post, by what may or may not help a library to gain
acceptance. Execution time of "scripted" or VM-based
languages is a typical FUD; runtime memory usage is more of
a concern (especially when compiling to native). Linking to
other languages is probably what
matters more, actually. That's the only argument I could
imagine in favor of C.
For application writing, it's clear to me that using a
garbare-collected, multi-paradigms language (especially with
a rich functional expressiveness) is a no-brainer, from a
productivity and maintainability point of view. But for
maximum reuse, what's needed is multiple, clearly-defined
libraries. For which I'm afraid no perfect implementation
environment exists.
I would love the above high-level characteristics (which
rules out C, C++ and to a lesser extend Java), easy linking
with existing C libraries (that one is OK with most
languages), and natural, efficient reuse from other popular
languages and environments (Java, C#, C++, Python and PHP
easily come to mind).
Now I'm getting Boring
Ahh, the good old Graal of universal, transparent componentry...
Perhaps some agnostic glue is needed... CORBA failed us, Web
Services are overkill to fit together applicative
components... Wouldn't D-BUS
be more interesting in this case (but calls granularity
should be properly thought out)?
So which paradigm/language/framework could provide us
with some kind
of universal "software mashup"? Any opinion (or better,
bibliography) on this matter, which I feel is quite the
opposite of a language
comparison (would you fear the trolling)? Am I getting
boring? :-)
If You're still with me
In (not so) other news, I noticed a revised edition of
the Dragon
Book was available. Among the new topics are better
code analyze and optimization, JIT compiling, garbage
collecting... I
need this (pricy)
beast!