JRuby Now and Future Charles Oliver Nutter JRuby Guy Sun Microsystems



Similar documents
Ruby on Rails in GlassFish Sun Microsystems

JRuby Power on the JVM. Ola Bini JRuby Core Developer ThoughtWorks

GlassFish v3. Building an ex tensible modular Java EE application server. Jerome Dochez and Ludovic Champenois Sun Microsystems, Inc.

BEST WEB PROGRAMMING LANGUAGES TO LEARN ON YOUR OWN TIME

Netbeans 6.0. José Maria Silveira Neto. Sun Campus Ambassador

PHP vs. Java. In this paper, I am not discussing following two issues since each is currently hotly debated in various communities:

Effective Java Programming. efficient software development

Pete Helgren Ruby On Rails on i

Symfony2 and Drupal. Why to talk about Symfony2 framework?

What s Cool in the SAP JVM (CON3243)

1. Overview of the Java Language

An Oracle White Paper May Ready for Business: Oracle GlassFish Server

CSCI E 98: Managed Environments for the Execution of Programs

Java ME & NetBeans Mobility. Petr Suchomel Architect, NetBeans Mobility Sun Microsystems

Chapter 13 Computer Programs and Programming Languages. Discovering Computers Your Interactive Guide to the Digital World

Triple-E class Continuous Delivery

Continuous integration with Jenkins CI

Developing Web Services with Eclipse and Open Source. Claire Rogers Developer Resources and Partner Enablement, HP February, 2004

The Other mod_rails: Easy Rails Deployment with JRuby. Nick Sieger Sun Microsystems, Inc

MagDiSoft Web Solutions Office No. 102, Bramha Majestic, NIBM Road Kondhwa, Pune Tel: /

<Insert Picture Here> What's New in NetBeans IDE 7.2

What Is NetBeans? Free and open-source based > Open source since June, 2000 > Large community of users and developers

RED HAT SOFTWARE COLLECTIONS BRIDGING DEVELOPMENT AGILITY AND PRODUCTION STABILITY

Java Application Development using Eclipse. Jezz Kelway Java Technology Centre, z/os Service IBM Hursley Park Labs, United Kingdom

Liferay Portal Performance. Benchmark Study of Liferay Portal Enterprise Edition

General Introduction

Ruby on Rails. a high-productivity web application framework. blog.curthibbs.us/ Curt Hibbs <curt@hibbs.com>

Interpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters

Practical Android Projects Lucas Jordan Pieter Greyling

Chapter 13: Program Development and Programming Languages

Main Bullet #1 Main Bullet #2 Main Bullet #3

FROM BANNER 8 TO BANNER XE. What s the story?

NetBeans: Universal Tool for Java Development and More. Roman Štrobl Technology Evangelist

Installing Ruby on Windows XP

Extending Tizen Native Framework with Node.js

<Insert Picture Here> Java, the language for the future

Parrot in a Nutshell. Dan Sugalski dan@sidhe.org. Parrot in a nutshell 1

Jonathan Worthington Scarborough Linux User Group

WEBLOGIC ADMINISTRATION

Learning GlassFish for Tomcat Users

JAVA IN THE CLOUD PAAS PLATFORM IN COMPARISON

<Insert Picture Here> GlassFish v3 - A Taste of a Next Generation Application Server

rich mobile applications made easy

Ruby on Rails is a web application framework written in Ruby, a dynamically typed programming language The amazing productivity claims of Rails is

Kohsuke Kawaguchi Sun Microsystems, Inc. hk2.dev.java.net, glassfish.dev.java.net. Session ID

Language Based Virtual Machines... or why speed matters. by Lars Bak, Google Inc

Evolution of the Major Programming Languages

The NetBeans TM Ruby IDE: You Thought Rails Development Was Fun Before

Application Testing Suite: A fully Java-based software testing platform for testing Oracle E-Business Suite and other web applications

Advanced compiler construction. General course information. Teacher & assistant. Course goals. Evaluation. Grading scheme. Michel Schinz

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

COS 333: Advanced Programming Techniques

Java Mission Control

Glassfish Architecture.

RIA Technologies Comparison

OpenMake Dynamic DevOps Suite 7.5 Road Map. Feature review for Mojo, Meister, CloudBuilder and Deploy+

Fahim Uddin 1. Java SDK

Agile Development with Groovy and Grails. Christopher M. Judd. President/Consultant Judd Solutions, LLC

White Paper. Java versus Ruby Frameworks in Practice STATE OF THE ART SOFTWARE DEVELOPMENT 1

Java Embedded Applications

Deployment patterns for Fusion Middleware. a best practice session by Simon Haslam & Jacco H. Landlust

Using jvmstat and visualgc to Solve Memory Management Problems

Habanero Extreme Scale Software Research Project

design coding monitoring deployment Java Web Framework for the Efficient Development of Enterprise Web Applications

Tuning Your GlassFish Performance Tips. Deep Singh Enterprise Java Performance Team Sun Microsystems, Inc.

NXTware Remote. Advanced Development and Maintenance Environment for OpenVMS and other Strategic Platforms

An Easier Way for Cross-Platform Data Acquisition Application Development

Google Web Toolkit. Introduction to GWT Development. Ilkka Rinne & Sampo Savolainen / Spatineo Oy

Cross Platform Software Release Capabilities

Glassfish, JAVA EE, Servlets, JSP, EJB

Java Monitoring. Stuff You Can Get For Free (And Stuff You Can t) Paul Jasek Sales Engineer

ORACLE DATA SHEET KEY FEATURES AND BENEFITS ORACLE WEBLOGIC SERVER STANDARD EDITION

TDA - Thread Dump Analyzer

Rakudo Perl 6 on the JVM. Jonathan Worthington

JAVA WEB START OVERVIEW

Introduction to Oracle Mobile Application Framework Raghu Srinivasan, Director Development Mobile and Cloud Development Tools Oracle

Azure Day Application Development

ON-PREMISE OR IN THE CLOUD, A SINGLE JAVA EE APPLICATION PLATFORM

Java EE 6 development with Eclipse, Netbeans, IntelliJ and GlassFish. Ludovic Champenois Oracle Corporation

Write Once, Run Anywhere Pat McDonough

Zulu by Azul OpenJDK for Azure

The Learn-Verified Full Stack Web Development Program

Integrating TAU With Eclipse: A Performance Analysis System in an Integrated Development Environment

ANDROID DEVELOPER TOOLS TRAINING GTC Sébastien Dominé, NVIDIA

Glassbox: Open Source and Automated Application Troubleshooting. Ron Bodkin Glassbox Project Leader

OpenText Information Hub (ihub) 3.1 and 3.1.1

9/11/15. What is Programming? CSCI 209: Software Development. Discussion: What Is Good Software? Characteristics of Good Software?

CS 4240: Principles of Software Design. Course Introduction. Tom Horton

How To Create A C++ Web Service

Mobile Development Frameworks Overview. Understand the pros and cons of using different mobile development frameworks for mobile projects.

WEBAPP PATTERN FOR APACHE TOMCAT - USER GUIDE

GUI and Web Programming

An Introduction to Software Development Process and Collaborative Work

Achieving High Throughput. Fernando Castano Sun Microsystems

Transcription:

JRuby Now and Future Charles Oliver Nutter JRuby Guy Sun Microsystems 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/). 1

Agenda JRuby now > Swing programming > Tools and IDE support > Graphics and applets > Web applications JRuby future > Ruby 1.9 > Performance > Da Vinci Machine > Other languages 2

Who Am I Charles Oliver Nutter Longtime Java developer (12+ yrs) Engineer at Sun Microsystems for 1 yr Full-time JRuby developer Also working on JVM dynlang support Wide range of past experience > C, C++, C#, Python, Delphi, Lisp, Scheme > Java EE and ME, WS 3

JRuby Java implementation of Ruby language > It's just Ruby! Started in 2002, open source, many contributors > Tom Enebo, Ola Bini, Marcin Mielzynsky, Nick Sieger, Vladimir Sizikov, MenTaLguY Aiming for compatibility with current Ruby version > Ruby 1.8.6 patchlevel 111 (114 was just released) Improvements on Ruby > Native threading, better performance, many libraries 4

JRuby 1.1.2 Now Maintenance release for 1.1 Excellent improvements > Drastically reduce raw startup time > YAML symbol parsing >100x faster than 1.1.1 > Performance, threading, stack improvements for calls > Several nested backref problems fixed > Bad data race in regexp cache fixed > Many BigDecimal issues fixed > 95 bugs fixed since 1.1.1 5

Where is JRuby today? Tooling for IDEs > JRuby's parser enables NetBeans, Eclipse, IntelliJ Swing GUI development > Makes Swing much nicer to use, easier to handle Graphics > Ruby + graphics = cool demos JRuby on Rails > Better deployment options, better performance 6

JRuby Enables Tooling JRuby's parser used by most Ruby IDEs > NetBeans Ruby Support > Eclipse RDT/RadRails/Aptana, DLTK, 3 rd Rail > IntelliJ (not parser, but other areas) > Jedit NetBeans is the best right now 7

Swing GUI Programming Swing API is very large, complex > Ruby magic simplifies most of the tricky bits Java is a very verbose language > Ruby makes Swing actually fun No consistent cross-platform GUI library for Ruby > Swing works everywhere Java does (everywhere) No fire-and-forget execution > No dependencies: any script works on any JRuby install 8

Swing Options Cheri - cheri.rubyforge.org > Builder-like DSL syntax Profligacy - ihate.rubyforge.org/profligacy > Rubified layout expression language > Trivial event binding without listeners MonkeyBars - monkeybars.rubyforge.org > Leverage GUI builders > MVC structure 9

DEMO Swing in Ruby 10

Graphics Processing is an open source programming language and environment for people who want to program images, animation, and interactions. > Basically a cool Java library for 2D graphics Ruby-Processing wraps Processing with JRuby > Cool, rubified 2D graphics environment for you > Eye-candy demos for us > Thanks to Jeremy Ashkenas for putting these together 11

DEMO A Face for Stephen Hawking 12

Web applications Classic Java web dev is too complicated > Modern frameworks follow Rails' lead Over-flexible, over-configured > Conventions trump repetition and configuration Rails deployment is still a pain > You shouldn't need N processes! Rails performance should be better > JRuby has potential to be much faster 13

JRuby on Rails on GlassFish Java app server deployment (WAR files) > N apps > N' concurrent requests > N'' database connections > 1 process Plus full-site management, monitoring, profiling, debugging... Designed to scale up and out >...but at a cost of some agility Political standard > Meet them halfway! 14

DEMO JRuby on Rails 15

GlassFish Gem Agile development > CLI support, dev time server, no build/deploy Simple to use > One-shot execution, both prod and dev Scaling, both technical and logistical > Single process for all apps and requests Ruby friendly > gem install and go! 16

DEMO GlassFish Gem 17

Production JRuby on Rails CSI's Disease Surveillance System > www.govtech.com/gt/323349 Oracle's Mix digg-like social customer site > mix.oracle.com Sun's MediaCast file distribution portal > mediacast.sun.com ThoughtWorks' Mingle collaborative project mgmt > mingle.thoughtworks.com More on the way! 18

JRuby Future: 1.1.3 Soon 30% faster interpreter Multiple compiled perf improvements Non-local flow perf fix (break, return, etc in block) Dozens more bug fixes Several Rails-related bottlenecks removed Shared or reduced memory AST (hopefully!) RubyGems 1.2 included 19

JRuby Future: Ruby 1.9 JRuby will support both 1.8 and 1.9 > Flag to switch versions > Maybe flags to switch individual features Wait and see approach > Waiting for 1.9 adoption, demand > 1.9 is still a work in progress 'jruby --1.9' turns on 1.9 features > Only a few: Fiber, proc -> Proc.new, etc > Eventually full 1.9 support 20

DEMO JRuby 1.9 Support 21

JRuby Future: Performance JRuby competes on two fronts > Against other Ruby impls > Against other JVM languages JVM is a perfect host for languages > Strong static-language backing for Java > Strong dynamic-language backing from Smalltalk We can be fast now, faster in the future > Every JVM release is 15-30% faster > Want to run faster? Upgrade! 22

DEMO JRuby Performance 23

JRuby Future: Da Vinci Machine http://openjdk.java.net/projects/mlvm/ OpenJDK Multi-language VM Feature testbed for future JDKs Anonymous classloading (prototype working) Lightweight method handles (prototype almost done?) Optimized dynamic invocation (waiting on handles) Continuations (proof-of-concept working, prototype coming) Tail call optimizations (under research) Tuples <YOUR FEATURE HERE> Crazy cool stuff! 24

JRuby Future: Other Languages Many common goals and challenges > Why keep reinventing the wheel? We're all growing the platform > We want the Java platform to succeed > We're working hard to make sure it does We're all extending the platform > Challenges are opportunities > The platform isn't perfect, but it's Open > It's up to you and us 25

JVM Languages Group Google for jvm languages group Implementers from most JVM languages Discussions on parsing, compiling, threads, more Sharing information, ideas Discussing future plans for languages and JVM Great fun to read, participate > Even if you're not a language person! 26

JVM Language Runtime DLR-inspired, just getting started Gathering the best libraries together Provide a fast track for implementation > You might make a language someday Solve the hard problems once > You might hate making a language some day The pieces are already out there! 27

Thank you! JRuby - www.jruby.org > wiki.jruby.org GlassFish - glassfish.dev.java.net > gem install glassfish > Looking for bug reports, feature requests! NetBeans - www.netbeans.org > Try it out, send feedback! Ruby-processing (google it) Charlie's blog: headius.blogspot.com 28