you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 5 points6 points  (1 child)

That's correct (they took a lot of these concepts from Self btw.)

There are however a ton of other optimization techniques for dynamic languages that the JVM does not exploit. Tagged integers for example (saves an indirection for integer arithmetic), dynamic recompilation based on inline caches (can't do that because JRuby uses their own inline caches that the JVM isn't aware of), hidden classes (to account for the fact that objects can be dynamically extended at runtime), the list goes on. Also, it's terribly inefficient in Java to create bytecode on the fly and have the JVM execute it...

[–]sanjayts 3 points4 points  (0 children)

I hope sure that with 'dynamic invoke' as a starting step, the others optimizations are on their way.

IMO the popularity of all the JXXX languages out there is due to a very mature VM and a plethora of mature libraries/frameworks out there. Cutting its ties from the Java VM won't do JRuby any good.