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 comprara 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 ("garbage collection"); 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 aquivos-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.