9 Apr 2008 tan   » (Journeyer)

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!

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!