JRuby - Explorando um mundo de possibilidades

Post on 12-Nov-2014

1.280 views 2 download

Tags:

description

apresenta o JRuby e vários exemplos usando o JRuby com tecnologias diversas como: RSpec, JBoss, JMS, JDBC, Ruboto, etc... além de apresentar o laboratório aberto do JRuby-lab que é um projeto aberto com vários exemplos e referências usando o JRuby.

Transcript of JRuby - Explorando um mundo de possibilidades

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