Java virtual machine quantas linguas fala a jvm2

37
¿Java? Virtual Machine Quantas línguas fala a JVM?

description

Palestra que fala da JVM e as muitas linguagens que que ela suporta. Essa palestra eu ministrei no UAIJUG, na primeira reunião mensal.

Transcript of Java virtual machine quantas linguas fala a jvm2

Page 1: Java virtual machine   quantas linguas fala a jvm2

¿Java? Virtual Machine

Quantas línguas fala a JVM?

Page 2: Java virtual machine   quantas linguas fala a jvm2

Agenda

• Introdução

• A Java Virtual Machine

• A JVM Dinâmica

• A JVM de Babel

• Ferramentas para programadores poliglotas

• Conclusão

• Perguntas

Page 3: Java virtual machine   quantas linguas fala a jvm2

INTRODUÇÃO

Como anda o mercado em relação à linguagem Java

Page 4: Java virtual machine   quantas linguas fala a jvm2

Panorama

• Linguagem Java evolui lentamente

• Futuro do Java ainda é incerto devido à Oracle

• Existem diversas linguagens dinâmicas no mercado

• Python, PHP, Ruby, Scala, Groovy, Clojure...

• Muitas em ascensão

• Mercado exige cada vez mais performance

Page 5: Java virtual machine   quantas linguas fala a jvm2

Panorama - Exigências

Hardware Software Peopleware

Page 6: Java virtual machine   quantas linguas fala a jvm2

E O QUE A JVM TEM A VER COM

ISSO?

Quais as vantagens de usar a JVM para resolver os problemas de desempenho do

dispositivo entre a cadeira e o monitor.

Page 7: Java virtual machine   quantas linguas fala a jvm2

A Java Virtual Machine

Page 8: Java virtual machine   quantas linguas fala a jvm2

A Java Virtual Machine

A JVM não conhece

Java!!! Só bytecode

Page 9: Java virtual machine   quantas linguas fala a jvm2

Por que a JVM?

Coleta de Lixo

Gerência de Memória

Portabilidade

Segurança

Performance

Controle de Exceções

Suporte a Multithread

Page 10: Java virtual machine   quantas linguas fala a jvm2

Por que outras linguagens?

• Paradigmas

• Usar o paradigma que mais se encaixa, para resolução do problema

• Domínios Específicos

• Linguagens que facilitam a criação/manutenção de determinados tipos de aplicação

• Ferramentas

• Corrigir/Adicionar Ferramentas a linguagem Java

• Linguagem demora a adquirir certas características usadas pelos programadores, devido a burocracia e grande utilização

Page 11: Java virtual machine   quantas linguas fala a jvm2

A JVM DINÂMICA

O suporte da JVM a linguagens dinâmicas

Page 12: Java virtual machine   quantas linguas fala a jvm2

Linguagens dinâmicas

• Recursos da plataforma Java

• Vasto ecossistema de frameworks e bibliotecas opensource

• Possibilidade de atacar diversos tipos de problemas com a ferramenta certa

• Evitar soltar um parafuso com um alicate, ou matar moscas com bazuca!

Page 13: Java virtual machine   quantas linguas fala a jvm2

Linguagens dinâmicas

Linguagens dinâmicas na JVM

JSR-292

JSR 223

JVM com

tipagem

estática

Page 14: Java virtual machine   quantas linguas fala a jvm2

As estrelas do momento

JVM

Page 15: Java virtual machine   quantas linguas fala a jvm2

DaVinci

• Suporte arquitetural de primeira classe para linguagens , sem ser o Java

• Idéia de rodar outras linguagens com performance comparável a da linguagem Java

• Idéia de coexistência, tornando a JVM uma plataforma “universal” para todas as linguagens

• Acabar com a dificuldade dos desenvolvedores de linguagens, que poderão usar a JVM com facilidade

Page 16: Java virtual machine   quantas linguas fala a jvm2

A JVM DE BABEL

Algumas das muitas línguas da JVM

Page 17: Java virtual machine   quantas linguas fala a jvm2

Python

Alto nível

Interpretada

Imperativa

Orientada a objetos

Tipagem dinâmica e forte

Multiparadigma

Page 18: Java virtual machine   quantas linguas fala a jvm2

Python/Jython• Elegante, Legível, Robusta

• Google utiliza em toda sua infraestrutura, podendo destacar Youtube, GoogleMaps e GAE

• Crescente utilização para Web através de frameworks como Django, TurboGears

• Utilizada para tarefas administrativas em diversas distribuições Linux

Page 19: Java virtual machine   quantas linguas fala a jvm2

Python/Jython• Jython trouxe o Python para JVM

• Linguagem fácil de aprender mas ao mesmo tempo poderosa de usar

• Jython pode acessar libs e frameworks escritos tanto em Python como em Java!

Python

Java

Jython

Page 20: Java virtual machine   quantas linguas fala a jvm2

Jython + Swing Jtable

from javax.swing import JTable

from javax.swing import JFrame

rowdata = [('bill', 'Bill Williams')]

colnames = ['user name', 'full name']

table = JTable(rowdata, colnames)

frame = JFrame("Table")

frame.getContentPane().add( table )

frame.size = 400, 300

frame.visible = 1

Page 21: Java virtual machine   quantas linguas fala a jvm2

Javascript/Rhino/AJAX!?• Linguagem script mais usada, em todos os

browsers,Flash(ActionScript), Server-Side(Phobos, Rhino,JMaki,ASP)

• Boa para codificar GUI's ex:JQuery, ExtJS

• Multiparadigma contando com closures,herança baseada em protótipo

• AJAX faz com que seja indispensável nos dias de hoje

Page 22: Java virtual machine   quantas linguas fala a jvm2

Javascript/Rhino• Rhino+JSR223 integrados por padrão no

Java6

• Javascript por ser mais flexível, pode ser usada em uma série de finalidades como regras de negócios que mudam freqüentemente

• Usado pelo Mozilla

Page 23: Java virtual machine   quantas linguas fala a jvm2

Javascript/Rhinoimport javax.script.*;

public class EvalScript {

public static void main(String[] args) throws Exception {

// cria um gerente para o motor de scripts

ScriptEngineManager factory = new ScriptEngineManager();

// cria o motor JavaScript como mostrado nos exemplos anteriores

ScriptEngine engine = factory.getEngineByName("js");

// interpreta o codigo Javascript

engine.eval("print('Hello World, Javascript on the JVM')");

}

}

Page 24: Java virtual machine   quantas linguas fala a jvm2

Ruby/JRuby

• Mais poderosa que o Perl e mais OO que o Python

• Influências de SmallTalk ,Eiffel e Lisp

• Tipagem dinâmica e forte

• Puramente OO (Tudo é um objeto)

• Focada na simplicidade, produtividade e na felicidade do programador

Page 25: Java virtual machine   quantas linguas fala a jvm2

Ruby/JRuby

7.class => Fixnum

“hello”.length => 5

3.times { |i| puts “Number #{i}” }

=> Number 1

Number 2

Number 3

Page 26: Java virtual machine   quantas linguas fala a jvm2

Ruby/JRuby

Def fazer_quack(quacker)

quacker.quack

end

fazer_quack(Pato.new)

fazer_quack(Pinguin.new)

fazer_quack(Polvo.new)

Page 27: Java virtual machine   quantas linguas fala a jvm2

Ruby/JRuby

• Projeto iniciado em 2001

• Melhor escalabilidade

• JRuby é a versão mais rápida, sendo de 2x-5x mais rápida que outras versões e com threads nativas

• Boa forma de colocar o Ruby no ambiente corporativo

• Integração com libs/frameworks Java e vice-versa

• http://jruby.org/

Page 28: Java virtual machine   quantas linguas fala a jvm2

Ruby/JRuby

• Projeto Kenai

• Oracle Mix

• Slideshare

• Twitter

• Justin.TV

• Milhares de outros projetos

Page 29: Java virtual machine   quantas linguas fala a jvm2

Clojure

• Dialeto Lisp

• Funcional e não OO

• Funções de primeira classe!

• STM - Software transactional memory

• Suporte a Concorrência/Multicore/Paralelismo

• Dados Imutáveis

• Integrada com Java

• http://clojure.org/

Page 30: Java virtual machine   quantas linguas fala a jvm2

Groovy

• OO

• Sintaxe bem parecida com Java

• Executa código Java sem modificação

• Sintaxe simples sem parêntesis e ponto virgula

• Listas, Mapas e Expressões Regulares

• Integração Bi-Direcional

• http://groovy.codehaus.org/Portuguese+Home

Page 31: Java virtual machine   quantas linguas fala a jvm2

Scala

• Criada por Martin Odersky em 2001

• OO e Funcional

• Linguagem de propósito geral

• Alto e perfeito suporte a concorrência/paralelismo

• Tipagem Estática

• http://www.scala-lang.org

Page 32: Java virtual machine   quantas linguas fala a jvm2

Outras linguagens

• Kawa,Jatha , Groovy, BeanShell,

• Pnuts, Jacl (TCL), JudoScript,Ioke

• Jaskell, Sleep (Perl), Jelly, AWK, JEP,

• Jexl, JST, SISC (Scheme), Athena

• (Smaltalk), Jepp (Python native),

• Quercus (PHP), BexScript, Jasconn

• (AppleScript), JavaFX...

• http://en.wikipedia.org/wiki/List_of_JVM_languages

• http://www.is-research.de/info/vmlanguages/

Page 33: Java virtual machine   quantas linguas fala a jvm2

FERRAMENTAS PARA

PROGRAMADORES POLIGLOTAS

Ferramentas e tecnologias para programadores poliglotas

Page 34: Java virtual machine   quantas linguas fala a jvm2

Integração com outras tecnologias

• Netbeans possui suporte à todas as linguagens vistas até agora

• Eclipse tem suporte a várias dessas linguagens

• Glassfish v3 possui integração com novos frameworks sendo o “container” perfeito, para Java e outras linguagens

Page 35: Java virtual machine   quantas linguas fala a jvm2

Linguagens Dinâmicas e Frameworks

http://glassfish-scripting.dev.java.net

Page 36: Java virtual machine   quantas linguas fala a jvm2

Conclusão

• Mercado em expansão

• Tendências como NoSQL, Cloud Computing estão impulsionando o desenvolvimento com novas linguagens

• Novos paradigmas e problemas!

• Como dito no livro “Pragmatic Programmer”, o bom programador deve aprender várias linguagens, pelo menos uma por ano

• Grandes nomes do TI como Sun, Microsoft, IBM e Oracle apostam nestas linguagens

Page 37: Java virtual machine   quantas linguas fala a jvm2

Perguntas