jruby - explorando um mundo de possibilidades
Post on 12-Nov-2014
1.280 Views
Preview:
DESCRIPTION
TRANSCRIPT
JRuby“Explorando um Mundo de Possibilidades”
Mateus e Paulo Igor
staff@idopter.com
JRuby“Explorando um Mundo de Possibilidades”
@mateuslinharese
@pigodinho
staff@idopter.com
staff@idopter.com
http://idopter.com
staff@idopter.com
http://idopter.com
staff@idopter.com
http://idopter.com
staff@idopter.com
http://idopter.com
staff@idopter.com
http://idopter.com http://lancelote.com
staff@idopter.com
Fim do “Merchan”
staff@idopter.com
Objetivo da palestra
Compartilhar nosso estudos!
staff@idopter.com
O que é o JRuby?
JAVA + RUBY?
staff@idopter.com
“…é uma implementação da linguagem Ruby em Java”
staff@idopter.com
“…é uma implementação da linguagem Ruby em Java”
staff@idopter.com
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
staff@idopter.com
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
staff@idopter.com
staff@idopter.com
boring…boring…
JSR-292
staff@idopter.com
JSR-292
staff@idopter.com
Invokedynamic(projeto Da Vinci Machine)
Invokedynamic(projeto Da Vinci Machine)
JSR-292
staff@idopter.com
http://www.infoq.com/br/articles/invokedynamic
http://www.infoq.com/br/articles/invokedynamic
staff@idopter.com
Porque JRuby?
staff@idopter.com
Palavras de Charles Nutter
http://www.slideshare.net/CharlesNutter/rubyconf-brazil-2010-
jruby
staff@idopter.com
Se você…
…quer ou precisa rodar na JVM…
…JRuby é a resposta!
staff@idopter.com
Se você…
…precisa usar uma lib java…
…JRuby é a resposta!
staff@idopter.com
Se você…
…quer o melhor GC do mundo…
…JRuby é a resposta!
staff@idopter.com
Se você…
…odeia lidar com libs nativas…
…JRuby é a resposta!
staff@idopter.com
Se você…
…precisa desenvolver ou “deployar” em qualquer OS/plataforma que
seja…
…JRuby é a resposta!
staff@idopter.com
Se você…
…quer integrar com outras linguagens como Clojure, Scala,
Mirah…
…JRuby é a resposta!
staff@idopter.com
Se você…
…quer um Ruby melhor…
…JRuby é a resposta!
staff@idopter.com
Se você…
…quer um Ruby melhor…
…JRuby é a resposta!
staff@idopter.com
O melhor dos dois mundos
• Java(JVM) oferece– GC eficiente– Green Threading
staff@idopter.com
O melhor dos dois mundos
• Java(JVM) oferece– GC eficiente– Green Threading– Portabilidade– Grande Legado
staff@idopter.com
O melhor dos dois mundos
• Ruby oferece– Tipagem dinâmica– Orientação a Objetos– Classes abertas– Metaprogramação
staff@idopter.com
Let’s do it!
• Instalando JRuby• Hello World• Exemplos• Exemplos• Exemplos• …
staff@idopter.com
Instalando o JRuby
staff@idopter.com
staff@idopter.com
http://jruby.org
staff@idopter.com
http://jruby.org/getting-started
…pra dar sorte!
“Hello World”
staff@idopter.com
…pra dar sorte!
“Hello World”
staff@idopter.com
Quais são as possibilidades?
Exemplos, Exemplos, Exemplos, …
staff@idopter.com
Classes Java no JRuby
require ‘java’
staff@idopter.com
Java no JRuby
staff@idopter.com
Java no JRuby
staff@idopter.com
usando classes Java
staff@idopter.com
usando classes Java
Importando a classe Java classe Java
Java : java.lang.System
JRuby: Java::JavaLang::System
staff@idopter.com
Pacotes Java no JRuby
staff@idopter.com
Módulo JavaSocket
Pacotes Java no JRuby
staff@idopter.com
staff@idopter.com
Referência ao módulo
staff@idopter.com
Usando interface java
staff@idopter.com
Usando as classes java
JRuby Socket
jruby-lab/examples/socket_example
staff@idopter.com
MySQL com JRuby usando JDBC
jruby-lab/examples/mysql-jdbc
staff@idopter.com
staff@idopter.com
Usando .JAR
Java Swing com JRuby
jruby-lab/examples/jruby-swing
staff@idopter.com
Rails e JRuby
staff@idopter.com
JRuby no Toncat/JBoss/Glassfish
staff@idopter.com
JRuby e JMS
staff@idopter.com
Rspec e Java
jruby-lab/examples/testing-java-with-jruby
staff@idopter.com
E o que mais?
staff@idopter.com
Projeto Ruboto
JRuby is everywhere!
staff@idopter.com
Projeto Ruboto
staff@idopter.com
=>
Projeto Ruboto
staff@idopter.com
=>
Projeto Ruboto
staff@idopter.com
E o que mais?
staff@idopter.com
JRuby no Google App Engine
staff@idopter.com
…quer mais?
staff@idopter.com
quer mais?
staff@idopter.com
Referências e Dicas
Jruby-Lab
staff@idopter.com
staff@idopter.com
staff@idopter.com
• Exemplos• Referências– Artigos– Wiki– Apresentações– Blog– Twitter
https://github.com/pigor/jruby-lab
staff@idopter.com
staff@idopter.com
staff@idopter.com
http://groups.google.com/group/guru-pa
Obrigado!!!
@mateuslinhares e @pigodinho{mateus, pigor}@idopter.com
staff@idopter.com
JRuby“Explorando um Mundo de Possibilidades”
@mateuslinharese
@pigodinho
staff@idopter.com
top related