além do java
DESCRIPTION
Partindo além do Java e conhecendo novas linguagens e tecnologias que podem aumentar o seu conjunto de ferramentas. Palestra apresentada originalmente em 11 de julho de 2011 no N-ésimo encontro do PBJUG.TRANSCRIPT
![Page 1: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/1.jpg)
ALÉM DO JAVA: AS OUTRAS LINGUAGENS DA JVM
Maurício Linhares@mauriciojr | http://techbot.me/
sábado, 9 de julho de 2011
![Page 2: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/2.jpg)
QUEM?
•Desenvolvedor na OfficeDrop.com
• Professor na Faculdade iDez
sábado, 9 de julho de 2011
![Page 3: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/3.jpg)
JAVA, ONTEMCool guy do início da década passada
sábado, 9 de julho de 2011
![Page 4: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/4.jpg)
JAVA, HOJEwastelands
sábado, 9 de julho de 2011
![Page 5: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/5.jpg)
NOVOS TEMPOSJava não está mais na moda
sábado, 9 de julho de 2011
![Page 6: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/6.jpg)
O QUE ACONTECEU?
• Busca por padrões no papel estagnou a comunidade;
• A linguagem não sofria atualizações enquanto a concorrência seguia em frente;
• Programação concorrente trazendo a tona outra vez a programação funcional;
• JavaScript;
•Rails;
sábado, 9 de julho de 2011
![Page 7: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/7.jpg)
MAS NA DIREÇÃO CONTRÁRIA...
• A comunidade começa a se voltar a novas linguagens seriamente;
• A comunidade olha com carinho pra Java Virtual Machine e as coisas que já foram desenvolvidas em cima dela;
• Em 2003 os primeiros passos sérios são dados com Scala e Groovy;
sábado, 9 de julho de 2011
![Page 8: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/8.jpg)
JRUBY RESSURGERails na Java Virtual Machine é agora uma realidade
sábado, 9 de julho de 2011
![Page 9: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/9.jpg)
SEGUINDO EM FRENTE
• A atenção que o JRuby consegue na comunidade faz os seus dois desenvolvedores serem contratados pela Sun (e um terceiro pela ThoughtWorks)
• A realização de que a comunidade realmente está interessada em novas linguagens na JVM reforça projetos antigos, como Scala e Groovy e traz novidades, como Clojure;
sábado, 9 de julho de 2011
![Page 10: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/10.jpg)
DA VINCI VMTransformando a JVM para que ela facilite a existência de
linguagens além do Java
sábado, 9 de julho de 2011
![Page 11: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/11.jpg)
MULTI LANGUAGE VM
•O sucesso do JRuby criou a necessidade de que a própria máquina virtual simplificasse a vida de quem quer colocar sua linguagem de programação na JVM;
•Novos bytecodes, rotinas de execução e muita gente discutindo soluções novas pra que Java, como plataforma, seja onde os programas continuam executando;
sábado, 9 de julho de 2011
![Page 12: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/12.jpg)
JAVA COMO PLATAFORMA
sábado, 9 de julho de 2011
![Page 13: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/13.jpg)
E EU COM ISSO?
sábado, 9 de julho de 2011
![Page 14: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/14.jpg)
MARTELOS! DIVERSOS!Para todos os seus pregos, mesmo que eles não sejam pregos!
sábado, 9 de julho de 2011
![Page 15: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/15.jpg)
DIVERSIDADE
• Cada linguagem tem seus prontos fortes e fracos, conhecer várias linguagens adiciona novas ferramentas na sua caixinha de conhecimento;
• Aprender linguagens de ideais ou paradigmas diferentes faz com que você possa ter um ponto de vista diferente na hora de resolver os mesmos problemas;
sábado, 9 de julho de 2011
![Page 16: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/16.jpg)
PROBLEMAPreciso enviar um arquivo para um armazenamento na nuvem, mas a rede não é confiável e pode falhar a qualquer momento.
Meu código deve ser capaz de tentar por um número X de vezes até desistir e lançar o erro capturado.
sábado, 9 de julho de 2011
![Page 17: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/17.jpg)
EM RUBYdef retry( tries, &block) count = 0 begin count += 1 block.call rescue => e if count <= tries retry! else raise e end endend
retry(3) do send_file( "file" )end
sábado, 9 de julho de 2011
![Page 18: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/18.jpg)
COMO FAZER O MESMO EM JAVA?
É possível fazer o mesmo?
sábado, 9 de julho de 2011
![Page 19: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/19.jpg)
“APRENDER UMA NOVA LINGUAGEM DE
PROGRAMAÇÃO É SÓ APRENDER A SINTAXE”
Alguém que você conhece
sábado, 9 de julho de 2011
![Page 20: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/20.jpg)
AHÃ, SENTA LÁ, LUIGI
sábado, 9 de julho de 2011
![Page 21: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/21.jpg)
APRENDA UMA NOVA LINGUAGEM DE
PROGRAMAÇÃO A CADA ANO
E que sejam diferentes, aprender C# se você já programa em Java não traz vantagens
sábado, 9 de julho de 2011
![Page 22: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/22.jpg)
SCALA
sábado, 9 de julho de 2011
![Page 23: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/23.jpg)
CLOJURE
sábado, 9 de julho de 2011
![Page 24: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/24.jpg)
RUBY
sábado, 9 de julho de 2011
![Page 25: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/25.jpg)
JAVA
sábado, 9 de julho de 2011
![Page 26: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/26.jpg)
SCALA
• Une programação orientada a objetos a funcional;
• Sintaxe próxima a do Java e integração completa com a linguagem, incluindo compilação de projetos híbridos Scala-Java;
•Modelo de objetos próximo ao do Java, é simples chamar objetos Scala a partir de código Java puro;
sábado, 9 de julho de 2011
![Page 27: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/27.jpg)
CLOJURE
• Lisp on Java!
• Linguagem puramente funcional, um dialeto de Lisp, executando dentro da JVM;
• Acesso completo as bibliotecas do Java, incluindo todo o suporte a programação concorrente de verdade;
•Macros, macros and MACROS!
sábado, 9 de julho de 2011
![Page 28: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/28.jpg)
JRUBY
• Implementação completa e funcional de um interpretador da linguagem Ruby executando na JVM;
• É capaz de executar normalmente aplicações Rails e a maior parte do código Ruby disponível atualmente;
• Acesso simplificado a código nativo através de FFI e JNA;
sábado, 9 de julho de 2011
![Page 29: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/29.jpg)
DEMO ON RAILS
sábado, 9 de julho de 2011
![Page 30: Além do java](https://reader034.vdocuments.net/reader034/viewer/2022052505/55666870d8b42a3d3f8b4d73/html5/thumbnails/30.jpg)
DÚVIDAS?Obrigado!
sábado, 9 de julho de 2011