Вы находитесь на странице: 1из 54

TECNOLOGIA JAVA

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
Discover Technology Informática
Daniel Destro do Carmo

 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?
Daniel Destro do Carmo
Quem já usou Java?
Daniel Destro do Carmo

 Todo mundo usa Java no seu dia-a-dia!

Imposto de Renda
Java is Everywhere
Java is Everywhere, Java Runs Anywhere
Daniel Destro do Carmo

 Write Once, Run Anywhere!


Java is Everywhere, Java Runs Anywhere
Daniel Destro do Carmo

 Compilador gera o bytecode (.class)


 Java Virtual Machine (JVM) executa o programa
Java is Everywhere
Daniel Destro do Carmo

 E para provar...
TECNOLOGIA JAVA
Você já provou Java?
Daniel Destro do Carmo

 Delicioso!
Tecnologia Java - Início
Daniel Destro do Carmo

 Projeto inicial: Oak (liderado por James Gosling)


 Lançada oficialmente em 1995 como Java
 Atualmente na versão 6

Oak
Tecnologia Java – Linguagem Java
Daniel Destro do Carmo

 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
Daniel Destro do Carmo

 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
Daniel Destro do Carmo

 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
Daniel Destro do Carmo

 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
Daniel Destro do Carmo

 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
Daniel Destro do Carmo
Tecnologia Java – Aberta e Padronizada
Daniel Destro do Carmo

 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
Daniel Destro do Carmo

 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
Daniel Destro do Carmo

 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
Daniel Destro do Carmo

 Existem dezenas de boas IDEs para Java


 Integrated Development Environment (IDE)
Começando com Java - IDE
Daniel Destro do Carmo

 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
Daniel Destro do Carmo

 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
Daniel Destro do Carmo

 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
Daniel Destro do Carmo

 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
Daniel Destro do Carmo

 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
Daniel Destro do Carmo

 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
Daniel Destro do Carmo

 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
Daniel Destro do Carmo

 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
Daniel Destro do Carmo

 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
Daniel Destro do Carmo

 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
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


CERTIFICAÇÕES JAVA
Certificações Java
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)
Certificações Java
Daniel Destro do Carmo
RAIO-X DO MERCADO
Linguagens Mais Populares (setembro/08)
Daniel Destro do Carmo

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)
Daniel Destro do Carmo

JAVA

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)
Daniel Destro do Carmo

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
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
Tendências de Mercado – Nova Onda
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
FUTURO DO JAVA
Futuro do Java
Daniel Destro do Carmo

 Novas versões a caminho


 Java SE 7
 Java EE 6
 Servlets 3.0
 EJB3.1
 JPA 2.0

 JSF 2.0
MATERIAL DE REFERÊNCIA
Revistas
Daniel Destro do Carmo

 Java Magazine - www.javamagazine.com.br


 Mundo Java - www.mundojava.com.br
Sites Especializados
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
Eventos
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)
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!

Вам также может понравиться