História do Java - Bruno Toledo! Quem sou?

Propaganda
JAVA
Professor: Bruno Toledo
Histórico
A linguagem JAVA foi projetada e
implementada por um pequeno grupo de
pessoas,
coordenado
por
James
Gosling, na Sun Microsystems em
Mountain View, Califórnia, em 1991.
James Gosling
Histórico
1a TENTATIVA
 Ideia de um protótipo de dispositivo para
comunicação, tipo controle remoto, para o
controle de aparelhos eletrodomésticos.
 Sugestão inicial: C++
 Orientada a objetos.
 Extremamente popular.
 Tentativa de desenvolver o sistema
operacional Star7 em C++.
Histórico
O que é o Java?
 Java é...






Um software?
Uma tecnologia?
Uma linguagem de programação?
Uma plataforma de desenvolvimento?
Uma marca de café?
Uma ilha da Indonésia?
 Ou tudo isso?
Histórico
Problema com LP´s existentes
 C++ (e outras linguagens) não estava desempenhando
a tarefa satisfatoriamente. Java tem ênfase do C++ está
na velocidade.
 O que se buscava ?
 Mínimo uso de memória;
 Baixo custo;
 Confiabilidade;
 Compatibilidade.
Histórico
 Requisitos para a nova linguagem
 Pequena
 Eficiente
 Facilmente portável
 Desenvolvimento de software para diferentes plataformas.
 Confiável
 Se o software embutido falhar, o fabricante terá que
substituir todo o aparelho.
 Simples
 Donas de casa teriam que se adaptar sem transtornos aos
novos aparelhos.
 Perspectiva de vida útil longa
 Toda vez que novos programas fossem desenvolvidos, os
mesmos teriam que ter compatibilidade retroativa.
Histórico
 Equipe trabalhava no projeto de software para
produtos eletrônicos de consumo (software para
eletrodomésticos). A ideia era criar um interpretador
para pequenos dispositivos, facilitando a reescrita
de software para aparelhos eletrônicos.
 TVs interativas, torradeiras interativas, lâmpadas interativas, etc.
 Todos interconectados e com mesma interface.
PROJETO GREEN
Histórico
2a TENTATIVA
 PROJETO GREEN - 1992
 Propósito de testar um novo tipo de interface do usuário para
controlar um ambiente doméstico (casa inteligente).
 Videocassete,TV, luzes, telefone, etc.
 *7 (Star Seven)
 Computador experimental portátil, tipo controle remoto, com
interface gráfica e interativa.
 Nova linguagem de programação:
OAK.
Histórico
2a TENTATIVA
PROJETO GREEN
*7 (Star Seven)
*7 utilizava uma interface
gráfica bastante atraente para
controlar os eletrodomésticos.
DUKE – figura
animada do
protótipo *7
Histórico
 Protótipo do Gream Team
 Dispositivo portátil, sem teclado, botões e com
uma pequena tela.
 Controle se dava por toques na tela.
 Interface gráfica - uma casa animada com um
guia de turismo, o mascote DUKE.
Histórico
 James Gosling (Sun) e equipe projetou uma
nova linguagem para manipular o Star7.
 Linguagem denominada de OAK.
(Precursora de Java)
OAK significa CARVALHO em inglês, nome que surgiu pois
dava pra ver um pé de carvalho da janela do escritório onde estava sendo
desenvolvido um equipamento chamado *7 (Star Seven).
Histórico
 Por problemas de copyrigth (já existia uma
linguagem chamada OAK) a Sun altera o
nome da linguagem.
 Em 23 de maio de 1995 lançam oficialmente a
nova linguagem com nome:
Java
Por que o nome Java?
 Java é o nome de uma ilha do Pacífico, onde
se produz uma certa variedade de café
homônimo.
 A inspiração bateu à equipe de
desenvolvimento ao saborear esse
café em uma lanchonete local.
 Era extremamente apreciado por
profissionais da área de software (ainda o é).
Por que o nome Java?
Café da Ilha de Java
Linguagem Java
E depois do Projeto Green?
 Projeto para demonstração de vídeo-sob-demanda.
 Foi demonstrada que a interface animada do *7
também era adequada para TVs interativas.
Linguagem Java
 1994: Mosaic revoluciona a cara da Internet.
 WWW (World Wide Web).
 Criação do HotJava
 Navegador da Web que podia executar applets Java.
 Feito totalmente em Java.
 Java mostrou-se ideal para ser usada na Internet.
Linguagem Java
 1995: Netscape Navigator 2.0 suporta Java.
 A Sun amplia esforços para o desenvolvimento de
Java.
 Criação da JavaSoft.
 1996: Lançamento oficial de Java 1.02
 Disponibilizado Download gratuito pela Internet.
 1997: Java toma conta da Internet
 Netscape, Internet Explorer, HotJava, etc.
Linguagem Java
 De 1998 até hoje a tecnologia evoluiu muito
possuindo um dos maiores repositórios de
projetos livres do mundo, o java.net.
 Em
1999
surgiu
a
plataforma
para
desenvolvimento e distribuição corporativa
batizado de Java 2 Enterprise Edition (J2EE) e a
plataforma Java 2 Mobile Edition (J2ME) para
dispositivos móveis, celulares, PDAs, etc.
Linguagem Java
 Java EE
 Plataforma voltada a aplicações coorporativas, no lado do
servidor.
 Java SE
 Plataforma para aplicações voltadas para o lado
cliente e demais aplicativos para computadores pessoais.
do
 Java ME
 Plataforma voltada para desenvolvimento de aplicações
executadas em dispositivos com limitados recursos de hardware.
Linguagem Java
 Atualmente
 São milhões de desenvolvedores.
 Mais de 10.000 livros escritos.
 Contagem recente da Java World Magazine.
Linguagem Java
Linguagem Java
Linguagem Java
Linguagem Java
Linguagem Java
Quem está usando Java?
Quem está usando Java?
 Serviços financeiros
 Home Banking, comércio seguro.
 Marketing e propaganda
 Loja interativa, animações, multimídia.
 Diversão e entretenimento
 Jogos multiusuário, chat.
 Educação
 Ensino à distância, simulações interativas.
 Outros
 Astronomia (telescópios orbitais);
 Telefonia;
 Aparelhos eletroeletrônicos.
Quem está usando Java?
 British Telecom
ServiceView.
(Empresa
de telefonia
inglesa)
–
 MountSinai (Hospital de Nova York) emite certificados de
óbitos usando JAVA.
 VISA Internacional substituiu as tarjas magnéticas de
seus cartões por chips com tecnologia JAVA.
 American Express (Serviços financeiros).
 CSX (Maior companhia ferroviária dos EUA) montou
rede JAVA.
 Dow Jones, IBM, NASA, MAM de NY.
Quem está usando Java?
 J.P. Morgan (Banco de investimentos).
 American Airlines.
 Hong Kong Telecom (Operações de rede de TV iterativa).
 Fannie Mac (Maior empresa americana de hipotecas).
 Banco Itaú usando JAVA em sua Intranet.
 Banco do Brasil.
 Brasil Telecom.
 Universidades (No Brasil: UNB, UNICAMP, UFPE, entre
outras).
Objetivos do Java
 Eliminar exigências de programação que tradicionalmente
afetam a robusteza de um código de computador;
 Aritmética de ponteiros (Comum em ANSI C/C++);
 Controle de alocação/liberação de memória (Comum em
Pascal, C, C++, Basic, ...);
 Permitir a programação multitarefa (Threads);
 Permitir que um programa seja dinamicamente modificado;
 Prover um modo de checar a integridade de um programa.
Arquitetura Base do Java
 Coletor de lixo (Garbage Collector)
 Possui um mecanismo automático de gerenciamento de
memória.
 Verifica e libera automaticamente memória que não está
sendo utilizada.
 Multithreading
 Recursos que permite o desenvolvimento de aplicações
capazes de executar múltiplas rotinas concorrentemente.
 Tratamento de exceções
 Permite o tratamento de situações excepcionais.
Arquitetura Base do Java
 Sem Ponteiros
 Java não possui ponteiros, isto é, não permite a manipulação
direta de endereços de memória.
 Orientada a Objetos
 Java é uma linguagem orientada a objetos, tudo são classes
ou instâncias de classes, com exceção de seus tipos
primitivos de dados.
Por que Java?
Prós
 Escreva uma vez, execute em qualquer lugar
 Escrever somente para a plataforma JAVA;
 Suporte nos browsers da Web, TVs, PDAs e celulares.
 Segurança
 Permite que usuários descarreguem código não confiável
em uma rede e o executem em um ambiente seguro:
• Não pode infectar o sistema host com vírus;
• Não consegue ler ou gravar arquivos a partir do disco
rígido, etc.
 Ainda não é 100%, mas é considerada por especialistas a
melhor para “qualquer lugar”.
Por que Java?
Prós
 Programação centrada em rede
 Slogan corporativo da Sun: “A rede é o computador”;
 Suporte a arquitetura cliente/servidor e multicamadas.
 Programas dinâmicos e extensíveis
 Código Java organizado em unidades modulares
orientadas por objeto chamadas classes;
 Cada classe é armazenada em um arquivo separado e
somente descarregadas para o interpretador Java
quando necessárias;
 O código torna-se uma coleção interativa de
componentes independentes de software.
Por que Java?
Prós
 Internacionalização
 Única linguagem de programação que suporta Unicode.
 Eficiência do programador e tempo de comercialização
 Conjunto de APIs (Application Programming Interface)
poderoso e bem projetado.
 Nova plataforma
 Pode-se criar uma grande variedade de aplicações;
 Planilhas eletrônicas, processadores de texto, jogos,
salas de bate-papo, programas financeiros, etc.
 Torna as páginas da Web mais interessantes
 Som, vídeo, animações, relógios, contadores.
Por que Java?
Prós
 Portabilidade (Independente de plataforma).
 Familiaridade (Similar ao C, C++ e C#).
 Simplicidade (Especificação simples - LP e JVM).
 Distribuição (Biblioteca poderosa programação distribuída e concorrente).
recursos
para
 Orientada a objetos (Baseada no modelo de Smalltalk e
Simula67), onde permite a herança e a reutilização de
códigos de forma dinâmica e estática.
 Robustez: Os recursos da linguagem e do ambiente em
tempo de execução.
Por que Java?
Prós
 Facilidade: a linguagem é derivada da linguagem C e C++,
sendo assim familiar.
 Recursos de Rede - Possui extensa biblioteca de rotinas
que facilitam a cooperação com protocolos TCP/IP, como
HTTP e FTP.
 Possui facilidades para criação de programas distribuídos
e multitarefa (Múltiplas linhas de execução num mesmo
programa).
 Desalocação de memória automática por processo de
coletor de lixo (Garbage Collector).
 Carga Dinâmica de Código - Programas em Java são
formados por uma coleção de classes armazenadas
independentemente e que podem ser carregadas no
momento de utilização.
Por que Java?
Contras
Desempenho
 Eficiência (Código interpretado: bytecode);
 Necessidade de uma máquina virtual;
 Por ser interpretada, torna-se mais lenta.
Engenharia Reversa
 Bytecodes traduzidos facilmente para fonte java;
 Bytecodes (Programa-fonte praticamente completo - sem
comentários).
Instabilidade
 Algumas APIs (Bibliotecas) ainda instáveis.
(In)segurança
 Restrições pesadas ou ainda bem passíveis de serem violadas.
Por que Java?
Mitos
 Java é lenta!
As primeiras versões eram lentas, mas as mais novas são,
muitas vezes, mais rápidas que C++. Compilador JIT (Just in
Time).
 Não possui um Ambiente RAD!
Há muitas ferramentas de alta produtividade disponíveis,
inclusive free. Exemplo: Netbeans, JCreator, JDeveloper,
Eclipse (com plugins).
 JavaScript é uma derivação de Java?
Não. Em comum elas só tem o nome e a sintaxe. São duas
linguagens diferentes.
Ferramentas para desenvolvimento
 JRE: Java Runtime Environment significa Ambiente de
Tempo de Execução Java, e é utilizado para executar as
aplicações da plataforma Java. É composto por
bibliotecas (APIs) e pela Máquina Virtual Java (JVM).
 O JRE contém as ferramentas necessárias para a
execução de aplicativos desenvolvidos com tecnologia e
linguagem Java em seu computador.
 O JRE não é um ambiente de desenvolvimento, aqui não
estão contidas as ferramentas para tal função. Para isso é
necessário ter instalado em seu computador o Java SE
Development Kit (JDK).
Ferramentas para desenvolvimento
 Application Programming Interface ou simplesmente
API é um conjunto de rotinas e padrões estabelecidos
por um software para utilização de suas
funcionalidades.
 De modo geral, a API é composta por uma série de
funções acessíveis somente por programação, e que
permitem utilizar características do software menos
evidentes ao usuário tradicional.
JavaDoc - Documentação das APIs.
Ferramentas para desenvolvimento
 A Sun, ao lançar a linguagem Java, pôs à disposição
gratuitamente o pacote JDK - Java Developer's Kit, que
inclui, entre outros:
 Javac - o compilador de arquivos .java para bytecodes
.class;
 Java - a JVM específica para a plataforma;
 Appletviewer - visualizador de applets, sem a necessidade
de execução das mesmas num browser.
Ferramentas para desenvolvimento
 Máquina virtual Java (do inglês Java Virtual Machine JVM) é um programa que carrega e executa os aplicativos
Java, convertendo os bytecodes em código executável de
máquina.
 Graças à máquina virtual Java, os programas escritos em
Java podem funcionar em qualquer plataforma de hardware
e software que possua uma versão da JVM, tornando assim
essas aplicações independentes da plataforma onde
funcionam.
Ferramentas para desenvolvimento
 Applets são pequenos aplicativos escritos em Java que
utilizam-se da JVM (Java Virtual Machine) que se
transferem com as páginas web e que o navegador executa
no espaço da página.
JAVA com Suporte a Banco de Dados
O JDBC, que é uma biblioteca de classes para
acesso a banco de dados, permite uma conexão
remota a servidores SQL que possuam driver
OBDC ou compatível.
Exemplos: Transações no estilo de Compras,
Vendas, Cadastramentos, Alteração de dados
pessoais controlada por senha via Internet, são
exemplos do que o JDBC permite que seja
realizado.
Oracle compra a SUN
Ranking das Linguagens de Programação
Fonte: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Download
Fonte: http://netbeans.org/downloads/
Revistas Nacionais
http://www.devmedia.com.br
http://www.mundoj.com.br/default.jsp
Mercado de Trabalho
Mercado de Trabalho
Mercado de Trabalho
Mercado de Trabalho
Mercado de Trabalho
Sites Disponíveis
http://javafree.uol.com.br/index.jf
http://www.guj.com.br
http://br.sun.com/
Download