Inovando na Plataforma JavaEteg Tecnologia da Informação
PalestranteWanderson Santos (@wanswins)Arquiteto CorporativoLíder Técnico / DesenvolvedorInstrutor 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çãoPadrãoEstruturaConfiançaSustentaçãoSeguranç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ásicasO que seria do Java sem o tipo inteiro?
A plataformaJava = JVM + JARs essenciaisVoltamos a sopa de letrinhas! 
Porque inovar em Java?
Manter os ativos (bibliotecas, utilitários, etc.)Vamos converter nossas bibliotecas para Java/.NET!
Manter o conhecimentoVamos aprender como gerar um relatório em Ruby!
Menor esforço para treinamento do timeVamos reaprender toda uma plataforma!
Bibliotecas e PadrõesJMS?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! 
LinguagemF#?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 JVMGroovy (JSR-241)ScalaJRubyFantom ColdFusionJython (Python)Rhino (JavaScript) – já integrada ao Java 6
Linguagens dinâmicasÉ a tendência atual do mercadoO 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 produtivasMenos verbosas que JavaInjetam métodos de apoio nas bibliotecas essenciais (Java Class Library)[1,2,3].each { println “numero $it” } Mais poderosasMétodos anônimos (você ainda vai usar um!)Closures
Porque não usar...Podem ser mais lentas que linguagem JavaPara maioria dos casos não afetaA produtividade é mais importante!Atenda o cliente, depois otimize o códigoVocê 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 ecossistemaAceita sintaxe Java em .groovyCurva 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 Javapublic class Usuario {private String nome;private Date dataNascimento;public String getNome() {	return nome;   }   /*..não cabe no slide! */}
Entidade em Groovyclass Usuario {String nomeDate dataNascimento}Mais em Produtividade em Java com GrailsLet’s Groovy! 
FrameworksHibernate?JSF 1?JSP?WebWork?Struts 2?JSF 2?Struts 1?Wicket?Spring?Grails?Tapestry 5?EJB 3?
InterfaceServiço da AplicaçãoEntidades (Domínio)Acesso a DadosUni-dune-tê!
Tendência: Full-stack FrameworkVamos juntar as melhores peças!
GSPSpringGORM / JPAGORM (Hibernate)
grails create-app MinhaApp4 horas em 1 minuto!
Framework full-stack que une os frameworks Java mais utilizados (Hibernate, Spring, etc.)Utiliza linguagem Groovy ou JavaTodo 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 FrameworkExtensível através de pluginsTem plugin pra TUDO! Baseado em bibliotecas Java que você conhece ou vai conhecer:Autenticação e AutorizaçãoAcesso a bancos NOSQLExecução em BackgroundRelatórios e muito mais...
Como utilizar Grails?Baixar o pacote mais recente em www.grails.orgDescompactar em um pasta e adicionar $GRAILS_HOME no PATHCriar a aplicação: grails create-app minhaAppAdicionar entidades de Domain e Controller seguindo a convenção Eclipse, IDEA ou vi/notepad Rodar a aplicação localmentegrails run-appMas já? 
Mais Grails? Acesse: Produtividade em Java com Grails
Desktop X WebImplantação Ubíqua X Usabilidade
Tendência: Interfaces RicasVamos juntar as melhores peças!
AJAX X RIADuas abordagens
Também é J, rs 
Aprenda jQuery de forma guiada?www.visualjquery.comTutoriais são excelentes!
Tudo em casa!
Mais JavaFX? Acesse: Aplicações de Interface Rica na Plataforma Java
Obrigado!wanderson@eteg.com.brTwitter: @wanswins

Inovando na plataforma Java