Desenvolvimento Web TCC-00.226 Turma A-1 Conteúdo Introdução ao Ambiente de Desenvolvimento Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.2/tcc-00.226 Histórico 1991 Início em 1991 com um pequeno grupo de projeto da Sun Microsystems, denominado Green Team O projeto visava o desenvolvimento de software para uma ampla variedade de dispositivos de rede e sistemas embutidos ames Gosling decide pela criação de uma nova linguagem de programação que fosse simples, portátil e fácil de ser programada Surge a linguagem interpretada Oak (carvalho em inglês), mais tarde rebatizada como ava devido a problemas de direitos autorais Duke é o mascote do ava TCC-00.226 Desenvolvimento Web 2 1
Histórico 1991 1994 Mudança de foco para aplicação na Internet (visão: um meio popular de transmissão de texto, som, vídeo) Projetada para transferência de conteúdo de mídia em redes com dispositivos heterogêneos Também possui capacidade de transferir comportamentos, junto com o conteúdo (HTML por si só não faz isso) Em 1994, onathan Payne e Patrick Naughton desenvolveram o programa navegador WebRunner TCC-00.226 Desenvolvimento Web 3 Histórico 1991 1994 1995 No SunWorld 95 a Sun apresenta formalmente o navegador Hotava e a linguagem ava Poucos meses depois a Netscape Corporation lança o seu navegador capaz de fazer download e executar pequenos códigos ava chamados de Applets Imediatamente a Sun decide disponibilizar o ava gratuitamente para a comunidade de desenvolvimento de softwares e assim surge o ava Developer s Kit 1.0 (DK 1.0) Inicialmente disponível para Sun Solaris e Microsoft Windows 95/NT Progressivamente surgiram kits para plataformas como Linux e Apple Macintosh TCC-00.226 Desenvolvimento Web 4 2
Histórico 1991 1994 1995 2010 Oracle adquire a Sun Microsystems e passa a ser a dona do ava ava Platform (DK), Standard Edition está disponível para download em http://www.oracle.com/technetwork/java/javase/downloads A Integrated Development Environment (IDE) mantida pela Oracle é o NetBeans, também disponível em http://www.oracle.com/technetwork/java/javase/downloads Eclipse é uma das IDEs mais utilizadas http://www.eclipse.org/downloads/moreinfo/java.php Outra opção é o Blue, disponível em http://www.bluej.org/ TCC-00.226 Desenvolvimento Web 5 Simples Orientada a objetos Interpretada, neutra e portável Alta performance Robusta Segura Facilidades para criação de programas distribuídos e multitarefas Coletor de lixo (garbage collector) para desalocar recursos TCC-00.226 Desenvolvimento Web 6 3
Simples e Orientada a Objetos É de fácil aprendizado Puramente orientado a objetos Permite o desenvolvimento de sistemas de uma forma mais natural TCC-00.226 Desenvolvimento Web 7 Permitindo que o código em ava possa ser escrito independente da plataforma Bytecodes executam em qualquer máquina que possua uma ava Virtual Machine (VM) Neutra em relação à arquitetura Característica que permite uma grande portabilidade TCC-00.226 Desenvolvimento Web 8 4
Em java: 1. Todo o código é inicialmente escrito em arquivos de texto.java 2. Esses arquivos fonte são compilados para arquivos.class pelo compilador javac 3. A ferramenta lançadora java roda a aplicação em uma instancia da ava Virtual Machine Um arquivo.class contém bytecodes TCC-00.226 Desenvolvimento Web 9 MyProgram.java ava API ava Virtual Machine Hardware Based Plataform ** ava API: ava Application Programming Interface TCC-00.226 Desenvolvimento Web 10 5
TCC-00.226 Desenvolvimento Web 11 Bytecodes V M C V M C V M C V M C Win95/98 WinNT Linux Solaris TCC-00.226 Desenvolvimento Web 12 6
Editor.class Carregador Bytecodes verificados.java Compilador Bytecodes não verificados Verificador Interpretador TCC-00.226 Desenvolvimento Web 13 Alta Performance É uma linguagem interpretada Existe uma grande discussão quanto a sua performance. Fato: As melhorias na tecnologia de compilação, tem aproximado o desempenho ao de linguagens como C e C++ Ex.: Benchmarks mostram melhor desempenho em alguns casos e pior em outros, caracterizando empate técnico http://blog.cfelde.com/2010/06/c-vs-javaperformance/ TCC-00.226 Desenvolvimento Web 14 7
Robusta e Segura As seguintes características contribuem para tornar a linguagem mais robusta e segura: É fortemente tipada Não possui aritmética de ponteiros Possui mecanismo de coleta de lixo Possui verificação rigorosa em tempo de compilação Possui mecanismos para verificação em tempo de execução Possui gerenciador de segurança Possui mecanismos de segurança que evitam operações no sistema de arquivos da máquina alvo TCC-00.226 Desenvolvimento Web 15 Distribuída Projetada para trabalhar em ambiente de redes Não é uma linguagem para programação distribuída Oferece bibliotecas para facilitar o processo de comunicação TCC-00.226 Desenvolvimento Web 16 8
Dinâmica e Multithread Resolução de referências em tempo de execução Suporte para múltiplas threads de execução Threads podem tratar diferentes tarefas concorrentemente TCC-00.226 Desenvolvimento Web 17 O Ambiente de Desenvolvimento ava SDK Ambiente de desenvolvimento de software ava Antigamente denominado DK (Software Development Kit) Contém um amplo conjunto de APIs ava SDK não é um ambiente integrado de desenvolvimento Não oferecendo editores ou ambiente de programação TCC-00.226 Desenvolvimento Web 18 9
Algumas Ferramentas do ava SDK javac: compilador ava java: interpretador de aplicações ava appletsviewer: interpretador de applets ava javadoc: gerador de documentação para código ava jar: manipulador de arquivos comprimidos no formato ava Archive jdb: depurador de programas ava etc. TCC-00.226 Desenvolvimento Web 19 Exercício Baixe e instale o ava SDK e o NetBeans em sua máquina Crie um projeto no NetBeans, adicione o código abaixo, compile e execute a seguinte classe: public class HelloWorld { public static void main(string[] args) { System.out.println( Olá mundo! ); } } TCC-00.226 Desenvolvimento Web 20 10