A linguagem Java originou-se como parte de um projeto de comércio eletrônico iniciado em 1991 e foi formalmente lançada em 1995 pela Sun Microsystems como uma linguagem de programação para Internet (, ). Esta linguagem foi concebida para o desenvolvimento orientado a objeto, porém, as principais diferenças em relação as outras linguagens de programação é o modo como os programas Java são compilados e executados.
Segundo (), o aparecimento do Java redefiniu o conceito de desenvolvimento e distribuição de programas pois, enquanto os programas desenvolvidos em outras linguagens estão confinados a uma determinada plataforma, os desenvolvidos em Java são independentes de plataforma.
Ao contrário dos compiladores das linguagens como C ou Pascal, que produzem programas executáveis após a compilação, o compilador Java produz um arquivo semi-compilado que não pode ser executado diretamente pelo sistema operacional.
Os arquivos criados pelo compilador Java são interpretados por ``máquinas virtuais'', conhecidas como Java Virtual Machine ou apenas JVM. A existência da JVM faz com que o programa desenvolvido em Java não tenha ``contato'' direto com o computador que o executa. Essa característica permite que os programas em Java sejam pré-compilados para rodar nesta máquina virtual e, dessa forma, qualquer computador ``real'' que possua uma JVM poderá executar os programas em Java.
O aparecimento da JVM e sua utilização pelos navegadores de Internet (como o Netscape, Mozilla, Internet Explorer, e muitos outros) permitiu a executação dos programas em Java diretamente em páginas Web. Estes programas em Java que podem ser interpretados pela Web recebem o nome de applet.
A Figura mostra como um applet é interpretado
diretamente no computador-cliente através de um navegador Web. Segundo (),
antes do surgimento da linguagem Java, a maioria dos programas relacionados com a Web eram executados
no servidor. Para este autor o surgimento do applet foi uma das grandes inovações
na programação para a Web, pois além da portabilidade e da interatividade que estes programas oferecem,
temos a possibilidade de trabalhar com imagens gráficas, permitido animações em tempo real diretamente
de uma páginas Web.
Por questões de segurança, os applets não têm acesso à memória ou aos arquivos do
computador-cliente.
Muitos programas de GD como o Cabri e o GSP foram desenvolvidos antes do surgimento desta linguagem, e portanto, não podem ser executados em qualquer plataforma nem diretamente pela Internet. Para resolver parte desta limitação, foram desenvolvidos interpretadores em Java (o CabriJava e o JavaSketchpad) que permitem que as construções gravadas nestes programas possam ser utilizadas para criar páginas interativas. Contudo, por razões comerciais óbvias, as funcionalidades destes programas na Web são limitadas, não permitindo ao usuário criar novos objetos ou fazer qualquer outro tipo de modificação. Em contrapartida, programas integralmente desenvolvidos em Java, como o iGeom, o C.a.R. e o Cinderella podem ser executados em qualquer plataforma e também via internet, permitindo que quase todos os recursos (a menos dos recursos de manipulação de arquivos) estejam disponíveis em páginas Web6.
Seiji Isotani 2006-10-04