TENDÊNCIAS, MERCADO E FUTURO
Daniel Destro do Carmo
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
Daniel Destro do Carmo
Discover Technology Informática
Há mais de 12 anos no mercado de TI
Consultoria, Projetos, Soluções e Treinamento
Daniel Destro do Carmo
Daniel Destro do Carmo
Quem já usou Java?
Todo mundo usa Java no seu dia-a-dia!
Daniel Destro do Carmo
Java is Everywhere, Java Runs Anywhere
Daniel Destro do Carmo
Java is Everywhere, Java Runs Anywhere
Compilador gera o bytecode (.class)
Daniel Destro do Carmo
Java is Everywhere
Daniel Destro do Carmo
Delicioso!
Daniel Destro do Carmo
Tecnologia Java - Início
Projeto inicial: Oak (liderado por James Gosling)
Lançada oficialmente em 1995 como Java
Atualmente na versão 6
Daniel Destro do Carmo
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" ); }
Daniel Destro do Carmo
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)
Daniel Destro do Carmo
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.
Daniel Destro do Carmo
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
Daniel Destro do Carmo
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
Daniel Destro do Carmo
Daniel Destro do Carmo
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
Daniel Destro do Carmo
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…
Daniel Destro do Carmo
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)
Daniel Destro do Carmo
Começando com Java - IDE
Existem dezenas de boas IDEs para Java
Daniel Destro do Carmo
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
Daniel Destro do Carmo
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
Daniel Destro do Carmo
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
Daniel Destro do Carmo
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
Daniel Destro do Carmo
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
Daniel Destro do Carmo
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
Daniel Destro do Carmo
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
Daniel Destro do Carmo
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
Daniel Destro do Carmo
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
Daniel Destro do Carmo
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
Daniel Destro do Carmo
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
Daniel Destro do Carmo
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)
Daniel Destro do Carmo
Daniel Destro do Carmo
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
Daniel Destro do Carmo
Linguagens Mais Populares (setembro/08)
JAVA C
C++
VB
Daniel Destro do Carmo
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
Daniel Destro do Carmo
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
Daniel Destro do Carmo
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
Daniel Destro do Carmo
Novas versões a caminho
Java SE 7 Java EE 6 Servlets 3.0 EJB 3.1 JPA 2.0 JSF 2.0
Futuro do Java
Daniel Destro do Carmo
Java Magazine - www.javamagazine.com.br
Mundo Java - www.mundojava.com.br
Daniel Destro do Carmo
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
Daniel Destro do Carmo
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)