JRuby It's What's For Dinner

Slides:



Advertisements
Similar presentations
1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
Advertisements

® IBM Software Group © 2010 IBM Corporation What’s New in Profiling & Code Coverage RAD V8 April 21, 2011 Kathy Chan
The road to reliable, autonomous distributed systems
28/1/2001 Seminar in Databases in the Internet Environment Introduction to J ava S erver P ages technology by Naomi Chen.
Andrea Camesi, Jarle Hulaas Software Engineering Laboratory Swiss Federal Institute of Technology in Lausanne (EPFL) Switzerland.
J2EE Java 2 Enterprise Edition. Relevant Topics in The Java Tutorial Topic Web Page JDBC orial/jdbc
Java Server Team 8. Overview What is a Java Server? History Architecture Advantages Disadvantages Current Technologies Conclusion.
L EC. 01: J AVA FUNDAMENTALS Fall Java Programming.
Java Server Pages (JSP) Presented by: Ananth Prasad & Alex Ivanov May 10, 2001.
JAVA v.s. C++ Programming Language Comparison By LI LU SAMMY CHU By LI LU SAMMY CHU.
Applets & Servlets.
Introduction to Java Server Pages (JSPs) Robert Thornton.
Java Root IO Part of the FreeHEP Java Library Tony Johnson Mark Dönszelmann
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
EMSOFT’02 Silicomp Research Institute JCOD 1 JCOD A Lightweight Modular Compilation Technology For Embedded Java Bertrand Delsart :
What Is Java? According to Sun in a white paper: Java: A simple, object-oriented, network-savvy, interpreted, robust, secure, architecture-neutral, portable,
We will talking about story of JAVA language. By Kristsada Songpartom.
Ruby on Java Luc Castera
Copyright © Mohamed Nuzrath Java Programming :: Syllabus & Chapters :: Prepared & Presented By :: Mohamed Nuzrath [ Major In Programming ] NCC Programme.
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
A Pure Java Implementation of Soar Dave Ray
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
introductory lecture on java programming
Bayu Priyambadha, S.Kom. Static content  Web Server delivers contents of a file (html) 1. Browser sends request to Web Server 3. Web Server sends HTML.
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
1 JRuby Now and Future Charles Oliver Nutter JRuby Guy Sun Microsystems Except where otherwise noted, the content of this presentation is licensed under.
1 Charles Nutter Thomas Enebo JRuby: Not Just Another Ruby Impl Except where otherwise noted, the content of this presentation is licensed under the Creative.
Presentation Title Up to Three Lines Long Arial 28pt Name, 26pt Speaker Company, 18pt Misc. Info, 16pt Speaker logo centered below photo.
GlassFish Workshop 1 Dynamic Languages in GlassFish Arun Gupta blogs.sun.com/arungupta.
1 Charles Oliver Nutter Thomas Enebo Tor Norbye Martin Krauskopf JRuby: Understanding the Fuss Except where otherwise noted, the content of this presentation.
Copyright (c) JNode.org g JNode a modern Java operating system JNode.org Ewout Prangsma.
1 Sun Microsystems, Ruby, and JRuby Charles Oliver Nutter Senior Staff Engineer Sun Microsystems Except where otherwise noted, the content of this presentation.
Chapter 13 Web Application Infrastructure
Computer System Structures
CS122B: Projects in Databases and Web Applications Winter 2017
Applications Active Web Documents Active Web Documents.
Introduction to Xamarin C# Everywhere
COMP 2100 From Python to Java
.NET Native & CoreRT.
GraalVM Scott Lynn Director of Product Strategy, Oracle Linux
Interpreted languages Jakub Yaghob
Done By: Ashlee Lizarraga Ricky Usher Jacinto Roches Eli Gomez
Platform as a Service.
JRuby Charles Oliver Nutter
JRuby on Rails Charles Oliver Nutter JRuby Core Developer
The plan What's JRuby? The Ruby language Why JRuby? How to use it
Longtime Java developer More recent Ruby developer
JRuby: Up and Running! Charles Oliver Nutter and Thomas Enebo
Introduction Enosis Learning.
Ruby, Rails, GUIs, and More
JRuby: Ruby for the Java Platform
JRuby State of the Art! Except where otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution-Share Alike 3.0.
Scripting Java with JRuby
Flight Recorder in OpenJDK
Design Process for Architecture
Introduction Enosis Learning.
CS122B: Projects in Databases and Web Applications Winter 2018
Introduction to .NET By : Mr. V. D. Panchal Content :
Google App Engine Ying Zou 01/24/2016.
Design Process for Architecture
.Net Framework Details Imran Rashid CTO at ManiWeber Technologies.
(Computer fundamental Lab)
Java History, Editions, Version Features
By Rajanikanth B Overview Of Java By Rajanikanth B
Introducing Java.
FEATURES OF PYTHON.
Design Process for Architecture
Plug-In Architecture Pattern
Just In Time Compilation
Presentation transcript:

JRuby It's What's For Dinner Except where otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution-Share Alike 3.0 United States License (http://creativecommons.org/licenses/by-sa/3.0/us/).

Agenda Another year of JRuby The JVM: pragmatically awesome 1.9 support King Pong Best deployment evar FFI = compatible C library access All that other Java stuff Getting going, getting involved

The JRuby Guys Tom Enebo and Charles Oliver Nutter 4-6 years as JRuby devs 2 years as JRuby devs at Sun Microsystems 12+ years as Java devs Working from home (Minneapolis area) Conference junkies

Another Year of JRuby Compiler finished Fall 2007 JRuby 1.1 RC cycle Winter 2008 1.1.5 is current release (this week!) 113 bugs fixed in 1.1.5, 1552 since last year 411 revisions in 1.1.5, 3141 since last year Compatibility with 1.8.6 is “done” Performance is great, always improving 1.9 support, better Java interop on the way

The JVM: Pragmatically Awesome OpenJDK (Hotspot) Estimated 500 man-years Legendary performance, GC (“faster than C++”) Native JIT, profiled code inlining Extremely stable, secure A dynamic VM under the covers Pervasive: you all probably have it Why fight it? Why build new?

JRuby and the JVM AST (interpreter) App code Java calls JRuby Runtime Parser Ruby stdlib Compiler Core classes (String, etc) Precompiled code .class loading Bytecode Java calls

Ruby 1.9 Support Some libraries done, some coming soon Parser support “real soon now” M17N bits coming along Bytecode engine prototype (not needed?) 1.8.6 and 1.9.1 support in same binary Hasn't taken very long; done by Christmas DEMO

Use it if you choose it Java libraries can be trivially accessed A million Java libraries to choose from Ability to integrate with legacy “Java” Cross-platform solution

Demo: King Pong JMonkeyEngine: 3D Scenegraph library OpenGL, Used Commercially

Best Deployment Evar! New GlassFish gem release 0.9.0 3.9MB production web app server Single-process deployment, across cores Any web framework Simplest deployment possible: gem install glassfish glassfish <app dir> There is no step three DEMO

The Holy Grail JRuby uses real native threads Rails 2.2 “thread safety” is a big deal One JRuby instance Reduced warm-up time Reduced memory

The “Lame” Test Simple 1 controller, 1 model, 1 view app Send 1000 reqs with concurrency 10 (ab) GlassFish v2

FFI Foreign Function Interface Call C functions directly from Ruby Portable, unlike extensions Most extensions just wrap a library Started in Rubinius JRuby added support in 1.1.4 JRuby team: Ruby FFI gem gem install ffi This man did not use FFI. He wrote a C extension instead.

require 'ffi' module POSIX extend FFI::Library # not usually necessary since libc is always linked ffi_lib 'c' attach_function :getuid, :getuid, [], :uint attach_function :getpid, :getpid, [], :uint end puts "Process #{POSIX.getpid}, user #{POSIX.getuid}"

Java what? Servlets Use Rack + Warbler EE components (EJB, JMS ...) GlassFish built-in Ruby support Mobile, embedded Definitely possible; nobody working on it “Normal” Java type definition Planned; lack of class declarations complicates

Users Speak Customers already have Java App Servers Java libraries fill a void in Ruby (Swing) Cross Platform (especially Windows) Code obfuscation (AOT) Odd platform (AS400) Speed

Get Involved! www.jruby.org wiki.jruby.org #jruby on FreeNode IRC charles.nutter@sun.com, headius (Twitter) thomas.enebo@sun.com, tom_enebo (Twitter)