SlideShare a Scribd company logo
1 of 53
Inovando na Plataforma Java Eteg Tecnologia da Informação
Palestrante Wanderson Santos (@wanswins) Arquiteto Corporativo Líder Técnico / Desenvolvedor Instrutor Tecnológico
O que é inovação?
“Idéiasnovas ou melhoradas, de produtos, serviços ou processos
...aplicadas ao mercado...
...que aumentam a eficiência do processo produtivo...
...ou que geram novo ou aprimorado produto.
O que é plataforma?
Plataforma... Elevação Padrão Estrutura Confiança Sustentação Segurança
A plataforma tecnológica é o conjunto que sustenta um software
A plataforma tecnológica provê os elementos básicos para criação, execução e manutenção de um software
Java? ColdFusion? Database? .NET? Win32? Ruby? Qual sua plataforma? VB? Python? Delphi? PHP? PowerBuilder? ASP?
A plataforma Java é o conjunto que sustenta um software Java
A plataforma Java é a máquina virtual + bibliotecas básicas O que seria do Java sem o tipo inteiro?
A plataformaJava = JVM + JARs essenciais Voltamos a sopa de letrinhas! 
Porque inovar em Java?
Manter os ativos (bibliotecas, utilitários, etc.) Vamos converter nossas bibliotecas para Java/.NET!
Manter o conhecimento Vamos aprender como gerar um relatório em Ruby!
Menor esforço para treinamento do time Vamos reaprender toda uma plataforma!
Bibliotecas e Padrões JMS? JPA? Commons? Java Mail? Quartz? Jasper? iText? Session Beans? Servlets? Hibernate? Tomcat? JAX-WS? Spring Security?
Que tal mantertodas elas? Próximo slide por favor! 
Linguagem F#? C#? Scala? XML? Pascal? UML? Java? Ruby? Python? VB? Cobol? Latim? C++? Groovy? #FAIL? rs
Linguagemfaz parte da plataforma? Tempooooooooooooo...
Sim, a linguagem Javafaz parte da plataformaJava (Você gosta da linguagem Java?)
Mas, a linguagem Java é somente uma das partes da plataforma Java! Vivaaaaaaaaaaaaaa!!! 
Linguagens na JVM Groovy (JSR-241) Scala JRuby Fantom  ColdFusion Jython (Python) Rhino (JavaScript) – já integrada ao Java 6
Linguagens dinâmicas É a tendência atual do mercado O resultado do código é instantâneo sem necessidade do ciclo compilação/implantação É possível carregar um novo código em tempo de execução, sem necessidade de compilação, contrato de interface, etc. Cenários: regras de negócio, camada de visão, etc.
Porque usar outra linguagem? Mais produtivas Menos verbosas que Java Injetam métodos de apoio nas bibliotecas essenciais (Java Class Library) [1,2,3].each { println “numero $it” }  Mais poderosas Métodos anônimos (você ainda vai usar um!) Closures
Porque não usar... Podem ser mais lentas que linguagem Java Para maioria dos casos não afeta A produtividade é mais importante! Atenda o cliente, depois otimize o código Você pode voltar pro Java quanto precisar! Suporte a IDEs (algumas) As mais consolidadas já possuem bom suporte, inclusive para debug
Como começar? Sua equipe é menor e você pode treinar a equipe?  CHOOSE YOUR DESTINY  Não tenha medo, é simples! Sua equipe é grande e o tempo pra aprendizado é curto? Vá de Groovy! (mesmo que o projeto já tenha começado)
Porquê Groovy? Padrão da Plataforma Java (JSR-241) Já possui um bom ecossistema Aceita sintaxe Java em .groovy Curva de aprendizado reduzida -  você pode aprender sob demanda! Se não sabe em Groovy, faça em Java! Why Groovy? http://dzone.com/j9lQ
Entidade em Java public class Usuario { private String nome; private Date dataNascimento; public String getNome() { 	return nome;    }    /*..não cabe no slide! */ }
Entidade em Groovy class Usuario { String nome Date dataNascimento } Mais em Produtividade em Java com Grails Let’s Groovy! 
Frameworks Hibernate? JSF 1? JSP? WebWork? Struts 2? JSF 2? Struts 1? Wicket? Spring? Grails? Tapestry 5? EJB 3?
Interface Serviço da Aplicação Entidades (Domínio) Acesso a Dados Uni-dune-tê!
Tendência: Full-stack Framework Vamos juntar as melhores peças!
GSP Spring GORM / JPA GORM (Hibernate)
grails create-app MinhaApp 4 horas em 1 minuto!
Framework full-stack que une os frameworks Java mais utilizados (Hibernate, Spring, etc.) Utiliza linguagem Groovy ou Java Todo feito em Java, mas você programa em Groovy! Utiliza “Programação por Convenção” Elimina necessidade de configuração
Grails É mantida pela SpringSource, do grupo VMWare  Sim, a responsável pelo Spring Framework Extensível através de plugins Tem plugin pra TUDO! Baseado em bibliotecas Java que você conhece ou vai conhecer: Autenticação e Autorização Acesso a bancos NOSQL Execução em Background Relatórios e muito mais...
Como utilizar Grails? Baixar o pacote mais recente em www.grails.org Descompactar em um pasta e adicionar $GRAILS_HOME no PATH Criar a aplicação:  grails create-app minhaApp Adicionar entidades de Domain e Controller seguindo a convenção  Eclipse, IDEA ou vi/notepad  Rodar a aplicação localmente grails run-app Mas já? 
Mais Grails? Acesse: Produtividade em Java com Grails
Desktop X Web Implantação Ubíqua X Usabilidade
Tendência: Interfaces Ricas Vamos juntar as melhores peças!
AJAX X RIA Duas abordagens
Também é J, rs 
Aprenda jQuery de forma guiada?www.visualjquery.com Tutoriais são excelentes!
Tudo em casa!
Mais JavaFX? Acesse: Aplicações de Interface Rica na Plataforma Java
Obrigado! wanderson@eteg.com.br Twitter: @wanswins

More Related Content

What's hot

Composição e Integração de Sistemas em 2013
Composição e Integração de Sistemas em 2013Composição e Integração de Sistemas em 2013
Composição e Integração de Sistemas em 2013
Leandro Silva
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDD
PHP Day Curitiba
 

What's hot (19)

Começando errado com php
Começando errado com phpComeçando errado com php
Começando errado com php
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
A saga do desenvolvedor java
A saga do desenvolvedor javaA saga do desenvolvedor java
A saga do desenvolvedor java
 
Apresentação sobre Zabbix na iDEZ 2012
Apresentação sobre Zabbix na iDEZ 2012Apresentação sobre Zabbix na iDEZ 2012
Apresentação sobre Zabbix na iDEZ 2012
 
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian FerrariDrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
 
Java não é tão difícil quanto parece
Java não é tão difícil quanto pareceJava não é tão difícil quanto parece
Java não é tão difícil quanto parece
 
DevOps, NoOps...afinal que raios é isso?
DevOps, NoOps...afinal que raios é isso?DevOps, NoOps...afinal que raios é isso?
DevOps, NoOps...afinal que raios é isso?
 
IFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOpsIFSP 2015 - Cultura DevOps
IFSP 2015 - Cultura DevOps
 
Quem e dev ops
Quem e dev opsQuem e dev ops
Quem e dev ops
 
Gerenciamento e automatização de configuração de uma infraestrutura com Puppet
Gerenciamento e automatização de configuração de uma infraestrutura com PuppetGerenciamento e automatização de configuração de uma infraestrutura com Puppet
Gerenciamento e automatização de configuração de uma infraestrutura com Puppet
 
Discutindo DevOps na pratica, por Danilo Sato
Discutindo DevOps na pratica, por Danilo SatoDiscutindo DevOps na pratica, por Danilo Sato
Discutindo DevOps na pratica, por Danilo Sato
 
Acelere - e melhore! - o feedback com testes automatizados rápidos
Acelere - e melhore! - o feedback com testes automatizados rápidosAcelere - e melhore! - o feedback com testes automatizados rápidos
Acelere - e melhore! - o feedback com testes automatizados rápidos
 
Sistemas para o Mundo Real
Sistemas para o Mundo RealSistemas para o Mundo Real
Sistemas para o Mundo Real
 
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...
TDC2017 | Florianópolis - Trilha Java Melhorando a performance do seu Código ...
 
Bugs, DVCS e tools
Bugs, DVCS e toolsBugs, DVCS e tools
Bugs, DVCS e tools
 
Composição e Integração de Sistemas em 2013
Composição e Integração de Sistemas em 2013Composição e Integração de Sistemas em 2013
Composição e Integração de Sistemas em 2013
 
#Moving br workshop
#Moving br workshop#Moving br workshop
#Moving br workshop
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDD
 
Testes E2E em Cypress com JS
Testes E2E em Cypress com JSTestes E2E em Cypress com JS
Testes E2E em Cypress com JS
 

Viewers also liked

Procesadores de texto
Procesadores de textoProcesadores de texto
Procesadores de texto
saavedra25
 
Busquedas avanzadas
Busquedas avanzadasBusquedas avanzadas
Busquedas avanzadas
Ruthunivo
 
Ministerio feminino por alan rennê alexandrino lima
Ministerio feminino por alan rennê alexandrino limaMinisterio feminino por alan rennê alexandrino lima
Ministerio feminino por alan rennê alexandrino lima
adson232
 
Retrato do Brasil outubro hp
Retrato do Brasil outubro hpRetrato do Brasil outubro hp
Retrato do Brasil outubro hp
Marcelo Bancalero
 

Viewers also liked (20)

Apostila Tecnologia da Informação (TI)
Apostila Tecnologia da Informação (TI)Apostila Tecnologia da Informação (TI)
Apostila Tecnologia da Informação (TI)
 
Mito da Caverna
Mito da CavernaMito da Caverna
Mito da Caverna
 
Procesadores de texto
Procesadores de textoProcesadores de texto
Procesadores de texto
 
Busquedas avanzadas
Busquedas avanzadasBusquedas avanzadas
Busquedas avanzadas
 
Retrato do Brasil Janeiro 2013
Retrato do Brasil Janeiro 2013Retrato do Brasil Janeiro 2013
Retrato do Brasil Janeiro 2013
 
Presentación de finanzas publicas
Presentación de finanzas publicasPresentación de finanzas publicas
Presentación de finanzas publicas
 
Sexta fei
Sexta feiSexta fei
Sexta fei
 
Stephen William Hawking
Stephen William HawkingStephen William Hawking
Stephen William Hawking
 
Ministerio feminino por alan rennê alexandrino lima
Ministerio feminino por alan rennê alexandrino limaMinisterio feminino por alan rennê alexandrino lima
Ministerio feminino por alan rennê alexandrino lima
 
S U N S E T O U R
S  U  N  S E T O U RS  U  N  S E T O U R
S U N S E T O U R
 
LA Poster
LA PosterLA Poster
LA Poster
 
Detecção de quedas em robôs móveis com visão monocular linear
Detecção de quedas em robôs móveis com visão monocular linearDetecção de quedas em robôs móveis com visão monocular linear
Detecção de quedas em robôs móveis com visão monocular linear
 
Retrato do Brasil outubro hp
Retrato do Brasil outubro hpRetrato do Brasil outubro hp
Retrato do Brasil outubro hp
 
Un desayuno especial
Un desayuno especialUn desayuno especial
Un desayuno especial
 
Um olhar ambiental na escola polivalente
Um olhar ambiental na escola polivalenteUm olhar ambiental na escola polivalente
Um olhar ambiental na escola polivalente
 
LoR-Werbaneth
LoR-WerbanethLoR-Werbaneth
LoR-Werbaneth
 
CCIUDADANA
CCIUDADANACCIUDADANA
CCIUDADANA
 
Visanet 5 pgr cometeu crime
Visanet 5   pgr cometeu crimeVisanet 5   pgr cometeu crime
Visanet 5 pgr cometeu crime
 
Mudança de Vida
Mudança de VidaMudança de Vida
Mudança de Vida
 
Relatório CPMI do Cachoeira parte 3
Relatório CPMI do Cachoeira parte 3Relatório CPMI do Cachoeira parte 3
Relatório CPMI do Cachoeira parte 3
 

Similar to Inovando na Plataforma Java

Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
Igor Sobreira
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agile
Alini Rebonatto
 
Cloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App EngineCloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App Engine
Frederico Maia Arantes
 
Django: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento webDjango: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento web
Miguel Galves
 
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo FilhoDesenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho
Tchelinux
 

Similar to Inovando na Plataforma Java (20)

Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
 
Produtividade em Java com Grails
Produtividade em Java com GrailsProdutividade em Java com Grails
Produtividade em Java com Grails
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
Spring roo produtividade no java
Spring roo produtividade no javaSpring roo produtividade no java
Spring roo produtividade no java
 
Linguagens Dinamicas na JVM
Linguagens Dinamicas na JVMLinguagens Dinamicas na JVM
Linguagens Dinamicas na JVM
 
Web Tools Pt B R
Web Tools Pt  B RWeb Tools Pt  B R
Web Tools Pt B R
 
Automação de testes para equipes agile
Automação de testes para equipes agileAutomação de testes para equipes agile
Automação de testes para equipes agile
 
Cloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App EngineCloud Computing - Java no Google App Engine
Cloud Computing - Java no Google App Engine
 
Trabalho 4 Semestre e 5 Semestre 2015
Trabalho 4 Semestre e 5 Semestre 2015Trabalho 4 Semestre e 5 Semestre 2015
Trabalho 4 Semestre e 5 Semestre 2015
 
Implementando Implementando eXtreme treme Programming rogramming em em Java Java
Implementando Implementando eXtreme treme Programming rogramming em em Java JavaImplementando Implementando eXtreme treme Programming rogramming em em Java Java
Implementando Implementando eXtreme treme Programming rogramming em em Java Java
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMind
 
Test day 2012
Test day 2012Test day 2012
Test day 2012
 
Django: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento webDjango: Uso de frameworks ágeis para desenvolvimento web
Django: Uso de frameworks ágeis para desenvolvimento web
 
Frameworks em Java
Frameworks em JavaFrameworks em Java
Frameworks em Java
 
Aula 1 1
Aula 1 1Aula 1 1
Aula 1 1
 
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo FilhoDesenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho
Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho
 
Academia do Arquiteto Globalcode
Academia do Arquiteto GlobalcodeAcademia do Arquiteto Globalcode
Academia do Arquiteto Globalcode
 
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoModularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
 
Automação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira ÁgilAutomação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira Ágil
 

Recently uploaded

Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Dirceu Resende
 

Recently uploaded (11)

COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASCOI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
 
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdfFrom_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
 
Apostila e caderno de exercicios de WORD
Apostila e caderno de exercicios de  WORDApostila e caderno de exercicios de  WORD
Apostila e caderno de exercicios de WORD
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIAEAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPalestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
 
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docxATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
 
Entrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiEntrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo Pagliusi
 
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docxATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
 
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
 

Inovando na Plataforma Java

  • 1. Inovando na Plataforma Java Eteg Tecnologia da Informação
  • 2. Palestrante Wanderson Santos (@wanswins) Arquiteto Corporativo Líder Técnico / Desenvolvedor Instrutor Tecnológico
  • 3. O que é inovação?
  • 4. “Idéiasnovas ou melhoradas, de produtos, serviços ou processos
  • 6. ...que aumentam a eficiência do processo produtivo...
  • 7. ...ou que geram novo ou aprimorado produto.
  • 8. O que é plataforma?
  • 9.
  • 10.
  • 11.
  • 12. Plataforma... Elevação Padrão Estrutura Confiança Sustentação Segurança
  • 13. A plataforma tecnológica é o conjunto que sustenta um software
  • 14. A plataforma tecnológica provê os elementos básicos para criação, execução e manutenção de um software
  • 15. Java? ColdFusion? Database? .NET? Win32? Ruby? Qual sua plataforma? VB? Python? Delphi? PHP? PowerBuilder? ASP?
  • 16. A plataforma Java é o conjunto que sustenta um software Java
  • 17. A plataforma Java é a máquina virtual + bibliotecas básicas O que seria do Java sem o tipo inteiro?
  • 18. A plataformaJava = JVM + JARs essenciais Voltamos a sopa de letrinhas! 
  • 20. Manter os ativos (bibliotecas, utilitários, etc.) Vamos converter nossas bibliotecas para Java/.NET!
  • 21. Manter o conhecimento Vamos aprender como gerar um relatório em Ruby!
  • 22. Menor esforço para treinamento do time Vamos reaprender toda uma plataforma!
  • 23. Bibliotecas e Padrões JMS? JPA? Commons? Java Mail? Quartz? Jasper? iText? Session Beans? Servlets? Hibernate? Tomcat? JAX-WS? Spring Security?
  • 24. Que tal mantertodas elas? Próximo slide por favor! 
  • 25. Linguagem F#? C#? Scala? XML? Pascal? UML? Java? Ruby? Python? VB? Cobol? Latim? C++? Groovy? #FAIL? rs
  • 26. Linguagemfaz parte da plataforma? Tempooooooooooooo...
  • 27. Sim, a linguagem Javafaz parte da plataformaJava (Você gosta da linguagem Java?)
  • 28. Mas, a linguagem Java é somente uma das partes da plataforma Java! Vivaaaaaaaaaaaaaa!!! 
  • 29. Linguagens na JVM Groovy (JSR-241) Scala JRuby Fantom ColdFusion Jython (Python) Rhino (JavaScript) – já integrada ao Java 6
  • 30. Linguagens dinâmicas É a tendência atual do mercado O resultado do código é instantâneo sem necessidade do ciclo compilação/implantação É possível carregar um novo código em tempo de execução, sem necessidade de compilação, contrato de interface, etc. Cenários: regras de negócio, camada de visão, etc.
  • 31. Porque usar outra linguagem? Mais produtivas Menos verbosas que Java Injetam métodos de apoio nas bibliotecas essenciais (Java Class Library) [1,2,3].each { println “numero $it” } Mais poderosas Métodos anônimos (você ainda vai usar um!) Closures
  • 32. Porque não usar... Podem ser mais lentas que linguagem Java Para maioria dos casos não afeta A produtividade é mais importante! Atenda o cliente, depois otimize o código Você pode voltar pro Java quanto precisar! Suporte a IDEs (algumas) As mais consolidadas já possuem bom suporte, inclusive para debug
  • 33. Como começar? Sua equipe é menor e você pode treinar a equipe? CHOOSE YOUR DESTINY  Não tenha medo, é simples! Sua equipe é grande e o tempo pra aprendizado é curto? Vá de Groovy! (mesmo que o projeto já tenha começado)
  • 34. Porquê Groovy? Padrão da Plataforma Java (JSR-241) Já possui um bom ecossistema Aceita sintaxe Java em .groovy Curva de aprendizado reduzida - você pode aprender sob demanda! Se não sabe em Groovy, faça em Java! Why Groovy? http://dzone.com/j9lQ
  • 35. Entidade em Java public class Usuario { private String nome; private Date dataNascimento; public String getNome() { return nome; } /*..não cabe no slide! */ }
  • 36. Entidade em Groovy class Usuario { String nome Date dataNascimento } Mais em Produtividade em Java com Grails Let’s Groovy! 
  • 37. Frameworks Hibernate? JSF 1? JSP? WebWork? Struts 2? JSF 2? Struts 1? Wicket? Spring? Grails? Tapestry 5? EJB 3?
  • 38. Interface Serviço da Aplicação Entidades (Domínio) Acesso a Dados Uni-dune-tê!
  • 39. Tendência: Full-stack Framework Vamos juntar as melhores peças!
  • 40. GSP Spring GORM / JPA GORM (Hibernate)
  • 41. grails create-app MinhaApp 4 horas em 1 minuto!
  • 42. Framework full-stack que une os frameworks Java mais utilizados (Hibernate, Spring, etc.) Utiliza linguagem Groovy ou Java Todo feito em Java, mas você programa em Groovy! Utiliza “Programação por Convenção” Elimina necessidade de configuração
  • 43. Grails É mantida pela SpringSource, do grupo VMWare Sim, a responsável pelo Spring Framework Extensível através de plugins Tem plugin pra TUDO! Baseado em bibliotecas Java que você conhece ou vai conhecer: Autenticação e Autorização Acesso a bancos NOSQL Execução em Background Relatórios e muito mais...
  • 44. Como utilizar Grails? Baixar o pacote mais recente em www.grails.org Descompactar em um pasta e adicionar $GRAILS_HOME no PATH Criar a aplicação: grails create-app minhaApp Adicionar entidades de Domain e Controller seguindo a convenção Eclipse, IDEA ou vi/notepad  Rodar a aplicação localmente grails run-app Mas já? 
  • 45. Mais Grails? Acesse: Produtividade em Java com Grails
  • 46. Desktop X Web Implantação Ubíqua X Usabilidade
  • 47. Tendência: Interfaces Ricas Vamos juntar as melhores peças!
  • 48. AJAX X RIA Duas abordagens
  • 49. Também é J, rs 
  • 50. Aprenda jQuery de forma guiada?www.visualjquery.com Tutoriais são excelentes!
  • 52. Mais JavaFX? Acesse: Aplicações de Interface Rica na Plataforma Java