45
Ola Bini computational metalinguist [email protected] http://olabini.com/blog JRuby for the Win fredag, 2009 oktober 02

JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Ola Binicomputational metalinguist

[email protected]://olabini.com/blog

JRuby for the Win

fredag, 2009 oktober 02

Page 2: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

fredag, 2009 oktober 02

Page 3: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

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

fredag, 2009 oktober 02

Page 4: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win 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

Page 5: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. 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

Page 6: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Github

Kenai

IRC

~ 8 core developers

The project

fredag, 2009 oktober 02

Page 7: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. 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

Page 8: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. 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

Page 9: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Simple JRuby

fredag, 2009 oktober 02

Page 10: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. 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

Page 11: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Areas of usage

fredag, 2009 oktober 02

Page 12: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

JtestR

Cucumber

Case: Ioke

Testing other code

fredag, 2009 oktober 02

Page 13: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Swing

MonkeyBars

Profligacy

Builders (Cheri)

SWT

Glimmer

Cool graphics

JMonkeyEngine + JRuby

ruby-processing

Swiby

Desktop applications

fredag, 2009 oktober 02

Page 14: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Cool graphics

fredag, 2009 oktober 02

Page 15: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Web

fredag, 2009 oktober 02

Page 16: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Mobile

fredag, 2009 oktober 02

Page 17: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Scripting

fredag, 2009 oktober 02

Page 18: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Rubiq

Duby

Surinx

Language development

fredag, 2009 oktober 02

Page 19: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Tools

fredag, 2009 oktober 02

Page 20: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Products

fredag, 2009 oktober 02

Page 21: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Changes to Ruby

fredag, 2009 oktober 02

Page 22: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Patterns

fredag, 2009 oktober 02

Page 23: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Ruby as usual

fredag, 2009 oktober 02

Page 24: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Deployment

fredag, 2009 oktober 02

Page 25: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Wrap some Java

fredag, 2009 oktober 02

Page 26: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Mixed

fredag, 2009 oktober 02

Page 27: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Scripting

fredag, 2009 oktober 02

Page 28: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Polyglot

fredag, 2009 oktober 02

Page 29: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

The JVM

fredag, 2009 oktober 02

Page 30: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Other JVM langs

fredag, 2009 oktober 02

Page 31: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Scala

fredag, 2009 oktober 02

Page 32: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Jython

fredag, 2009 oktober 02

Page 33: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Clojure

fredag, 2009 oktober 02

Page 34: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Clojure+Ruby

fredag, 2009 oktober 02

Page 35: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Groovy

fredag, 2009 oktober 02

Page 36: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Erlang

fredag, 2009 oktober 02

Page 37: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Erlang+Ruby

fredag, 2009 oktober 02

Page 38: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Rhino

fredag, 2009 oktober 02

Page 39: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

BSF/javax.scripting

fredag, 2009 oktober 02

Page 40: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Outside the JVM

fredag, 2009 oktober 02

Page 41: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

FFI

fredag, 2009 oktober 02

Page 42: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

C

fredag, 2009 oktober 02

Page 43: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Haskell

fredag, 2009 oktober 02

Page 44: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Haskell+Ruby

fredag, 2009 oktober 02

Page 45: JRuby for the Win - jaoo.dkjaoo.dk/dl/ruby-london-2009/slides/OlaBini_JRubyForTheWin.pdf · JRuby for the Win fredag, 2009 oktober 02. fredag, 2009 oktober 02. どうも 有り難う

Questions?

fredag, 2009 oktober 02