TECNOLOGIA JAVA TENDÊNCIAS, MERCADO E FUTURO
Bacharel em Ciências da Computação PUC/SP 2001 Pós-graduado em Gestão de Negócios (MBA) IPT/USP 2006 Arquiteto de Software Desenvolvedor Java Consultoria, Treinamento e Mentoring Experiência de 10 anos (8 anos em Java) Cerca de 50 aplicações Java diferentes Palestrante Java: Just Java, Conexão Java Artigos Publicados: Java Magazine, GUJ
Discover Technology Informática Há mais de 12 anos no mercado de TI Consultoria, Projetos, Soluções e Treinamento Alguns dos clientes atendidos:
Java e Você
Quem já usou Java?
Quem já usou Java? Todo mundo usa Java no seu dia-a-dia! Imposto de Renda
Java is Everywhere
Java is Everywhere, Java Runs Anywhere Write Once, Run Anywhere!
Java is Everywhere, Java Runs Anywhere Compilador gera o bytecode (.class) Java Virtual Machine (JVM) executa o programa
Java is Everywhere E para provar...
TECNOLOGIA JAVA
Você já provou Java? Delicioso!
Tecnologia Java - Início Projeto inicial: Oak (liderado por James Gosling) Lançada oficialmente em 1995 como Java Atualmente na versão 6 Oak
Tecnologia Java Linguagem Java Orientada a objetos Fortemente (estaticamente) tipada Sintaxe parecida com C/C++ Porém não possui ponteiros Poderosa linguagem de desenvolvimento de software public class PrimeiroPrograma { public static void main( String[] args ) { System.out.println( "Meu primeiro programa em Java" ); } }
Tecnologia Java - Plataforma Não é apenas uma linguagem de programação É uma plataforma completa para: Desenvolvimento e Execução de sistemas de software Composta por: Java Standard Edition (Java SE ou JSE, antigo J2SE) Desenvolvimento em geral / API padrão desktop, server Java Enterprise Edition (Java EE ou JEE, antigo J2EE) Desenvolvimento enterprise / server-side larga escala Java Micro Edition (Java ME ou JME, antigo J2ME) Desenvolvimento para dispositivos móveis ou limitados
Tecnologia Java - Plataforma Java SE (atualmente versão 6) Java Runtime Environment (JRE) JVM + APIs Ambiente de execução das aplicações Java Java Development Kit (JDK) JRE + kit desenv. Kit de desenvolvimento de aplicações Java
Tecnologia Java - Plataforma Java EE (atualmente versão 5) Voltado para aplicações de larga escala Componentes reutilizáveis e distribuídos (EJB) Oferece serviços de infra-estrutura Ex: transações, mensagens, persistência etc Aplicações web e multi-camadas
Tecnologia Java - Plataforma Java ME Voltado para dispositivos móveis e/ou limitados Celular, PDA, dispositivos embarcados etc Funções mais limitadas que o Java SE Divida em CDC e CLDC
Tecnologia Java - Plataforma
Tecnologia Java Aberta e Padronizada JVM é Open Source (Open JDK) Java não te prende a um fornecedor (vendor lock-in) Liberdade para escolher fornecedores Ex: servidores de aplicação, bibliotecas, ferramentas etc Mantido pelo Java Communnity Process (JCP) Formado por empresas e desenvolvedores Sun, Oracle, IBM, Google, Novell, Xerox, Motorola, etc Define os rumos e os padrões da tecnologia Expert Groups definem os padrões Java Specification Request (JSR)
JAVA E A SOPA DE LETRINHAS
Sopa de Letrinhas do Java Causa certa confusão para os principiantes São muitas tecnologias e APIs Cada uma para um propósito Não se preocupe em saber tudo Aprenda o básico Depois foque no que lhe interessa Aos poucos vá pesquisando as outras letrinhas JVM, JRE, JDK, JSE, JEE, JME, JAX-WS, JAX-P, JAX-B, JNI, JINI, JSP, JSF, EJB, JMS, JMX, JDBC, AWT, XML, RMI/IIOP, SOAP, CDC, CLDC, MIDP, LOG4J
COMEÇANDO COM JAVA
Começando com Java Baixe e instale o JDK http://java.sun.com/javase/downloads/ Escreva os primeiros programas no Notepad Compile e rode o código na mão (linha de comando) É fundamental entender como funciona o processo Depois baixe uma IDE (ambiente de programação) Escolha a sua preferida e ganhe em produtividade
Começando com Java - IDE Existem dezenas de boas IDEs para Java Integrated Development Environment (IDE)
Começando com Java - IDE Eclipse Versão atual: Eclipse Ganymede 3.4 Pontos fortes: A mais adotada no mercado Leve e fácil de usar Ótimos plugins e ferramentas Ótima Integração Aceita outras linguagens Uso livre (gratuito) URL: www.eclipse.org Fornecedor: Eclipse Foundation
Começando com Java - IDE NetBeans Versão atual: NetBeans IDE 6.1 Pontos fortes: Boa aceitação no mercado Leve e fácil de usar Ótimos plugins e ferramentas Ótima Integração Aceita outras linguagens Uso livre (gratuito) Open Source URL: www.netbeans.org Fornecedor: Sun (principal sponsor)
Começando com Java - IDE Oracle JDeveloper Versão atual: JDveloper 11g Pontos fortes: Ótimas ferramentas Ótima Integração com Oracle Uso livre (gratuito) Pontos negativos: Muito integrado com Oracle URL: oracle.com/technology/products/jdev/ Fornecedor: Oracle
Começando com Java - IDE IntelliJ Versão atual: IntelliJ 7 Pontos fortes: Ótimas ferramentas Ótima Integração Pontos negativos: Licensa paga (trialde 30 dias) URL: www.jetbrains.com/idea/ Fornecedor: Jet Brains
Começando com Java - IDE JBuilder 2008 URL: codegear.com/products/jbuilder Fornecedor: Embarcadero Technologies Web Sphere Application Developer URL: ibm.com/software/awdtools/developer /application/ Fornecedor: IBM jedit 4.3 URL: www.jedit.org Fornecedor: jedit Community
O QUE APRENDER SOBRE JAVA
O Que Aprender Sobre Java Conhecimento básico inicial Fundamentos da linguagem Ferramentas de desenvolvimento Orientação a Objetos (essencial) APIs e bibliotecas padrão Coleções, I/O, JDBC, etc Conhecimento avançado Generics Threads Reflection
O Que Aprender Sobre Java Conhecimento Web Especificação de Servlets / JSP Framework Web (MVC-2) Struts, Struts2, vraptor, Mentawai, JavaServer Faces (JSF) Servidores de Aplicação Web Container JavaScript Ajax Web 2.0
O Que Aprender Sobre Java Conhecimento Java EE Enterprise Java Beans (EJB) EJB 3.0 (atual) e EJB 2.1 (legado) Java Persistence API (JPA) Web Services (SOAP / REST) Java Message Service (JMS) Transações (JTS / JTA) Servidores de Aplicação Java EE Container
O Que Aprender Sobre Java Servidores de aplicação São software de infra-estrutura (middleware) Onde as aplicações executam no servidor (server side) Provê: escalabilidade, manutenabilidade, confiabilidade, disponibilidade, extensibilidade, desempenho, gerenciamento e segurança
O Que Aprender Sobre Java Servidores de aplicação Web Container executam aplicações Web / Servlets Apache Tomcat Jetty Java EE Container executam os EJBs e outros serviços Oracle Containers for Java (OC4J) IBM Web Sphere BEA Weblogic Glassfish JBoss
O Que Aprender Sobre Java Conhecimento do desenvolvedor completo e eficaz Melhores práticas de programação Unified Modeling Language (UML) Design Patterns Domain Driven Design Arquitetura de software Modelo em camadas Cluster e Load Balance Alta disponibilidade (HA) Tolerância a falhas (fail over) Metodologias RUP, XP, Scrum
CERTIFICAÇÕES JAVA
Certificações Java Sun Certified Java Associate (SCJA) Sun Certified Java Programmer (SCJP) Sun Certified Java Developer (SCJD) Sun Certified Web Component Developer (SCWCD) Sun Certified Business Component Developer (SCBCD) Sun Certified Developer for Java Web Services (SCDJWS) Sun Certified Mobile Application Developer (SCMAD) Sun Certified Enterprise Architect (SCEA)
Certificações Java
RAIO-X DO MERCADO
Linguagens Mais Populares (setembro/08) Posição Linguagem Popularidade 2007/2008 1 JAVA (%) 20,715 2 C 15,379 3 C++ 10,716 + 4 Visual Basic 10,490 -- 5 PHP 9,243 -- 6 Python 5,012 + 7 Perl 4,841 -- 8 C# 4,334 -- 9 JavaScript 3,130 10 Delphi 3,055 + 11 Ruby 2,762 -- 13 PL/SQL 0,700 -- 20 COBOL 0,360 -- * ASP, ASP.NET, Ruby on Rails desconsideradas. Fonte: TIOBE - http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Linguagens Mais Populares (setembro/08) JAVA C C++ VB * ASP, ASP.NET, Ruby on Rails desconsideradas. Fonte: TIOBE - http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Linguagens Mais Populares (setembro/08) Categoria Participação (%) Linguagens Orientada a Objetos 57,60 Linguagens Procedurais 39,90 Linguagens Funcionais 1,90 Linguagens Lógicas 0,70 Categoria Participação (%) Ling. Estaticamente Tipadas 59,10 Ling. Dinamicamente Tipadas 40,90 * ASP, ASP.NET, Ruby on Rails desconsideradas. Fonte: TIOBE - http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
TENDÊNCIAS DE MERCADO
Tendências de Mercado SOA e ESB Service-Oriented Architecture (SOA) Enterprise Service Bus (ESB) Integração: Workflow, BPM, Messaging, EJB, FTP, Web Services, BD, ERP, CRM, etc Maior agilidade nos negócios Produtividade e reuso
Tendências de Mercado Nova Onda Linguagens dinâmicas (Scripting languages) Ruby on Rails Python Groovy JavaScript Ajax, Prototype, script.aculo.us (Web 2.0) Rodam na JVM e IDEs do Java JRuby Jython Groovy Rhino
FUTURO DO JAVA
Futuro do Java Novas versões a caminho Java SE 7 Java EE 6 Servlets 3.0 EJB 3.1 JPA 2.0 JSF 2.0
MATERIAL DE REFERÊNCIA
Revistas Java Magazine - www.javamagazine.com.br Mundo Java - www.mundojava.com.br
Sites Especializados GUJ - www.guj.com.br Portal Java - www.portaljava.com.br Java - java.sun.com The Server Side - www.theserverside.com Java World - www.javaworld.com InfoQ - www.infoq.com
Eventos Just Java - www.justjava.com.br Sun Tech Days - www.suntechdays.com.br Falando em Java - www.falandoemjava.com.br TDC - www.thedevelopersconference.com.br Conexão Java - www.conexaojava.com.br Google Developer Day, É dia de Java (São Carlos)
daniel@danieldestro.com.br http://java.danieldestro.com.br http://www.discover.com.br Programa de Estágios 2009 (Janeiro) rh@discover.com.br Muito Obrigado!