SlideShare uma empresa Scribd logo
ALÉM DO JAVA: AS OUTRAS
              LINGUAGENS DA JVM
                                  Maurício Linhares
                             @mauriciojr | http://techbot.me/




sábado, 9 de julho de 2011
QUEM?



    • Desenvolvedor               na OfficeDrop.com

    • Professor              na Faculdade iDez




sábado, 9 de julho de 2011
JAVA, ONTEM
                             Cool guy do início da década passada

sábado, 9 de julho de 2011
JAVA, HOJE
                               wastelands

sábado, 9 de julho de 2011
NOVOS TEMPOS
                              Java não está mais na moda

sábado, 9 de julho de 2011
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
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
JRUBY RESSURGE
                     Rails na Java Virtual Machine é agora uma realidade

sábado, 9 de julho de 2011
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
DA VINCI VM
             Transformando a JVM para que ela facilite a existência de
                            linguagens além do Java
sábado, 9 de julho de 2011
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
JAVA COMO PLATAFORMA

sábado, 9 de julho de 2011
E EU COM ISSO?

sábado, 9 de julho de 2011
MARTELOS! DIVERSOS!
       Para todos os seus pregos, mesmo que eles não sejam pregos!

sábado, 9 de julho de 2011
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
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
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" )
    end



sábado, 9 de julho de 2011
COMO FAZER O MESMO EM
                  JAVA?
                             É possível fazer o mesmo?




sábado, 9 de julho de 2011
“APRENDER UMA NOVA
                         LINGUAGEM DE
                      PROGRAMAÇÃO É SÓ
                      APRENDER A SINTAXE”
                             Alguém que você conhece




sábado, 9 de julho de 2011
AHÃ, SENTA LÁ, LUIGI

sábado, 9 de julho de 2011
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
SCALA

sábado, 9 de julho de 2011
CLOJURE

sábado, 9 de julho de 2011
RUBY

sábado, 9 de julho de 2011
JAVA

sábado, 9 de julho de 2011
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
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
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
DEMO ON RAILS

sábado, 9 de julho de 2011
DÚVIDAS?
                               Obrigado!




sábado, 9 de julho de 2011

Mais conteúdo relacionado

KEY
Comparativo entre Go e Lua
DOC
Programação concorrente
PPTX
Inglês doenças
PPT
Concorrência na Linguagem de Programação
PDF
Uma visão de mercado das linguagens de programação
PDF
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
PDF
Programação Concorrente - Objetos e Concorrência
PPTX
Informática para Internet - Informática Aplicada - Aula 07
Comparativo entre Go e Lua
Programação concorrente
Inglês doenças
Concorrência na Linguagem de Programação
Uma visão de mercado das linguagens de programação
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Programação Concorrente - Objetos e Concorrência
Informática para Internet - Informática Aplicada - Aula 07

Destaque (7)

PPTX
Sistemas operacionais aula 01
PPTX
Sistemas Operacionais
PDF
SO-04 Escalonamento de Processos
PDF
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
PPT
Linguagens De ProgramaçãO Clp
PPT
Sistemas Operacionais
PPT
Tipos de Sistemas Operacionais
Sistemas operacionais aula 01
Sistemas Operacionais
SO-04 Escalonamento de Processos
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Linguagens De ProgramaçãO Clp
Sistemas Operacionais
Tipos de Sistemas Operacionais
Anúncio

Semelhante a Além do java (20)

PDF
TDC 2011 - E no sétimo dia ele escreveu testes
ODP
Introdução à Programação Orientada a Objetos
PPTX
Apresentação sobre JRuby
PDF
Apresentação lazarus flisol
PPTX
Groovy e Grails 2
PDF
Groovy & grails
PDF
Groovy & Grails
PDF
Imergindo na JVM
PPT
Além do Java - Maratona4Java 2005
PPTX
Java virtual machine quantas linguas fala a jvm2
PDF
Fun driven development com Ruby
PDF
iOS, APIs e sincronização de dados
PPT
Explorando O Potencial Das Linguagens De Programação Open Source
PDF
JavaScript agora é sério (FISL 2011)
PPTX
Linguagens Dinâmicas na JVM
PDF
Desafios no deploy de aplicações Java EE 6 no Microsoft Azure
PPTX
Curso Básico de Java - Aula 1
PDF
Conhecendo Java
PDF
Mini aula-java
TDC 2011 - E no sétimo dia ele escreveu testes
Introdução à Programação Orientada a Objetos
Apresentação sobre JRuby
Apresentação lazarus flisol
Groovy e Grails 2
Groovy & grails
Groovy & Grails
Imergindo na JVM
Além do Java - Maratona4Java 2005
Java virtual machine quantas linguas fala a jvm2
Fun driven development com Ruby
iOS, APIs e sincronização de dados
Explorando O Potencial Das Linguagens De Programação Open Source
JavaScript agora é sério (FISL 2011)
Linguagens Dinâmicas na JVM
Desafios no deploy de aplicações Java EE 6 no Microsoft Azure
Curso Básico de Java - Aula 1
Conhecendo Java
Mini aula-java
Anúncio

Mais de Maurício Linhares (20)

PPTX
Mercado de TI
PPTX
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
PPTX
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
PDF
Aprendendo ruby
PDF
Curso java 07 - exceções
PDF
Curso java 08 - mais sobre coleções
PDF
Curso java 06 - mais construtores, interfaces e polimorfismo
PDF
Curso java 05 - herança, classes e métodos abstratos
PDF
Curso java 04 - ap is e bibliotecas
PPTX
Curso java 01 - molhando os pés com java
PDF
Curso java 02 - variáveis
PDF
Curso java 03 - métodos e parâmetros
PDF
Extreme programming
PDF
Feature Driven Development
PDF
Migrando pra Scala
PPTX
Outsourcing e trabalho remoto para a nuvem
PDF
Mercado hoje
PDF
Análise de sistemas oo 1
PDF
Revisão html e java script
PPTX
Aulas de Java Avançado 2- Faculdade iDez 2010
Mercado de TI
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Aprendendo ruby
Curso java 07 - exceções
Curso java 08 - mais sobre coleções
Curso java 06 - mais construtores, interfaces e polimorfismo
Curso java 05 - herança, classes e métodos abstratos
Curso java 04 - ap is e bibliotecas
Curso java 01 - molhando os pés com java
Curso java 02 - variáveis
Curso java 03 - métodos e parâmetros
Extreme programming
Feature Driven Development
Migrando pra Scala
Outsourcing e trabalho remoto para a nuvem
Mercado hoje
Análise de sistemas oo 1
Revisão html e java script
Aulas de Java Avançado 2- Faculdade iDez 2010

Último (19)

PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Custos e liquidação no SAP Transportation Management, TM130 Col18
Aula 18 - Manipulacao De Arquivos python
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Aula04-Academia Heri- Tecnologia Geral 2025
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Processos na gestão de transportes, TM100 Col18
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Apple Pippin Uma breve introdução. - David Glotz
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
COBITxITIL-Entenda as diferença em uso governança TI
Gestão de transportes básica no SAP S/4HANA, S4611 Col20

Além do java

  • 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. QUEM? • Desenvolvedor na OfficeDrop.com • Professor na Faculdade iDez sábado, 9 de julho de 2011
  • 3. JAVA, ONTEM Cool guy do início da década passada sábado, 9 de julho de 2011
  • 4. JAVA, HOJE wastelands sábado, 9 de julho de 2011
  • 5. NOVOS TEMPOS Java não está mais na moda sábado, 9 de julho de 2011
  • 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. 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. JRUBY RESSURGE Rails na Java Virtual Machine é agora uma realidade sábado, 9 de julho de 2011
  • 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. DA VINCI VM Transformando a JVM para que ela facilite a existência de linguagens além do Java sábado, 9 de julho de 2011
  • 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. JAVA COMO PLATAFORMA sábado, 9 de julho de 2011
  • 13. E EU COM ISSO? sábado, 9 de julho de 2011
  • 14. MARTELOS! DIVERSOS! Para todos os seus pregos, mesmo que eles não sejam pregos! sábado, 9 de julho de 2011
  • 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. 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. 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" ) end sábado, 9 de julho de 2011
  • 18. COMO FAZER O MESMO EM JAVA? É possível fazer o mesmo? sábado, 9 de julho de 2011
  • 19. “APRENDER UMA NOVA LINGUAGEM DE PROGRAMAÇÃO É SÓ APRENDER A SINTAXE” Alguém que você conhece sábado, 9 de julho de 2011
  • 20. AHÃ, SENTA LÁ, LUIGI sábado, 9 de julho de 2011
  • 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 vantagens sábado, 9 de julho de 2011
  • 22. SCALA sábado, 9 de julho de 2011
  • 23. CLOJURE sábado, 9 de julho de 2011
  • 24. RUBY sábado, 9 de julho de 2011
  • 25. JAVA sábado, 9 de julho de 2011
  • 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. 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. 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. DEMO ON RAILS sábado, 9 de julho de 2011
  • 30. DÚVIDAS? Obrigado! sábado, 9 de julho de 2011