1 JRuby Now and Future Charles Oliver Nutter JRuby Guy Sun Microsystems Except where otherwise noted, the content of this presentation is licensed under.

Slides:



Advertisements
Similar presentations
Introduction to .NET Framework
Advertisements

Sakai on Rails Integrating Ruby and Sakai David Adams, Virginia Tech.
DEV-13: You've Got a Problem, Here’s How to Find It
1 JRuby on Rails GAO ANG Sun Functional Campus Ambassador 1.
1 Classic ASP vs. ASP.NET Technical Information and Market Adoption Lance Welker University of San Diego Dr. Rebman MSIT 526 December 20, 2005.
SM3121 Software Technology Mark Green School of Creative Media.
Understanding and Managing WebSphere V5
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Groovy WHAT IS IT? HOW DOES IT WORK? IS IT USEFUL?
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Lecture 8 – Platform as a Service. Introduction We have discussed the SPI model of Cloud Computing – IaaS – PaaS – SaaS.
Architecture of.NET Framework .NET Framework ٭ Microsoft.NET (pronounced “dot net”) is a software component that runs on the Windows operating.
JRuby: Bringing Ruby to the JVM™ Thomas E. Enebo, Aandtech Inc. Charles Oliver Nutter, Ventera Corp
Introducing Axis2 Eran Chinthaka. Agenda  Introduction and Motivation  The “big picture”  Key Features of Axis2 High Performance XML Processing Model.
What’s new in Stack 3.2 Michael Youngstrom. Disclaimer This IS a presentation – So sit back and relax Please ask questions.
Programming Fundamentals 2: Background/ F II Objectives – –give a non-technical overview of Java Semester 2, Background.
Java Root IO Part of the FreeHEP Java Library Tony Johnson Mark Dönszelmann
ArcGIS Server for Administrators
Getting started with Programming using IDE. JAVA JAVA IS A PROGRAMMING LANGUAGE AND A PLATFORM. IT CAN BE USED TO DELIVER AND RUN HIGHLY INTERACTIVE DYNAMIC.
PROGRAMMING LANGUAGES FOR WHEN USING QUANT ANALYSIS FOR HIGH FREQUENCY TRADING.
A Pure Java Implementation of Soar Dave Ray
Presented By P.SRIVIDYA 085D1A0552 Programming Language.
Visual Mobile Applications with Netbeans 6.0 Your Name Sun Campus Ambassador Your Address.
Web Services with Netbeans 6.0 Your Name Sun Campus Ambassador Your Address.
Visual Mobile Gaming Your Name Sun Campus Ambassador Your Address.
1 JRuby: Up and Running! Charles Oliver Nutter and Thomas Enebo The JRuby Guys Sun Microsystems Except where otherwise noted, the content of this presentation.
1 JRuby Charles Oliver Nutter JRuby Guy Sun Microsystems 1.
Beyond Impossible! How JRuby Evolved the Java Platform Except where otherwise noted, the content of this presentation is licensed under the Creative Commons.
1 NetBeans New and Cool Sun Microsystems, Inc.. 2 Goal of the Talk Learn how NetBeans IDE can help you become more productive Learn about the new features.
GlassFish Workshop 1 Dynamic Languages in GlassFish Arun Gupta blogs.sun.com/arungupta.
Introduction to Algorithm. What is Algorithm? an algorithm is any well-defined computational procedure that takes some value, or set of values, as input.
1 Charles Oliver Nutter Thomas Enebo Tor Norbye Martin Krauskopf JRuby: Understanding the Fuss Except where otherwise noted, the content of this presentation.
JRuby on Rails Presenter Name
JRuby on Rails Brian Leonard ブライアン レオナルド
Visual Web & AJAX with Netbeans 6.0 Your Name Sun Campus Ambassador Your Address.
1 Sun Microsystems, Ruby, and JRuby Charles Oliver Nutter Senior Staff Engineer Sun Microsystems Except where otherwise noted, the content of this presentation.
DecisionSoft Java in the real world DecisionSoft Stephen White 8 th February 2007.
Applications Active Web Documents Active Web Documents.
JRuby: Ready for ACTION!
Done By: Ashlee Lizarraga Ricky Usher Jacinto Roches Eli Gomez
JRuby: Up and Running! Charles Oliver Nutter and Thomas Enebo
DEV-25: You've Got a Problem, Here’s How to Find It
Ruby Tooling in NetBeans
Netbeans 6.0 Your Name Sun Campus Ambassador Your Address.
Platform as a Service.
JRuby Charles Oliver Nutter
JRuby on Rails Charles Oliver Nutter JRuby Core Developer
Longtime Java developer More recent Ruby developer
JRuby It's What's For Dinner
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.
JRuby Charles Oliver Nutter JRuby Guy Sun Microsystems
JRuby: Up and Running! Charles Oliver Nutter and Thomas Enebo
CMPE419 Mobile Application Development
MVC in ASP.NET Core: The new kid on the block
Introduction Enosis Learning.
Optimize Your Java Code By Tools
Google App Engine Ying Zou 01/24/2016.
2/24/2019 6:15 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
and Program Development
(Computer fundamental Lab)
By Rajanikanth B Overview Of Java By Rajanikanth B
Why Threads Are A Bad Idea (for most purposes)
Why Threads Are A Bad Idea (for most purposes)
CMPE419 Mobile Application Development
Yale Digital Conference 2019
Web Application Development Using PHP
Presentation transcript:

1 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 (

2 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

3 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

4 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 patchlevel 111 (114 was just released) Improvements on Ruby > Native threading, better performance, many libraries

5 JRuby Now Maintenance release for 1.1 Excellent improvements > Drastically reduce raw startup time > YAML symbol parsing >100x faster than > 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

6 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

7 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

8 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

9 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

10 DEMO Swing in Ruby

11 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

12 DEMO A Face for Stephen Hawking

13 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

14 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!

15 DEMO JRuby on Rails

16 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!

17 DEMO GlassFish Gem

18 Production JRuby on Rails CSI's Disease Surveillance System > 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!

19 JRuby Future: 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

20 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

21 DEMO JRuby 1.9 Support

22 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!

23 DEMO JRuby Performance

24 JRuby Future: Da Vinci Machine 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 – Crazy cool stuff!

25 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

26 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!

27 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!

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