I think that expectation is just out of date (if not outright
mistaken.) Yes, j.l.i was originally called "java.dyn", but prior to
shipping *7* we renamed it to j.l.i precisely because it had turned into
a general customizable linkage mechanism that was usable far beyond
dynamic languages. (To wit, Java 8 lambdas got a significant
linkage/capture boost from using invokedynamic.) So to claim it's
"supposed to be" only for dynamic languages represents a significant
"missing of the memo."
On 1/26/2016 3:31 PM, Martin Buchholz wrote:
There's a big "expectations" effect here. j.l.invoke is "supposed to
be" for making dynamic languages less slow, not for making low-level,
ultra-non-dynamic operations faster. Asking the Unsafe users of the
world to switch to dynamic VarHandle is like asking C programmers to
rewrite their code in perl 6 ... for performance! It's the same
"srsly?" feeling one gets reading """We can currently use RPerl to
speed up low-magic Perl 5 code with over 300x performance gain."""