Além do java

1.268 visualizações

Publicada em

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.

  • Seja a primeira pessoa a gostar disto

Além do java

  1. 1. ALÉM DO JAVA: AS OUTRAS LINGUAGENS DA JVM Maurício Linhares @mauriciojr | http://techbot.me/sábado, 9 de julho de 2011
  2. 2. QUEM? • Desenvolvedor na OfficeDrop.com • Professor na Faculdade iDezsábado, 9 de julho de 2011
  3. 3. JAVA, ONTEM Cool guy do início da década passadasábado, 9 de julho de 2011
  4. 4. JAVA, HOJE wastelandssábado, 9 de julho de 2011
  5. 5. NOVOS TEMPOS Java não está mais na modasábado, 9 de julho de 2011
  6. 6. 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
  7. 7. 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
  8. 8. JRUBY RESSURGE Rails na Java Virtual Machine é agora uma realidadesábado, 9 de julho de 2011
  9. 9. 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
  10. 10. DA VINCI VM Transformando a JVM para que ela facilite a existência de linguagens além do Javasábado, 9 de julho de 2011
  11. 11. 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
  12. 12. JAVA COMO PLATAFORMAsábado, 9 de julho de 2011
  13. 13. E EU COM ISSO?sábado, 9 de julho de 2011
  14. 14. MARTELOS! DIVERSOS! Para todos os seus pregos, mesmo que eles não sejam pregos!sábado, 9 de julho de 2011
  15. 15. 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
  16. 16. PROBLEMA Preciso 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
  17. 17. EM RUBY def retry( tries, &block) count = 0 begin count += 1 block.call rescue => e if count <= tries retry ! else raise e end end end retry(3) do send_file( "file" ) endsábado, 9 de julho de 2011
  18. 18. COMO FAZER O MESMO EM JAVA? É possível fazer o mesmo?sábado, 9 de julho de 2011
  19. 19. “APRENDER UMA NOVA LINGUAGEM DE PROGRAMAÇÃO É SÓ APRENDER A SINTAXE” Alguém que você conhecesábado, 9 de julho de 2011
  20. 20. AHÃ, SENTA LÁ, LUIGIsábado, 9 de julho de 2011
  21. 21. 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 vantagenssábado, 9 de julho de 2011
  22. 22. SCALAsábado, 9 de julho de 2011
  23. 23. CLOJUREsábado, 9 de julho de 2011
  24. 24. RUBYsábado, 9 de julho de 2011
  25. 25. JAVAsábado, 9 de julho de 2011
  26. 26. 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
  27. 27. 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
  28. 28. 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
  29. 29. DEMO ON RAILSsábado, 9 de julho de 2011
  30. 30. DÚVIDAS? Obrigado!sábado, 9 de julho de 2011

×