FOSDEM is the biggest free and non-commercial event organized by and for the community. Its goal is to provide Free and Open Source developers a place to meet. No registration necessary.

Hannes Wallnöfer
Day Sunday
Room AW1.125
Capacity 76
Start time 15:30
End time 16:00
Duration 00:30
Track Free Java devroom

Rhino and RingoJS

Server-side JavaScript on the JVM

JavaScript used to be a despised programming language for animating web pages. But as browsers have grown up, so has the little language that came with them. And as people discover JavaScript as a simple, dynamic, functional language, the tendency to use the language outside the browser is on the rise.

Java has had a solid, open source JavaScript implementation with Mozilla Rhino for many years. However, JavaScript lacks basic concepts like code modules or a standard library. This is where RingoJS comes in. RingoJS adds a number of features to Rhino that make it suitable for real-world, large-scale application development:

  • A fast, auto-reloading, and CommonJS-compliant module loader.
  • A rich set of modules covering I/O, logging, persistence, development tools and much more.
  • Scalable HTTP server and client based on the Jetty project.
  • Support for CommonJS packages to install or write additional software components.

One part of my talk will be about how Ringo works by tapping into the great wealth of the open source Java ecosystem. Java integration in Rhino/Ringo is dead simple most of the time, and many of our modules are just thin JavaScript wrappers around Java libraries. Examples range from JavaScript Object-Relational mappers based on JDBC to the JSGI web server interface implemented on top of servlets to the POSIX implementation we were able to borrow from the JRuby project.

Another thing I'd like to talk about is how Rhino interacts with the JVM itself. Generating optimized Java bytecode for a language as dynamic as JavaScript is a big challenge. Optimization and performance tuning is an area where we (naturally) lag behind the big browser JS engines, and one that could potentially benefit a lot from being exposed to the many smart Java hackers at FOSDEM. Another JVM-related topic that is very exciting but also very complex is how Rhino and Ringo interact with the Java security model to (eventually) provide hosting of untrusted code.

Next (up to 3) talks in the same room (AW1.125):

When Event Track
16:00-16:30 AltosUI Free Java
16:30-16:55 Low latency in Gervill and JavaSound Free Java
16:55-17:00 Garbage Collection Free Java