Pre-conj Prep: Ghadi Shayban

October 01, 2014

Talk: JVM Creature Comforts

Ghadi Shayban's talk at the conj is about the Java Virtual Machine. In case you don't know, the JVM was originally designed by James Gosling and originally only hosted Java. Recently, the JVM has become the target platform for some very popular languages, including Groovy, JRuby, Scala, and of course Clojure.


I always recommend studying up on history. James Gosling gave a talk a while ago about How the JVM Spec Came To Be. It's a personal history that chronicles the experiences that led up to the design decisions that are embedded in the JVM today. A good introduction to how the JVM method invocation works in bytecode (very basically) is Charles Nutter's keynote at JAX 2012. It's also a good introduction to invokedynamic and Method Handles, also mentioned in the talk description.

Briefly, invokedynamic is a way to dynamically dispatch based on language-specific semantics in a fast way. Method Handles are a way to refer to a method directly as first-class values. Some other things mentioned: value types are a proposal to support immutable aggregate types directly in Java. classdynamic is an idea for instantiating patterns of classes.

Why it matters

The JVM is evolving. The growing number of languages that compile to the JVM are influencing that evolution. invokedynamic is an example of such an influence. It is used extensively in JRuby and Nashorn (the new Javascript implementation on the JVM). The JVM is shaping up to be an even better host than when Rich Hickey chose to target it.

About Ghadi Shayban

Twitter - Github

Ghadi Shayban is an accomplished pianist. Check out this and this.

This post is one of a series called Pre-conj Prep.

You may like the Newsletter

For more inspiration, history, interviews, and trends of interest to functional programmers, get the free Newsletter.

Learn More

Clojure pulls in ideas from many different languages and paradigms, and also from the broader world, including music and philosophy. The Newsletter shares that vision and weaves a rich tapestry of ideas from the daily flow of library releases to the deep historical roots of computer science.

Clojure/conj is a conference organized and hosted by Cognitect. This information is in no way official. It is not sponsored by nor affiliated with Clojure/conj or Cognitect. It is simply me curating and organizing public information about the conference.

You might also like