>> It does have its problems though. For one, it is at the mercy of each
>> individual implementor and not all implementors are created equal in
>> all languages.
>>
>> For examples-- how did Java end up being equally expressive as C++.
>> The only thing Java has over C++ is reflection (and meta-template
>> programming is by and large much more useful).
>
> I think it's important to remember that these programs were optimized for
> speed; very few of them, if any, are written the way one would normally
> write a
> program in that language. The "distance" of the optimized program from a
> more
> naïve one is an interesting, though difficult, thing to measure.
>
Good point. As I mentioned in another recent post it seems a bit
disingenuous to use these programs as measures of 'expressivity' in
that case.
>> Another one-- How did F# and C# end up being equally expressive?? F#
>> is *way* more expressive (i.e., less verbose).
>
> Just like you can "write C++ in O'Caml", you can "write C# in F#", and I
> would
> guess that with the present CLR/compilers, this is the way to write the
> fastest
> code, so the F# programs end up having a similar size.
>
Yep, that makes sense. Writing in the style of one language in
another really bugs me too (natural language not excluded)!
> (I have also heard that the shootout limits the way programs can be written
> --
> for instance, insisting on using an array when some data structures might be
> better-suited in a particular language. I don't know how true this is at
> this
> point.)
>
Interesting. Any idea on the reasoning behind that? I can't see any
given the benchmark's stated goal of 'comparing performance'--forcing
certain structures would unfairly penalize some languages it seems.
--Jonathan