Você está na página 1de 55

Conhecendo Java

O passado, o presente, e as tendncias futuras da plataforma de desenvolvimento livre mais utilizada no mundo.

Andre Luiz Monteiro da Costa andre.monteiro@prof.infnet.edu.br

Palestrante
Desenvolvedor JAVA com experincia na utilizao de ferramentas e frameworks OpenSource. Ex-docente do Senac - curso de desenvolvedor JAVA. Ex-docente das Faculdades So Jos e Moacyr Bastos. Ex-Analista de Sistemas da IplanRio. Docente da Academia do Concurso Pblico rea de TI. Docente da SOFEP. Atualmente trabalha como arquiteto de software na FAPES.

Palestrante
Professor do Infnet:
- Projeto de Sistemas e Orientao a Objetos com UML - Java Programming - Java Web Applications

A Infncia de Uma Linguagem

O Java uma linguagem baseada no C++, seu desenvolvimento teve inicio em 1991 com a Sun Microsystems em um projeto de codinome Green.

A Infncia de Uma Linguagem

Java foi criado em 1991 por James Gosling, sob o nome Oak, em homenagem a uma rvore de carvalho que ele via da janela de seu escritrio. Mais tarde descobriu-se que j existia uma linguagem com esse nome. O nome java foi sugerido por acaso quando a equipe visitava a cafeteria (java era o nome de uma cidade de origem de um caf importado).

O Objetivo por trs de tudo


O objetivo do projeto no era a criao de uma nova linguagem de programao, mas antecipar e planejar a prxima onda do mundo digital. Eles acreditavam que, em algum tempo, haveria uma convergncia dos computadores com os equipamentos e eletrodomsticos comumente usados pelas pessoas no seu dia-a-dia.

Caracterstica Principal
Capaz de rodar em diferentes dispositivos de hardware, sem alterao ou recompilao. Era parte do projeto Star Seven equipamentos e casas inteligentes. (*7), em automao de

DUKE mascote da SUN

Fonte: Sun Microsystems http://java.sun.com/features/1998/05/birthday.html

A Infncia e o Crescimento
Infelizmente, esta era uma idia muito a frente do seu tempo, e o projeto *7 nunca foi comercializado. Em 1994, com o boom da internet, surgiu uma nova rea de aplicao para a linguagem: navegao com contedo dinmico (APPLET JAVA). Aps seu lanamento oficial em 1995, Java e a tecnologia de Applets cresceram rapidamente, atravs de colaborao com a Netscape.

Finalidade da Tecnologia
Criar pginas Web com contedo interativo e dinmico Desenvolver aplicativos corporativos de grande porte Aprimorar a funcionalidade de servidores da WWW Fornecer aplicativos para dispositivos destinados ao consumidor final (telefones celulares, pagers, assistentes pessoais digitais)

Fase Adulta
Com a adoo de novos padres para pginas dinmicas, como Flash, a tecnologia de applets perdeu importncia. Lanada em 1999, a especificao J2EE 1.2 (Java Enterprise Edition) j continha as sementes da plataforma livre dominante no mercado de aplicaes web.

Funcionamento
Programas tradicionais devem ser compilados para cada plataforma.

WINDOWS

LINUX

Funcionamento
Programas Java podem ser compilados uma nica vez, e executam em qualquer lugar.

write once, use anywhere!

Caractersticas
Simplicidade
A linguagem derivada da linguagem C e C++, amplamente utilizadas poca. Alm disso, o ambiente retira do programador a responsabilidade de gerenciar a memria e os ponteiros.

Garbage Collector

Caractersticas
Simplicidade Orientada a Objetos
permite a herana e a reutilizao de cdigos de forma dinmica e esttica.

Caractersticas
Simplicidade Orientada a Objetos Independente de Plataforma

permite a herana e a reutilizao de cdigos de forma dinmica e esttica.

Caractersticas
Simplicidade Orientada a Objetos Independente de Plataforma Distribuda
Aplicaes Java podem abrir e acessar objetos atravs da rede via URL's (http/ftp) e com a mesma facilidade que os programadores usam quando acessam um sistema de arquivo local.

Caractersticas
Simplicidade Orientada a Objetos Independente de Plataforma Distribuda Robusta
Java trabalha com uma rgida preveno de comportamento malicioso dos programas, tais como: estouro de pilha, corrupo de memria de outros processos, etc. (fortemente tipada)

Caractersticas
Simplicidade Orientada a Objetos Independente de Plataforma Distribuda Robusta Alto Desempenho
A linguagem Java suporta vrios recursos de alto desempenho, como multithreading, compilao just-in-time e utilizao de cdigo nativo.

Verses
Code Version
J2SE 1.4.2

Developer Version
Java 2

Codename
Mantis

Release
2003

JSE 5.0

Java 5

Tiger

2005

JSE 6.0 JSE 7.0

Java 6 Java 7

Mustang Dolphin

2006 2007

A Plataforma Java
:: Java mais que uma linguagem, uma plataforma: Java Standard Edition (JSE) Edio bsica para desenvolvimento desktop. Java Enterprise Edition (JEE) Tecnologias para desenvolvimento em servidores. Java Micro Edition (JME) Edio para desenvolvimento para dispositivos mveis.

A Plataforma Java - Standard Edition

A Plataforma Java - Standard Edition

A Plataforma Java - Enterprise Edition


JEE uma gama de tecnologias desenvolvidas sobre a distribuio bsica. Fornecem bases de implementao para software de estrutura cliente-servidor, como as aplicaes web. O desenvolvedor encontra na plataforma suporte a implementao de interfaces, controle da lgica interna de negcio, acesso a banco de dados, transaes, etc.

A Plataforma Java Enterprise Edition

Java EE desenhado para suportar aplicaes que implementem servios empresariais para clientes, empregados, fornecedores e quaisquer outros que gerem demandas ou contribuies para a empresa (Tutorial JEE - Sun)

A Plataforma Java Mobile Edition

There are two configurations. The first configuration, the Connected Device Configuration (CDC), uses the classic Java virtual machine. This virtual machine is a full-featured virtual machine with the same functionality you would find in the virtual machine residing on your desktop system. The second configuration, the Connected Limited Device Configuration (CLDC), uses the K Virtual Machine, a small footprint virtual machine for severely memory constrained environments. The CLDC is targeted for Java environments of 128-512KB, and the CDC is targeted for Java environments of greater than 512KB.
(java.sun.com/products/personaljava/faq.html)

A Plataforma Java Enterprise Edition


Entre as especificaes JEE se encontram:
Servlets (aplicaes web) JDBC (bancos de dados relacionais) JCA (conexo com mainframes e aplicaes legadas) JTA (acesso a transaes distribudas) JavaMail (e-mail internet em Java) JMF (acesso a informaes multimdia) EJB (componentes distribudos e persistentes) JAXP (processamento de XML e web services) JMX (gerenciamento de servidores, redes e aplicaes)

A Plataforma Java

Java na atualidade

Presente
Java e os Dias de Hoje

Java na atualidade
Hoje Java pode ser encontrado em celulares, DVDs, chips, servidores, browsers, desktops, robs e at espaonaves.

Conta com mais de 5 milhes de desenvolvedores ao redor do mundo, organizados em comunidades que atuam em fruns, projetos e especificaes oficiais.

Desde 2006, em uma iniciativa surpreendente da Sun, Java uma plataforma Open-Source.

Java na atualidade

http://meapplicationdevelopers.dev.java.net/fragmentation.html

Java na atualidade

Java na atualidade

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Java na atualidade

Ambientes de Desenvolvimento Java


Netbeans. Eclipse. Borland JBuilder. Oracle JDeveloper.

IDEs Java

Inserir IDE NEtbeans

Os Desafios Futuros
Ao mesmo tempo em que parece estar em seu pice, a linguagem Java nunca enfrentou tantas controvrsias. Diversas iniciativas, em linguagens dinmicas como Ruby/Rails, desafiam abertamente premissas fundamentais do estilo de programao experimentado em Java.

Os Desafios Futuros
O mercado est cada vez mais optando por ambientes hbridos, com o Java e .NET convivendo.

Os Desafios Futuros
Dados de mercado por tamanho:

Pequenas e mdias empresas so dominadas pela Microsoft: .NET Grandes empresas e multi-nacionais guiadas por infraestruturas heterogneas: JAVA EE

Os Desafios Futuros
Produtividade do desenvolvedor:

.NET geralmente aceita por ter maior produtividade. JAVA EE pode requerer desenvolvedores mais sofisticados.

Os Desafios Futuros
Estratgia de deciso 5 fatores a considerar:

Examinar possibilidades de investimentos; Pesar a portabilidade das aplicaes; JAVA EE portvel Verificar complexidade das aplicaes; UI complexas = .NET Arquitetura complexa = JAVA EE Investigar suporte do fabricante; Computar custos com cuidado;

Os Desafios Futuros
Comparativo:

CARACTERSTICA Tecnologia Linguagem Fabricantes Interpretador Pginas Web dinmicas Aplicativos RAD Componentes de negcio Acesso a base de dados Suporta webservices Balanceamento de carga

JAVA EE .NET Padro Depende do Produto JAVA C# Mais de 30 Microsoft JRE CLR JSP ASP.NET Swing, JSF e AJAX Win Forms e Web Forms EJB .NET JDBC ADO.NET Sim Sim Sim Sim

Tipagem ?
Ruby uma linguagem de tipagem-dinmica, como Python, Groovy, Scala, e outras. Rails um framework desenvolvido para Ruby, a fim de agilizar o desenvolvimento de sistemas de internet. A soluo RubyOnRails compete com as tecnologias Java destinadas a construo de Aplicaes Web. A popularidade do Ruby, vem de uma linguagem mais simples, e de um framework que requer pouco cdigo para fazer muitas coisas.

Uma p pgina em Python ou Ruby pode levar metade do tempo que se tomaria para escrevescrev-la em Java Java

Tipagem ?
A comunidade Java no v linguagens dinamicamente-tipadas como inimigas. A especificao Java JSR-223 (Scripting for the Java Platform) prev a abertura da plataforma para execuo de linguagens de script. A possibilidade de utilizar linguagens diferentes para seus fins mais apropriados, em uma plataforma madura um ponto positivo para a maior parte da comunidade Java. Assim, as aplicaes no precisam abrir mo dos tantos recursos e frameworks disponveis para plataforma Java.

Tipagem ?

Futuro ?
Java mais que uma Linguagem

Futuro ?
O futuro do Java no reside na linguagem, mas na plataforma e no ecossistema que se desenvolveu em torno dela. Um exemplo a IDE Eclipse, que apesar de feita em Java, utilizada para desenvolvimento em inmeras linguagens, ambientes, e para fins diversos. Outros exemplos so os super-servidores de aplicaes, como WebSphere, BEA Logic ou JBOSS, que vo muito alm da prpria linguagem, oferecendo melhoria contnua de aplicaes e processos, atravs da concorrncia aberta.

Futuro ?
Por ser portvel e robusta, alm de possuir um rico conjunto de classes, a linguagem Java tem ganhado espao em projetos de robtica e pesquisa aeroespacial.

Fonte: Sun Microsystems java.sun.com/developer/technicalArticles/ Programming/robotics/

Fonte: blogs.sun.com/simonri

Fonte: blogs.sun.com/simonri

Uma Aposta para o Futuro


Mercado de jogos rodam em qualquer celular com JVM Java. TV Digital conversores possuem Java em seu middleware. GSM 90% dos chips GSM adotaram Java como padro. G24-Java mdulo wireless da Motorola desenvolvido para operar em java, ampliando o potencial para personalizao de aplicativos e configuraes, alm de permitir que as atualizaes sejam realizadas remotamente (11/09/2008).

Uma Aposta para o Futuro


Televiso Digital no Brasil: os conhecimentos e tecnologias associadas a ela ganham destaque e o mercado deve crescer muito nos prximos anos.
Nicho: desenvolvimento de sistemas que ofeream suporte produo de contedo. .

A tecnologia da plataforma JAVA o suporte a vrias tecnologias que permitem a criao de sistemas deste tipo que, unindo-se a pacotes e Frameworks especficos, oferecem as ferramentas necessrias. (JavaTV ).

Mercado Java - Salrios


Desenvolvedor Junior = R$ 2.259,00 (CLT) Desenvolvedor Pleno = R$ 3.560,00 (CLT) Desenvolvedor Snior = R$ 5.015,00 (CLT) Gerente de Projetos de Sistemas = R$ 3.832,00 R$ 8.803,00 Gerente de TI = R$ 5.563,00 R$ 13.243,00

*Valores M Mdios de Mercado Fonte: dicasinfodicasinfo-Exame

O Pioneirismo do Infnet
O Infnet foi o pioneiro do ensino de Java no Rio de Janeiro, ministrando curso desta tecnologia antes mesmo da Sun.

Formao Desenvolvedor Java


Cdigo Nome do curso Projeto de Sistemas e Orientao a Objetos com UML I550 Ensinar conceitos de orientao a objetos e sua utilizao no processo de desenvolvimento de software usando UML. 40 h Horas

Java Programming I552 Ensinar a programar em Java para alunos que j sabem programar em qualquer outra linguagem. 48 h

Java Web Applications I554 Ensinar questes avanadas do desenvolvimento de aplicaes Web com a linguagem de programao Java e os frameworks mais usados no mercado. 48 h

A Formao Completa do Infnet


Formao Desenvolvedor Java: Sistemas Distribudos
Cdigo I550 Nome do curso Projeto de Sistemas e Orientao a Objetos com UML Ensinar conceitos de orientao a objetos e sua utilizao no processo de desenvolvimento de software usando UML. Java Programming Ensinar a programar em Java para alunos que j sabem programar em qualquer outra linguagem. Java Web Applications Ensinar questes avanadas do desenvolvimento de aplicaes Web com a linguagem de programao Java e os frameworks mais usados no mercado. Java Enterprise Applications Ensinar conceitos avanados de programao em Java para sistemas com alta demanda de acesso e segurana. Java Security Ensinar conceitos avanados de segurana em Java para sistemas desktop e J2EE. Java Mobile Ensinar programao Java para dispositivos mveis, como celulares e hand helds. Java Workshop Colocar em prtica o conhecimento avanado de desenvolvimento de aplicaes Java. Horas 40 h

I552

48 h

I554

48 h

I556

48 h

I558

24 h

I560

32 h

I562

32 h

Agradecimentos
- Toms de Aquino - Rafel Castaneda

OBRIGADO!

www.infnet.edu.br cursos@infnet.edu.br

2122-8800
Esta palestra est disponvel em:
http://www.infnet.edu.br/Home/Eventos/CiclodePalestraseMiniCursos//tabid/253/Default.aspx

Ministrada por

Andr Luiz Monteiro da Costa


E-mail: andre.monteiro@prof.infnet.edu.br