Sporos TI com Design

“We cannot solve our problems with the same thinking we used when we created them.” - Albert Einstein

Java

Um pouco sobre Java
Breve histórico da linguagem assim como suas principais características.

Em 1991, o foi lançado pela Sun o “Project Green”, como um resultado direto de uma observação feita por um desenvolvedor, que sentia que a Sun estava trilhando o caminho errado. O novo projeto foi apoiado por desenvolvedores de topo que receberam a instrução de fazer o que eles desejassem – de preferência algo “legal”. Os membros do projeto decidiram que uma idéia legal poderia focar em como integrar digitalmente dispositivos de consumidores como TVs, CD players e computadores. Para isto ser possível muitas novas tecnologias tiveram que ser testadas ou inventadas. Entre elas C++, uma boa linguagem de programação, foi testada. Mas ela não poderia oferecer imediatamente o que era necessário – especialmente portabilidade, confiabilidade e programas com um tamanho que coubesse em dispositivos pequenos.

Assim Java – ou Oak como foi chamado naquela época – nasceu. Criado pelo arquiteto e programador líder James Gosling, foi meramente uma ferramenta para os programadores no Projeto Green naquela época, mas teve um potencial maior do que qualquer um poderia ter sonhado.

James Gosling chamou a linguagem inicialmente de Oak (carvalho) em homenagem a uma árvore que dava para a janela do seu escritório na Sun. Descobriu-se mais tarde que já havia uma linguagem de computador chamada Oak. Quando uma equipe da Sun visitou uma cafeteria local, o nome Java (cidade de origem de um tipo de café importante) foi sugerido e pegou.

Em Novembro de 1992, o Projeto Green mudou de nome para FirstPerson. Dada a falta de sucesso do Java até então na indústria de eletrônicos de consumo, a direção da companhia estava incerta. Sob a influência da Sun, a companhia começou a re-avaliar sua missão.

Em 1992 foi lançado um pequeno dispositivo portátil parecido com um controle remoto, com uma pequena tela. Ele foi chamado Star-7. E ele certamente era legal. Para facilitar o uso do dispositivo, um pequeno personagem chamado “Duke” aparecia na tela. Duke é agora o mascote oficial do Java.

No começo de 1993, a Time Warner lançou uma licitação para a criação de um sistema operacional para conversores de tv a cabo (set-top boxes) e para uma tecnologia de video-por-demanda interativa. FirstPerson identificou esta área como uma nova oportunidade e começou a trabalhar naquela direção. Contudo, apesar dos esforços do pessoal da FirstPerson, a SGI assinou o contrato com a Time Warner. Em meados de 1993, a Sun começou a negociar com a 3DO o fornecimento de um SO baseado em Java para seus conversores de TV. As negociações, entretanto, não tiveram sucesso e nunca foi feito um acordo. A FirstPerson foi deixada por sua própria conta sem nenhuma possibilidade de negócio viável. Uma outra tentativa da companhia de comercializar sua tecnologia de TV interativa falhou em Fevereiro de 1994 quando um lançamento público de seus produtos foi cancelado.

O projeto tentou vender sua idéia para várias companhias interessadas – sem sucesso. Pessoas deixaram o projeto, e apenas uns poucos permaneceram tentando imaginar o que fazer com suas boas idéias.

Naquela época a Internet era mais para aficcionados em computadores que sabiam como manipular protocolos como FTP e Telnet. Então um programa chamado Mosaic construído para o protocolo HTTP foi construído em 1993, tornando possível a usuários normais a visualização de documentos HTML na Internet. Este foi um marco importante.

Os membros restantes da equipe se animaram: sua tentativa de desenvolver uma interface interativa, robusta, segura e independente de arquitetura para dispositivos digitais também poderia ser usada na Internet! Uma vez que a Internet era uma rede que ligava centenas de computadores de marcas diferentes executando sistemas operacionais diferentes.

Dessa forma, durante 1994, a equipe criou seu próprio browser chamadao “HotJava”, que apresentava uma técnica que permitia aos usuários interagirem com as páginas Web. Coisas fantásticas como ter objetos 3D que rotacionavam através do uso do mouse eram possíveis. O applet nasceu e as pessoas ficaram animadas com ele. Para pôr isto em perspectiva, você tem que lembrar que o que as pessoas tinham visto até então na Web era estático, como páginas HTML. Uma grande forma de se compartilhar informação, mas não muito divertida.

Em 1995, a Sun tomou uma atitude importante. O código fonte do Java foi liberado como “fonte aberto” a fim de ganhar a atenção dos desenvolvedores de todo o mundo. Foi um sucesso. Em pouco tempo os membros da equipe já passavam dias e noites respondendo e-mails, consertando bugs e preparando novas versões. A Netscape anunciou suporte para Java na versão 2.0 de seu browser, que se tornou disponível em Setembro de 1995. Estava claro agora para todos que um sucesso havia nascido.

Uma Linguagem Diferente

Vamos agora olhar Java mais de perto. Java é antes de tudo uma linguagem. Foi orientada a objetos desde o nascimento. Em Java, tudo é uma classe, com propriedades e métodos. Tendo em mente que vários programadores sabiam C e C++, James Gosling construiu Java sobre a sintaxe básica da linguagem C++, mas muitas das características obscuras de C++ foram deixadas de fora. A fim de obter uma linguagem robusta, coisas preocupantes como manipulações de ponteiros e alocação/desalocação de memória não foram implementadas. Seria interessante saber a quantidade de tempo de depuração que foi economizado com isto.

Com o que uma classe Java se parece? Você não sabe? Aqui está uma classe simples – na verdade um JavaBean (entraremos em maiores detalhes sobre beans mais adiante):


public class fruits {

// Inicializa uma coleção de frutas
private String[] f = { "maçã", "pêra" };

public String[] getFruit() {
// retorna a coleção de frutas
return f;
}

public int fruitSize() {
// retorna o número de frutas
return f.length;
}

public void setFruit(String[] f) {
// insere u ma nova coleção de frutas
this.f = f;
}
}

Este exemplo mostra como o Java é linguagem bem legal. Ele tem uma clara estrutura de bloco sem frases ou símbolos supérfluos.

Mas Java não é apenas uma linguagem, é também um sistema de tempo de execução – a “Máquina Virtual Java (JVM)”. A fim de obter portabilidade, Java foi projetado para ser traduzido em uma linguagem independente de plataforma chamada “bytecode”. Esta não foi uma invenção nova – a linguagem Pascal originalmente fazia a mesma coisa usando “p-code” nos anos 70. O propósito da VM é tomar os bytecodes, interpretá-los, e fazer tudo o que for necessário para processá-lo no computador. Assim, para desenvolver e executar programas Java, você precisa de um compilador (para traduzir seu programa para o bytecode) e a VM. Ambos são parte do Java Development Kit (JDK) o qual pode ser baixado do site da Sun.

“Write once, run anywhere”

O que é importante é que uma vez que você tenha compilado seu programa Java em bytecode, você pode transferí-lo para qualquer computador com uma VM e executá- lo lá. A Sun chama isto de “Write once, run anywhere”. É uma características maravilhosa, mas só funcionará se as VMs nas várias plataformas funcionarem de forma idêntica. Em 1996 a Microsoft tentou “extender” a VM do seu Windows, que sem dúvida foi a mais rápida e mais confiável VM para Windows, com suporte para sua tecnologia Windows ActiveX. Se os programadores tivessem começado a usar essas extensões, os programas Java logo não seriam mais portáveis. A Sun respondeu lançando a iniciativa “100% Pure Java”, onde alguém teria que ser certificado para usar o logo Java. A Sun e a Microsoft entraram na justiça, e depois de muitos anos de debate, a Microsoft teve que alterar a operação da sua VM para aderir às especificações da Sun.

Java é Lento?

Benchmarks mostram que Java não executa tão rápido quanto programas C++, por exemplo. Como Java é interpretado enquanto que C++ é compilado, isto é natural. Mas “lentidão” é um termo relativo, e talvez a velocidade do seu programa Java não seja problema na aplicação que você estiver construindo. Tudo depende de coisas como quantos usuários você planeja atender ao mesmo tempo, quão poderoso é o seu hardware e quanto processamento é realmente feito em sua aplicação. Não abandone o Java porque ele é mais lento do que C++. Os computadores eram muito mais lentos a apenas 5 anos atrás, mas tínhamos muitas boas aplicações executando naquela época.

Não pense que ninguém está tentando melhorar a performance do Java. Hoje muitas VMs têm compiladores Just-In-Time (JIT) embutidos nelas. Um compilador JIT traduz o bytecode – quando ele está para ser processado – para o código de máquina nativo dos computadores. Este código de máquina é então mantido (em um buffer ou cache) de forma que ele possa ser reusado se o bytecode correspondente for executado mais de uma vez.

Activity

One comment, leave your comment or trackback.
  1. Parabéns pela ótima matéria, só uma observação:
    Hoje em servidores em java já são mais rápidos que os escritos em C, isto ocorre pois o java consegue fazer otimizações em tempo de execução (coisas que é impossível fazer em c), além do JIT citado acima.

    Além disso o Java 5, 6 e o novo Java 7 que deve sair este ano trazem melhorias bem grandes em performace.

    Na parte gráfica o C ainda é mais rápido, porém o java usando javafx é uma opção devido a alta performance.


Leave a Reply


Search

The archives run deep. Feel free to search older content using topic keywords.