API review of VarHandles
Brian Goetz
brian.goetz at oracle.com
Tue Jan 26 21:46:15 UTC 2016
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."""
More information about the core-libs-dev
mailing list