JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby...

Preview:

Citation preview

Ola Binicomputational metalinguist

ola.bini@gmail.comhttp://olabini.com/blog

JRuby for the Win

fredag, 2009 oktober 02

fredag, 2009 oktober 02

どうも有り難うございました

fredag, 2009 oktober 02

From Sweden

Language geek at ThoughtWorks

Experience with C/C++, C#, Java, Ruby, Lisp and many more

JRuby core developer

Creator of the Ioke language

Author of Practical JRuby on Rails (APress)

Creator of/contributor to numerous open source projects

Your host

Member of the JSR 292 EG

fredag, 2009 oktober 02

Implementation of the Ruby language

Java 1.5+

1.8.7 compatible (1.9.2 on the way)

Open Source

Created 2001

Embraces testing (~50,000 tests)

Current version: 1.3.1 (1.4 on the way)

EngineYard

ThoughtWorks

JRuby

fredag, 2009 oktober 02

Github

Kenai

IRC

~ 8 core developers

The project

fredag, 2009 oktober 02

Most compatible alternative implementation

Native threads vs Green threads

No C extensions

No continuations

No fork

ObjectSpace disabled by default

Differences

fredag, 2009 oktober 02

Threading

Unicode

Performance

Memory

Explicit extension API and OO internals

Libraries and legacy systems

Politics

Why JRuby?

fredag, 2009 oktober 02

Simple JRuby

fredag, 2009 oktober 02

Java types == Ruby types

Call methods, construct instances

Static generation of classes

camelCase or snake_case

.getFoo(), setFoo(v) becomes .foo and .foo = v

Interfaces can be implemented

Classes can be inherited from

Implicit closure conversion

Extra added features to Rubyfy Java

Java integration

fredag, 2009 oktober 02

Areas of usage

fredag, 2009 oktober 02

JtestR

Cucumber

Case: Ioke

Testing other code

fredag, 2009 oktober 02

Swing

MonkeyBars

Profligacy

Builders (Cheri)

SWT

Glimmer

Cool graphics

JMonkeyEngine + JRuby

ruby-processing

Swiby

Desktop applications

fredag, 2009 oktober 02

Cool graphics

fredag, 2009 oktober 02

Web

fredag, 2009 oktober 02

Mobile

fredag, 2009 oktober 02

Scripting

fredag, 2009 oktober 02

Rubiq

Duby

Surinx

Language development

fredag, 2009 oktober 02

Tools

fredag, 2009 oktober 02

Products

fredag, 2009 oktober 02

Changes to Ruby

fredag, 2009 oktober 02

Patterns

fredag, 2009 oktober 02

Ruby as usual

fredag, 2009 oktober 02

Deployment

fredag, 2009 oktober 02

Wrap some Java

fredag, 2009 oktober 02

Mixed

fredag, 2009 oktober 02

Scripting

fredag, 2009 oktober 02

Polyglot

fredag, 2009 oktober 02

The JVM

fredag, 2009 oktober 02

Other JVM langs

fredag, 2009 oktober 02

Scala

fredag, 2009 oktober 02

Jython

fredag, 2009 oktober 02

Clojure

fredag, 2009 oktober 02

Clojure+Ruby

fredag, 2009 oktober 02

Groovy

fredag, 2009 oktober 02

Erlang

fredag, 2009 oktober 02

Erlang+Ruby

fredag, 2009 oktober 02

Rhino

fredag, 2009 oktober 02

BSF/javax.scripting

fredag, 2009 oktober 02

Outside the JVM

fredag, 2009 oktober 02

FFI

fredag, 2009 oktober 02

C

fredag, 2009 oktober 02

Haskell

fredag, 2009 oktober 02

Haskell+Ruby

fredag, 2009 oktober 02

Questions?

fredag, 2009 oktober 02

Recommended