JRuby is one of the most interesting and famous implementations of Ruby, for several reasons: It runs on the JVM, it runs really quickly, it interacts with Java libraries and objects, it integrates with the entire Java ecosystem of tools, and it solves the concurrency problems that the standard (MRI) interpreter has. Recently, the JRuby team released a version that is compatible with Ruby 2.2, which raises the question — what does the future hold for JRuby? What are the plans on the Ruby front, and the JVM front? In this talk, JRuby developers Charles Nutter and Tom Enebo describe the current state of affairs, and where we’re headed in the JRuby world.
Yesterday’s talk was about the creation of the JVM, and what design considerations went into that process. The JVM is no longer just for Java, and that raises a number of issues that the original JVM implementation never had to think about. In particular, there are a number of JVM-based languages for which the JVM version isn’t the sole or even main version — such as Jython (Python) and JRuby (Ruby). In this talk, Mark Stoodley describes the work that IBM has done to improve JVM performance for alternative languages.
The Java Virtual Machine (JVM) is an open-source virtual machine used by Java (obviously), and a growing number of other languages. How is the JVM built? What were the design choices that went into its creation, evolution, and maintenance? How do these design choices affect programs running on the JVM? In this fast-paced talk by Cliff Click, we learn what considerations went into the creation of the JVM. Given how many modern languages run within a virtual machine, hearing about the design decisions that went into the creation of one of the most popular modern VMs is especially interesting.
Jython is a version of Python that runs on the JVM. The Jython project recently celebrated release 2.7, which is compatible with Python 2.7. What are the aims of the Jython project, and who uses it? What obstacles did the Jython developers have to deal with on the way to this release? And what new features does the new version include? In this talk, Jython committer Jim Baker helps to answer these questions, describing how Jython is good for the Python and Java development communities.
Functional programming is an old way of thinking about programming — but it is also making a huge comeback, thanks to a combination of expressiveness, readability, and ease of debugging. In this talk, Venkat Subramaniam describes how functional programming can make our lives easier, and the ways in which developers — including Java developers — can include this way of thinking into their work.
Scala is a language, built on the JVM, that has both functional and object-oriented properties. It has become quite popular among many developers who want to keep using the JVM, but want a more modern, expressive language than Java. (Although there are definitely indications that the latest version of Java included some functional aspects in part because of Scala’s influence.) In this talk, Ted Neward describes Scala’s approach to development in terms that can (should!) help Java developers to understand and embrace Scala.
JRuby is a version of Ruby that runs on the JVM. JRuby has long been praised by Rubyists for its speed and abilities, but its compatibility with the standard (“MRI”) version of Ruby has been somewhat lacking. This talk, by JRuby developers Charles Nutter and Thomas Enebo, describes some of the major updates and improvements in the latest version of JRuby, which may convince even more Rubyists to switch.
Programmers in such languages as Lisp, Ruby, JavaScript, and Python have long enjoyed functional programming techniques, as well as lambda expressions. Java 8 introduces lambda expressions into the language; in this talk, Venkat Subramaniam demonstrates how these can be useful, and why Java developers would be wise to adopt them.
Many modern languages are garbage-collected. How does a garbage collector work? In this lecture, Jonathan Shewchuk introduces the idea of garbage collection, and different algorithms that a programming language can employ to accomplish this.
Why are dynamic languages increasingly popular? What advantages do they have over statically compiled languages? Steve Yegge‘s talk on this subject is a great introduction to these ideas.