além do java - maratona4java 2005

33
www.fragmental.com.br Alem do Java™: Novos Horizontes para o Desenvolvedor Phillip Calçado http://www.fragmental.com.br

Upload: phil-calcado

Post on 16-May-2015

1.739 views

Category:

Technology


4 download

DESCRIPTION

Palestra polêmica sobre o futuro da plataforma Java, com ênfase em novas linguagens para a JVM. Apresentada no Maratona4Java de Brasília. http://blog.fragmental.com.br/wiki/index.php/Maratona4Java2005:_Alem_do_Java%E2%84%A2:_Novos_Horizontes_para_o_Desenvolvedor

TRANSCRIPT

Page 1: Além do Java - Maratona4Java 2005

www.fragmental.com.br

Alem do Java™: Novos Horizontes para o

Desenvolvedor

Phillip Calçadohttp://www.fragmental.com.br

Page 2: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 2

• Tentar entender como Java™ chegou a sua atual posição

• Avaliar a situação atual da Linguagem e Plataforma Java™

• Entender como Java™ está se modificando à novas realidades

• Avaliar opções alternativas

Objetivos

Não São Objetivos

• Depreciar ou evangelizar sobre qualquer Linguagem ou Plataforma

• Prever o futuro• Dizer o que fazer da sua vida/carreira• Fazer você jogar todo software que desenvolveu ou

possui fora

(Tentar não ser apedrejado!)

(Mas nada impede que aconteçam...)

Page 3: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 3

• Quem é Você?• Pequena Introdução• Como Chegamos Aqui?• Problemas no Status Quo• Além do Java: Como Reagir?• Múltiplas Linguagens, Uma Plataforma• Alternativas Hoje• Conclusão• Bibliografia, Links e Referências

Agenda(A gente veio aqui pra beber ou conversar?)

Page 4: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 4

• Phillip Calçado, a.k.a. Shoes• Programador desde 1996• Com Java desde 2003 (“¡ adios, C++ !”)• Coordenador do GUJ• JUG Leader do RioJUG• Consultor, instrutor, coach• Diversos projetos open-source (alguns chegaram até a

ter uma versão 1.0!)• Escritor ocasional (http://www.fragmental.com.br)• Aplicações para análise de risco, redes GSM, gestão de

conteúdo, setor financeiro, biologia... A grande maioria utilizando Java EE

Quem é Você?(Quem é esse doido que veio falar mal de Java aqui?!?!)

Page 5: Além do Java - Maratona4Java 2005

www.fragmental.com.br

Pequena Introdução

?

Page 6: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 6

• Java™ possui domínio de mercado, em 2003 75% dos desenvolvedores a utilizavam*

• Java™ é uma Linguagem de Programação e uma Plataforma de Software

• A maioria dos trabalhos revolucionários em vários segmentos na última década foi produzida com Java™, Linguagem e Plataforma

• A curva de aprendizado é um dos fatores críticos• O uso de uma única Linguagem de Programação para

toda e qualquer tarefa não tem se mostrado produtivo ou eficiente

• Novas tecnologias e paradigmas pedem recursos de meta-programação que não estão disponíveis na Linguagem Java™

• Grandes programadores (os verdadeiros java hackers) e acadêmicos estão procurando e trabalhando em alternativas

Pequena Introdução(Se você só puder ler dois slides, leia esses)

* Dados da Sun Microsystems™, http://www.java.com

Page 7: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 7

A corrente de desenvolvedores que procuram alternativas para aliviar os problemas encontrados no

desenvolvimento em Java™ hoje está sendo chamada de

Pequena Introdução(Se você só puder ler dois slides, leia esses)

Page 8: Além do Java - Maratona4Java 2005

www.fragmental.com.br

Como Chegamos Aqui?

Page 9: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 9

Como Chegamos Aqui?(De ônibus?)

• Arquitetura Cliente/Servidor não atendia a demanda: quem vinha do mainframe precisava de algo mais robusto e de melhor manutenção

• A Microsoft se beneficiava de seu monopólio em Sistemas Operacionais para conseguir o monopólio em desenvolvimento: quem paga a conta não gosta de monopólios

• A Internet impôs novos modelos de comércio, aplicações C/S ou Desktop estão fora, CGI não escala, linguagens de script (ASP/PHP/ColdFusion) não são integradas eficientemente: Java já estava no browser, pro servidor foi um pulo

• Orientação a Objetos se consolida no desenvolvimento de aplicações: a definição da UML, processos OO e ferramentas CASE tornam o paradigma popular e aplicável na prática

Page 10: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 10

Como Chegamos Aqui?(...barca?)

Por que Java e não C++?• C++ é uma linguagem construída em cima de C, uma

linguagem de infra-estrutura (systems language), não de aplicações

• Aritmética de ponteiros, herança múltipla, gerência manual de memória e outros recursos avançados são exigidos de iniciantes

• A Microsoft não ajudou com sua arquitetura de bibliotecas dinâmicas (DLL Hell)

• CORBA não pegou na prática, como criar aplicações distribuídas padronizadas?

• Falta de portabilidade

Page 11: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 11

Como Chegamos Aqui?(...metrô nem pensar, né?)

Page 12: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 12

Page 13: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 13

Como Chegamos Aqui?(Ah! Claro..de rover...)

• Ter portabilidade como princípio levou Java™ onde outras linguagens nunca chegariam

• Ser uma especificação contribui para que muitos colaborem em conjunto

• Ambiente gerenciado e segurança são necessários e/ou muito úteis em uma na maioria dos ambientes

• Ter que aprender apenas uma Linguagem/Plataforma é muito mais barato e cômodo

Mas...

É Java™ a Panacéia das Linguagens de Programação?

Page 14: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 14

Problemas no Status Quo

http://www.garbett.org/?q=node/25

Page 15: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 15

Problemas no Status Quo(Houston...)

Sinais de que existe algo errado:• Complexidade crescente

• Quantos frameworks são necessários para trocar uma lâmpada?

• Revoluções (não evoluções) constantes, frequentemente downsizing• JSP -> MVC• JNDI -> Depedency Injection• BMP/CMP -> JDO/Hibernate

• Gambiarras constantes e crescentes• AOP• Excesso de XML

• Infra-Estrutura muito exigente• Quantos % do seu código lida com o problema de Negócios e

quanto lida com configurações, recursos e outras coisas?

• Muletas para o Desenvolvedor• Desenvolver Java EE™ sem nenhuma geração de código não é

produtivo

Page 16: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 16

Problemas no Status Quo(Houston...)

Fatos Positivos:• Java™ hoje é imbatível no desenvolvimento de

middleware

• A plataforma Java EE™ possui todos os recursos necessários para o desenvolvimento de aplicações de larga escala

• Mão-de-obra Java™ é geralmente fácil de achar e não mais cara como antigamente

• Existe um mercado enorme de fornecedores de soluções geralmente padronizadas, livres ou proprietárias em Java™

• Centenas de casos de sucesso em dez anos de história facilitam a escolha da tecnologia

Page 17: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 17

Problemas no Status Quo(Houston...)

Fatos Negativos:• Desenvolver front-ends Java™ não é tão simples ou

produtivo quanto era com Linguagens especializadas, web ou desktop

• Aplicações que apenas fazem CRUD em Banco de Dados se tornam inchadas com Java™

• A curva de aprendizado requer que alguém se torne hábil em muitas coisas antes de se tornar produtivo

• A Linguagem Java™ evolui devagar e faltam nela recursos necessários para facilitar algumas tarefas

• Java não oferece suporte direto à Domain Specific Languages

• Ainda que seja bastante dinâmica, Java™ não oferece recursos como closures ou continuations

Page 18: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 18

Além do Java: Como Reagir?

Page 19: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 19

Alem do Java: Como Reagir?(Dois ratos caíram num balde de leite, um desistiu e morreu afogado, o outro...)

É preciso:• Manter e ampliar a Comunidade, o grande diferencial

• Manter a JVM, um dos mais sofisticados softwares do mundo com uma grande base instalada

• Manter compatibilidade com o rico legado de aplicações e bibliotecas

• Continuar investindo em padronização e comitês abertos

• Diminuir a curva de aprendizado

• Separar aplicações simples de aplicações complexas

• Facilitar a criação de linguagens mais leves, produtivas e especializadas

Page 20: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 20

Múltiplas Linguagens, Uma Plataforma

Page 21: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 21

Múltiplas Linguagens, Uma Plataforma(Projeto Babel)

• Linguagens de Sistema:• Possuem o necessário para a construção da infra-estrutura

do sistema• São geralmente complexas e genéricas• C/C++ e Java

• Linguagens de Aplicação:• Possuem a produtividade esperada para se criar aplicações• São leves e menos exigentes• Servem para utilizar os componentes criados pelas

Linguagens de Sistema• Ruby, Python, Groovy e outros

• Linguagem de Domínio:• Como de Aplicação, mas trazem conceitos do domínio em

si• Geralmente são utilizadas por não-programadores• Mini-linguagens do UNIX, dialetos XML e outros

Page 22: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 22

Múltiplas Linguagens, Uma Plataforma(Projeto Babel)

• CLR não é a primeira nem única VM para várias linguagens

• A Microsoft apenas tentou replicar o mercado VB/C++• C# possui as mesmas limitações básicas de Java• Mono poderia ser uma saída se não se fixasse tanto em

copiar

O futuro de Java™ é ser .Net?!?

Page 23: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 23

Múltiplas Linguagens, Uma Plataforma(Projeto Babel)

O que já está sendo feito? - Oficialmente• JSR 223: Scripting for the JavaTM Platform – Public Review

• Implementação de Referência: PHP• Implementação de JavaScript no Java™ 6 Mustang

• JSR 241: The Groovy Programming Language• JSR 274: The BeanShell Scripting Language

Page 24: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 24

Múltiplas Linguagens, Uma Plataforma(Projeto Babel)

O que já está sendo feito? – Pela Comunidade• BeanShell• Groovy• Velocity• Rhino – JavaScript para JVM

• Projeto da Mozilla Foundation• Jython – Python para a JVM

• Utilizado pela Bea para scripting no WebLogic Diablo• JRuby – Ruby para a JVM

• Interpretador compatível com Ruby 1.8.2 100% Java™

• Mais de 200 projetos de linguagens para a JVM• De Smalltalk a COBOL

• Superwaba

Page 25: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 25

Alternativas Hoje

2004 - New and Cool Java TechnologyJava Technology and Scripting Languages, the Next Generation: TS-1027, 2004

Page 26: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 26

Alternativas Hoje(Não pergunte o que sua plataforma pode fazer por você...)

• Aplicações em Ruby• Rails: Ambiente altamente produtivo mantendo

qualidade• Performance inferior e ainda baixa aceitação no

Brasil• Ainda não viável para mais que scripts ou web

• Aplicações em Python• Forte comunidade• Grande número de bibliotecas e frameworks• Não é tão diferente de Java EE™ assim

• Aplicações em Java• Linguagens de Script para aplicações simples• Linguagens de script para interfaces• Trails/Grails

Page 27: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 27

Conclusão

!

Page 28: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 28

Conclusão

• Java™ está sofrendo com seu próprio peso

• Java™ não é simples como antigamente

• Java™ domina o mercado e não vai ser substituída facilmente

• Não existe Tamanho Único em Linguagens de Programação

• O ideal é que a Plataforma Java™ ofereça suporte melhor à linguagens, incluindo de Sistemas, Aplicações e DSLs

• Não existe plataforma hoje que compita com Java™ em todos os seus ambientes

• Existem plataformas que competem com Java em segmentos específicos

• Ainda que difícil prever o futuro, é iminente uma revolução no modo como aplicações são construídas

Page 29: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 29

• Bruce Tate & Justin Gehtland – Beyond Java• Bruce Tate & Justin Gehtland – Better, Faster, Lighter Java• Rod Johnson – J2EE Developmen Without EJB• Dave Thomas et al. – Programming Ruby• Dave Thomas et al. – Agile Web Development with Rails• Eric Evans – Domain-Driven Design• Andrew Hunt & David Thomas – The Pragmatic

Programmer

• Craig Larman – Applying UML and Patterns• Bertrand Meyer – Object-Oriented Software Construction• Martin Fowler – Refactoring, PEAI, Analisys Patterns...• Meilir Page-Jones – Fundamentals of Object-Oriented

Design Using UML

Autores Recomendados

Page 30: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 30

• http://groovy.codehaus.org/• http://www.beanshell.org/• http://www.jython.org/• http://jruby.sourceforge.net/• http://www.mozilla.org/rhino/• http://www.robert-tolksdorf.de/vmlanguages.html• http://www.martinfowler.com/articles/

languageWorkbench.html• http://developer.sun.com/learning/javaoneonline/2004/

corej2se/TS-3814.html• http://developer.sun.com/learning/javaoneonline/2004/

newcooltech/TS-1027.html

Para Saber Mais

Page 31: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 31

Continua em...

Page 32: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 32

Contato

http://www.fragmental.com.br

http://www.guj.com.br

http://www.riojug.org

[email protected]

Page 33: Além do Java - Maratona4Java 2005

www.fragmental.com.br Slide 33

Obrigado!Que Zahl os Acompanhe...