Page 1
JRuby“Explorando um Mundo de Possibilidades”
Mateus e Paulo Igor
[email protected]
Page 2
JRuby“Explorando um Mundo de Possibilidades”
@mateuslinharese
@pigodinho
[email protected]
Page 4
http://idopter.com
[email protected]
Page 5
http://idopter.com
[email protected]
Page 6
http://idopter.com
[email protected]
Page 7
http://idopter.com
[email protected]
Page 8
http://idopter.com http://lancelote.com
[email protected]
Page 9
Fim do “Merchan”
[email protected]
Page 10
Objetivo da palestra
Compartilhar nosso estudos!
[email protected]
Page 11
O que é o JRuby?
JAVA + RUBY?
[email protected]
Page 12
“…é uma implementação da linguagem Ruby em Java”
[email protected]
Page 13
“…é uma implementação da linguagem Ruby em Java”
[email protected]
Page 14
História
• criado em 2001 por Jan Arne Petersen• Core Team 2008– Liderados por Charles Nutter
• JRuby 1.1 – JIT e AOT compilation (Ruby 1.8.7)• 2009 Core Team vai para Engine Yard
[email protected]
Page 15
História
• 0.9 (2006) – suporte ao Rails• 1.1 (2008) – Melhoria de performance com JIT e AOT• 1.1.4 (2009) – suporte ao Ruby 1.9• 1.2.0 (2009) – compilador JIT para Ruby 1.9 e o projeto
Ruboto (suporte para Android)• 1.3.0 (2009) – JRuby no GAE/J• 1.4.0 (2009) – suporte nativo para o Windows• 1.5.0 (2010) – suporte nativo para UNIX-based, libs
padrões para o Rake-Ant, RubyGems e RSpec• 1.6.0 (2011) – Ruby 1.9.2
[email protected]
Page 16
[email protected]
boring…boring…
Page 18
JSR-292
[email protected]
Invokedynamic(projeto Da Vinci Machine)
Invokedynamic(projeto Da Vinci Machine)
Page 19
JSR-292
[email protected]
http://www.infoq.com/br/articles/invokedynamic
http://www.infoq.com/br/articles/invokedynamic
Page 21
Porque JRuby?
[email protected]
Page 22
Palavras de Charles Nutter
http://www.slideshare.net/CharlesNutter/rubyconf-brazil-2010-
jruby
[email protected]
Page 23
Se você…
…quer ou precisa rodar na JVM…
…JRuby é a resposta!
[email protected]
Page 24
Se você…
…precisa usar uma lib java…
…JRuby é a resposta!
[email protected]
Page 25
Se você…
…quer o melhor GC do mundo…
…JRuby é a resposta!
[email protected]
Page 26
Se você…
…odeia lidar com libs nativas…
…JRuby é a resposta!
[email protected]
Page 27
Se você…
…precisa desenvolver ou “deployar” em qualquer OS/plataforma que
seja…
…JRuby é a resposta!
[email protected]
Page 28
Se você…
…quer integrar com outras linguagens como Clojure, Scala,
Mirah…
…JRuby é a resposta!
[email protected]
Page 29
Se você…
…quer um Ruby melhor…
…JRuby é a resposta!
[email protected]
Page 30
Se você…
…quer um Ruby melhor…
…JRuby é a resposta!
[email protected]
Page 31
O melhor dos dois mundos
• Java(JVM) oferece– GC eficiente– Green Threading
[email protected]
Page 32
O melhor dos dois mundos
• Java(JVM) oferece– GC eficiente– Green Threading– Portabilidade– Grande Legado
[email protected]
Page 33
O melhor dos dois mundos
• Ruby oferece– Tipagem dinâmica– Orientação a Objetos– Classes abertas– Metaprogramação
[email protected]
Page 34
Let’s do it!
• Instalando JRuby• Hello World• Exemplos• Exemplos• Exemplos• …
[email protected]
Page 35
Instalando o JRuby
[email protected]
Page 36
[email protected]
http://jruby.org
Page 37
[email protected]
http://jruby.org/getting-started
Page 38
…pra dar sorte!
“Hello World”
[email protected]
Page 39
…pra dar sorte!
“Hello World”
[email protected]
Page 40
Quais são as possibilidades?
Exemplos, Exemplos, Exemplos, …
[email protected]
Page 41
Classes Java no JRuby
require ‘java’
[email protected]
Page 42
Java no JRuby
[email protected]
Page 43
Java no JRuby
[email protected]
usando classes Java
Page 44
[email protected]
usando classes Java
Importando a classe Java classe Java
Page 45
Java : java.lang.System
JRuby: Java::JavaLang::System
[email protected]
Page 46
Pacotes Java no JRuby
[email protected]
Módulo JavaSocket
Page 47
Pacotes Java no JRuby
[email protected]
Page 48
[email protected]
Referência ao módulo
Page 49
[email protected]
Usando interface java
Page 50
[email protected]
Usando as classes java
Page 51
JRuby Socket
jruby-lab/examples/socket_example
[email protected]
Page 52
MySQL com JRuby usando JDBC
jruby-lab/examples/mysql-jdbc
[email protected]
Page 53
[email protected]
Usando .JAR
Page 54
Java Swing com JRuby
jruby-lab/examples/jruby-swing
[email protected]
Page 55
Rails e JRuby
[email protected]
Page 56
JRuby no Toncat/JBoss/Glassfish
[email protected]
Page 57
JRuby e JMS
[email protected]
Page 58
Rspec e Java
jruby-lab/examples/testing-java-with-jruby
[email protected]
Page 59
E o que mais?
[email protected]
Page 60
Projeto Ruboto
JRuby is everywhere!
[email protected]
Page 61
Projeto Ruboto
[email protected]
=>
Page 62
Projeto Ruboto
[email protected]
=>
Page 63
Projeto Ruboto
[email protected]
Page 64
E o que mais?
[email protected]
Page 65
JRuby no Google App Engine
[email protected]
Page 66
…quer mais?
[email protected]
Page 67
quer mais?
[email protected]
Page 68
Referências e Dicas
Jruby-Lab
[email protected]
Page 70
[email protected]
• Exemplos• Referências– Artigos– Wiki– Apresentações– Blog– Twitter
Page 71
https://github.com/pigor/jruby-lab
[email protected]
Page 73
[email protected]
http://groups.google.com/group/guru-pa
Page 74
Obrigado!!!
@mateuslinhares e @pigodinho{mateus, pigor}@idopter.com
[email protected]
Page 75
JRuby“Explorando um Mundo de Possibilidades”
@mateuslinharese
@pigodinho
[email protected]