quarta-feira, 19 de dezembro de 2007

[3] Entendendo como o Java funciona - PARTE 1 de 2

Java, uma linguagem multiplataforma (cross-platform)

Você provavelmente já ouviu falar que Java é uma linguagem multiplataforma. Antes do seu nascimento como linguagem de programação, seus criadores, visando o futuro, planejavam um projeto que interligaria computadores a outros equipamentos eletrônicos freqüentemente utilizados pelas pessoas, tais como: televisores, geladeiras, controles remotos, etc. Tal projeto resultou na criação de uma linguagem baseada em C++, a linguagem Oak. Isso mesmo, Oak era o nome da linguagem Java até descobrirem que já existia uma linguagem de programação com tal nome.

O grande lema da linguagem Java é: Write once, run everywhere! - Escreva uma vez, rode em qualquer lugar. E seu lema não é esse por acaso, pois seu significado teórico defende que uma vez que um programa foi escrito na linguagem Java, este programa pode ser executado em qualquer aparelho eletrônico que suporte Java, seja ele um celular, uma torradeira ou até mesmo um tênis - quem sabe um dia. Porém, infelizmente não é assim que funciona na prática. Java é uma linguagem multiplataforma, mas não de forma tão genérica como seria o ideal.

Como foi dito no primeiro Post do Java Imediato, Java se divide em 3 edições: J2SE, J2EE e J2ME. Em uma breve explanação sobre cada uma delas foi afirmado que a plataforma J2ME é voltada para dispositivos de memória limitada em relação aos PCs. Pare e pense sobre quantos dispositivos eletrônicos
de alta tecnologia com "memória limitada" existem no mundo à fora hoje e quantos novos mais existirão daqui a alguns meses ou anos. Sem falar que a maior parte desses dispositivos possuem diferentes implementações, diferentes limitações, diferentes Sistemas Operacionais, etc. Já pensou que loucura seria desenvolver um código totalmente específico para cada um desses dispositivos? A palavra-chave para a solução deste problema chama-se portabilidade.

Java é uma linguagem portável, isto é, o código-fonte de uma aplicação Java escrita para uma plataforma específica pode ser utilizado também para uma outra plataforma. Em outras palavras, vamos supor que você construiu um jogo para o celular Nokia 6600, e que você também deseja que seu jogo funcione em um celular Sony Ericsson K310i. Não será necessário que você reescreva completamente o jogo para que ele funcione em outro celular. A solução para este problema seria reutilizar o código original, realizando alguns ajustes como tamanho da tela - pois ambos possuem tamanhos de tela diferentes -, os sons a serem tocados - esses dois celulares podem não conseguir reproduzir o mesmo formato de som-, etc. Portanto perceba desde já o porquê de Java não ser genericamente multiplataforma, pois de plataforma para plataforma geralmente há uma mínima diferença entre elas, que "obrigam" o programador a fazer pequenas adaptações no seu aplicativo.

Assim como para dispositivos móveis, o conceito multiplataforma para Desktops também existe. Ou seja, uma vez que seu aplicativo Desktop é escrito, é possível que ele rode nos Sistemas Operacionais Windows, Mac OS, Linux e Solaris. Porém, dependendo da situação, seu programa talvez precise sofrer alterações para que
ele funcione como esperado em todos os SO's - Sistemas Operacionais.

Bem, este é o fim da parte 1 do tópico Entendendo como o Java funciona. Próximo Post vamos entender melhor como o Java torna possível esta "mágica" da portabilidade.

Só para complemento, se você quer saber mais sobre J2ME, pode procurar pelo livro Programação JAVA para WIRELESS, de Érico Tavares de Mattos pela editora Digerati. O livro faz uma ótima explanação sobre as características do J2ME, além de também ensinar a como programar nesta plataforma.

Um abraço. Até a próxima


0 comentários: