JAVA

 

O Java é ao mesmo tempo um ambiente e uma linguagem de programação, produzido pela Sun Microsystems, Inc. Trata-se de mais um representante da nova geração de linguagens orientadas a objetos e foi projetado para resolver os problemas da área de programação cliente servidor.

O Java foi criado como parte de um grande projeto da Sun, cuja missão era desenvolver aplicativos complexos e avançados para aplicação em pequenos dispositivos eletrônicos. Esses dispositivos são sistemas portáveis, distribuídos, confiáveis e incorporados em tempo real, dirigidos aos consumidores em geral. As primeiras tentativas de criação de tais dispositivos receberam nomes como Digital Assistence e Portable Data Assistents(PDAs).

A primeira tentativa da Sun com esse aplicativos deveria ter sido implementada em C++. Mas em conseqüência de compilações horríveis com compiladores uma lista cada vez maior de problemas com o C++ - principalmente vazamentos de memória e vários problemas de herança - a Sun enterrou o C++ e implementou uma nova linguagem, o Java. Desde o seu início em 1992, surgiram muitas outras aplicações para o Java. O Java tem a capacidade de criar programas auxiliares, que podem ser usados para montar documentos HTML particularmente interessantes.

A arquitetura do Java não é nem radical nem especialmente nova. Resumindo, os aplicativos em Java são compilados em um código de bytes independente de arquitetura. Esse código de bytes pode então ser executado em qualquer plataforma que suporte um interpretador Java. O Java requer somente uma fonte e um binário e, mesmo assim, é capaz de funcionar em diversas plataformas, o que faz dele um sonho de todos os que realizam manutenção em programas.

 

Características da linguagem Java

* O Java é orientado a objetos.

O Java é um membro do paradigma orientado a objetos (OO) das linguagens de programação. As linguagens que aceitam este paradigma, como Java e C++, seguem a mesma filosofia básica, mas diferem em sintaxe e estilo. As linguagens orientadas a objetos oferecem muitas vantagens sobre as linguagens procedurais tradicionais. Como os objetos encapsulam dados e funções relacionados em unidades coesas, é fácil localizar dependências de dados, isolar efeitos de alterações e realizar outras atividades de manutenção, e talvez o mais importante, as linguagens OO facilitam a reutilização.

* O Java é distribuído.

Distribuição de informações para compartilhamento e trabalho conjunto, coma distribuição de carga de trabalho do processamento, é uma característica essencial dos aplicativos cliente/servidor.

Felizmente para os programadores Java, há uma biblioteca de procedimentos TCP/IP incluída nos códigos-fonte e de distribuição binária do Java. Isso facilita aos programadores o acesso remoto às informações, usando protocolos como HTTP e FTP.

* O Java é ao mesmo tempo compilado e interpretado.

Os programas do Java são compilados em formato binário de código de bytes, que então são interpretados por um ambiente de execução do Java específico da plataforma em questão. Portanto é ao mesmo tempo compilado e interpretado.

* O Java é independente de arquitetura.

A neutralidade do Java em relação à arquitetura é fascinante, mas não se trata de um conceito novo. Derivado da natureza distribuída de cliente/servidor, um importante recurso de projeto do Java é o suporte a cliente e servidores em configurações heterogêneas de rede. O método escolhido para atingir esse objetivo foi uma representação binária de arquitetura neutra para os programas em Java.

* O Java é portável.

A característica de neutralidade da arquitetura Java é o grande motivo pelo qual os programas em Java são portáveis. Outro aspecto da portabilidade envolve a estrutura ou os tipos de dados inerentes da linguagem, como inteiro, string e ponto flutuante.

O compilador Java foi escrito com o próprio Java, enquanto seu ambiente de tempo e execução foi escrito em ANSI C e tem uma interface de portabilidade bem definida e concisa.

* O Java é multitarefa.

Os objetos binários de códigos de bytes do Java são formados por seqüências de execução múltiplas e simultâneas. Essas seqüências são conhecidas como contextos de execução ou processos leves. As linguagens C C++ são membros de um paradigma de execução em seqüência única, por não oferecerem suporte a seqüências no nível de linguagem. O Java, no entanto, oferece suporte no nível de linguagem para multitarefa, resultando em uma abordagem de programação mais poderosa e de múltiplas facetas.

* O Java é dinâmico.

O projeto dinâmico permite que os programas Java se adaptem aos ambientes computacionais mutantes. Por exemplo, a maior parte dos desenvolvimentos típicos em C++ se baseia muito em bibliotecas de classe que podem ser de propriedade desenvolvida por terceiros. Muitas bibliotecas de terceiros, como as distribuídas com sistemas operacionais ou sistemas de janelas, são linkeditadas dinamicamente e vendidas ou distribuídas separadamente dos aplicativos que delas dependam. Quando essas bibliotecas são atualizadas, os aplicativos que dependerem dela poderão apresentar problemas, até que sejam recompilados e redistribuídos. Isso adiciona mais um custo à manutenção do software.

O Java evita esse problema atrasando a união dos módulos. Isso permite que os programadores tirem total proveito do orientação a objetos. É possível adicionar novos métodos e variáveis de instâncias em classes de bibliotecas, sem causar problemas aos programas, aplicativos ou clientes já existentes.

* O Java é robusto.

Quanto mais robusto um aplicativo, mais confiável ele será. Isso é desejável tanto para os desenvolvedores de software quanto aos consumidores. A maioria das linguagens OO, como o C ++ e Java, possuem tipos bastante fortes. Isso significa que a maior parte da verificação de tipos de dados é realizada em tempo de compilação, e não em tempo de execução. Isso evita muitos erros e condições aleatórias nos aplicativos. O Java, ao contrário do C ++, exige declarações explícitas de métodos, o que aumenta a confiabilidade dos aplicativos. .

* O Java é seguro.

Como o Java foi criado para ambientes de rede, os recursos de segurança receberam muita atenção. Por exemplo, se você executar um binário transferido por download da rede, o mesmo poderá estar infectado por vírus. Os aplicativos Java apresentam garantia de resistência contra vírus e de que não são infectados por vírus, pois não são capazes de acessar heaps, stacks ou memória do sistema. No Java, a autenticação do usuário é implementada com um método de chave pública de criptografia. Isso impede de maneira eficaz que hackers e crakers examinem informações protegidas como nomes e senhas de contas.

* O Java é simples.

Um dos principais objetivos do projeto do Java foi criar uma linguagem o mais próxima possível do C ++, para garantir sua rápida aceitação no mundo do desenvolvimento OO. Outro objetivo do seu projeto foi eliminar os recursos obscuros e danosos do C ++, que fugiam à compreensão e aumentavam a confusão que poderia ocorrer durante as fases de desenvolvimento, implementação e manutenção do software. O Java é simples porque é pequeno. O interpretador básico do Java ocupa aproximadamente 40k de RAM, excluindo-se o suporte a multitarefas as bibliotecas padrão, que ocupam outros 175k. Mesmo a memória combinada de todos esses elementos é insignificante, se comparada a outras linguagens e ambientes de programação.

* O Java oferece alto desempenho.

Há muitas situações em que a interpretação de objetos de códigos de bytes proporciona desempenho aceitável. Mas outras circunstâncias exigem desempenhos mais altos. O Java concilia tudo isso oferecendo a tradução dos códigos de bytes para o código de máquina nativo em tempo de execução.

O alto desempenho permite a implementação de seus aplicativos WEB em Java, na forma de programas pequenos e velozes, que podem ampliar significantemente os recursos tanto do cliente quanto do servidor.

 

Java, HotJava ou Java Script?

Para esclarecer, o HotJava é a mais ousada demonstração da tecnologia Java da Sun. Trata-se de um navegador compatível com o Java, que sabe trabalhar com aplicativos e programas auxiliares em Java, escrito em Java para mostrar todos os tipos de aplicativos e programas auxiliares em Java, escrito em Java para mostrar todos os tipos de aplicativos suportados pela linguagem e para oferecer um exemplo real do que os aplicativos e programas auxiliar e sem Java são capazes.

O Java é uma linguagem de programação desenvolvida pela Sun Microsystems e tinha como proposta inicial ser aplicado em pequenos aparelhos eletrônicos. Hoje Java é a linguagem que mais se fortalece com a Internet, pois é uma linguagem simples, orientada a objetos, distribuída, interpretada, robusta, segura, independente de arquitetura, portável, de alto desempenho multitarefa e dinâmica.

O JavaScript é um dialeto de propriedade da Netscape que é executado juntamente com HTML visando incrementar na criação de Home Pages tornando-as mais interativas.

 

Java, HTML ou C++?

Nas páginas WEB da Internet é possível misturar textos e gráficos, navegando de um lado a outro do mundo. Além de ser muito divertido navegar na WEB, a Internet resolve o problema de acesso remoto a informações corporativas, de solução tradicionalmente cara. As empresas hoje então têm uma nova opção: escrever um aplicativo que interaja com a Internet, através da World Wide Web, por exemplo. Neste caso, a saída do aplicativo será em forma de páginas "HTML" e, a entrada, através de comandos vindos da mesma página. A principal vantagem é que o aplicativo pode ser acessado não só dentro da rede da empresa, como em qualquer canto do mundo, via Internet. Esta maneira de trabalho assemelha-se muito ao tempo em que se tinha um mainframe e terminais ligados a ele. Com a Internet, temos "terminais" HTML ligados a um conjunto de servidores em rede.

 

INTERFACE HTML

O padrão HTML tem várias vantagens sobre os antigos terminais: uma boa apresentação, unindo textos, gráficos, vídeo e som e está disponível em diversos sistemas operacionais. Já se tem inclusive, sob a forma de protótipo, "máquinas Internet" que deve ficar em torno de US$500. Esta máquina é um micro dedicado rodando um software de acesso à Internet, como o Netscape ou Explore. As previsões mais delirantes falam que, no futuro, todos os aplicativos terão uma interface "HTML", que o Windows95 como sistema operacional será irrelevante e que quem vai dominar o mundo não será a Microsoft, e sim a Nestcape. Verdade ou não, por via das dúvidas, muita gente correu para comprar ações da Netscape, que hoje têm um preço relativo mais caro do que o da própria Microsoft. O padrão HTML tem alguns problemas, no entanto. O principal é que ele é "burro": não está previsto que o terminal efetue qualquer processamento além da apresentação e da entrada de dados. Para resolver este problema, a Sun, tradicional fabricante de equipamentos Unix, criou uma nova linguagem de programação chamada Java. Os programas escritos em Java são enviados junto com as páginas HTML e "executados" no terminal. Os "mainframeiros" antigos devem estar morrendo de rir: depois que reinventaram o mainframe sob a forma de servidor de rede, o terminal burro sob a forma de "browser" Internet, reinventaram também o terminal inteligente. Pois não é muito diferente disso, mesmo. Só que o terminal não é apenas inteligente, é brilhante. Para que mais uma nova linguagem de programação nessa altura do campeonato? Elas já não existem em número suficiente? Como sempre, a velha justificativa se repete: não havia qualquer linguagem antiga que se adaptasse perfeitamente. Mas Java não é tão nova assim: é um C++ domesticado. Inicialmente, a Java foi feita para ser bastante poderosa, mas surgiram algumas complicações. A primeira é que ela deve rodar em diversos equipamentos e sistemas operacionais, sem exigir diferentes versões; seria um pesadelo para o desenvolvedor Ter que manter dezenas de versões diferentes para cada combinação de CPU e sistema operacional possível. A segunda é não comprometer a segurança: não seria nada divertido baixar uma página que formatasse o winchester. Estas restrições forçaram o uso de uma linguagem interpretada e de modificações para tornar o C++ mais seguro, de forma a impedir que um programa causasse mal ao equipamento, intencional ou acidentalmente.

 

C++ DOMESTICADO

A Java é então um C++ com as seguintes diferenças básicas: não tem ponteiros, que além de serem difíceis de usar poderiam comprometer seriamente a segurança; gerencia memória automaticamente ("garbagecollection"); só tem herança simples; não permite sobrecarga de operadores e conversões automáticas; tem um tipo lógico; possui um conceito de "módulo" bastante forte, e inclui rotinas para interagir com os protocolos da Internet, como TCP/IP, HTTP e FTP e suporta multihread (múltiplas "linhas" de execução em um mesmo aplicativo). As fontes dos programas em Java são arquivos-texto normais, como os de qualquer outra linguagem de alto nível, com extensão "Java". Depois de escritos, os programas são compilados em um "compilador Java" e gravados em um formato especial, com extensão "class". Os programas Java são transmitidos juntamente com as páginas Web. O formato de distribuição não é em fonte e sim em um formato compilado a "p-code". A arquitetura para a qual o programa é compilado é uma arquitetura hipotética chamada "máquina virtual Java". O código é a seguir executado na máquina virtual, implementada da mesma forma em diferentes arquiteturas. Este esquema, embora complexo, tem várias vantagens: o código é realmente compilado e não pode ser descompilado, como acontece com o Clipper, a performance é melhor e ele não é amarrado a qualquer equipamento ou sistema operacional em especial. A principal característica das capacidades da Java é a interação com o usuário. Apesar de todas essas vantagens, será que a Java vai pegar? Não seria nem o primeiro nem o último produto excelente a ser assassinado no mercado. A resposta é provavelmente sim. Ela é endossada por empresas como Netscape, IBM, Hewlett-Packard, Apple, Digital, Oracle, Sybase, Borland, Symantec, Adobe e Silicon Graphics.