> Hmm. So I thought part of the cool thing about templates libraries is that
> all the syntactic sugar melts away as compile time as the templates get
> expanded and the resulting local optimizations gets applied. In other words,
> to quote Jeff Alger, "[...] (solving) the problem as elegantly as a real
> language like Smalltalk or Lisp would, but without causing smoke to rise
> from your CPU and the stock of companies that manufacture memory chips to
> rise on Wall Street."
> Isn't Java's story considerably weaker here?
Sure. That's why lots of people keep demanding template extensions
for Java. I can see their point, but.. I personally see this
a bit differently.
For one thing, I always found template syntax in C++ complicated.
I'd hate to add muckiness to Java - I really like streamlined syntax
over features wherever possible. [Say- maybe the reason I find
html/xml angle bracket <> </> notation so ugly is repressed
memories of C++ templates?? Hmmm...maybe something to that theory..]
For another, and this could start a bigotry flame war to rival
language and OS wars, I vote for the "performance doesn't matter"
camp. Not blindly and stupidly, of course. No sense doing O(n**2)
sorts when there's a perfectly good O(nlogn) algorithm.
But if there's one lesson that Moore's Law and the PC revolution
and emerging ubiquitous broadband networks teaches, I think
it's that it's simply *worth* doing lots of stuff dynamically,
at runtime. So what if templates shave a few cycles over
Vtable calls? So what if bytecode interpreting adds 20% overhead
over raw native? That's what those friggin 500MHz
chips are for! No, I'm not in favour of software inefficiency
and bloat just for the sake of it, don't get me wrong. And there
are cases where you do need to optimize to the Nth degree - real
time video compression,etc. But for run of the mill user-oriented
app stuff? I really don't see the point.
It's not just Java that's taking this philosophy. I argue that
we run backend perl and dynamic SQL queries. Why? Why not! What else
would we have the machines do? Spin NOP cycles?
Ok. You can all show me why I'm wrong now.
Yeah, I know, the quest is always optimize, inline, tweak, tune,
cache, thread, ... but that's not what we do in practice ;-).
> > - mobility
> Ah, who cares about that? :-)
Good question. How bout: "Mobility is its own killer app.
It's cool just because it is." ?
Come on Nelson! That's your cue :-).