redigibilidade, por eliminar alguns conceitos de C e C++ que dificultavam nesse sentido; reutilizacao de codigo. A documentacao de Java fornecida pela Sun utiliza algumas palavras para definir a linguagem: Simples uma caracteristica marcante de Java e a simplicidade da linguagem, que pode ser programada sem um treinamento intenso, ou larga experiencia anterior. Programadores de C++ terao uma rapida compreensao de Java devido a sua semelhanca. Java omite muitos termos poucos usados e operacoes confusas em C++ que trazem mais complicacoes que beneficios . Orientada a Objeto a orientacao a objeto e uma tecnica que enfoca o modelo do dado (objeto) e sua interface. As facilidades de orientacao a objeto de Java sao essencialmente as de C++. Os programadores podem reutilizar codigo, utilizar bibliotecas de terceiros com protecao e encapsulamento, e adicionar funcionalidades a ja existentes. Robusta e Segura o projeto de Java visou a construcao de uma linguagem para escrita de programas confiaveis. Java enfatiza muito a checagem em tempo de compilacao de possiveis problemas e, em tempo de execucao, realiza a checagem dinamica, eliminando situacoes que podem gerar erros. Arquitetura Neutra Java e projetada para suportar aplicacoes que serao distribuidas para os diversos ambientes de trabalho em rede. Em tais ambientes aplicacoes devem ser capazes de executar em uma grande variedades de maquinas. Nas varias plataformas de hardware, aplicacoes devem executar sobre um universo de sistemas operacionais e operar interagindo com outras linguagens de programacao. Isto e possivel gracas a arquitetura idealizada, onde Java gera um codigo binario para uma JVM (maquina Java virtual), ou seja, uma arquitetura neutra e portavel, sem requerer a menor mudanca. Portavel tendo fixado o tamanho dos tipos numericos, e eliminada a maior causa de dores de cabeca. Os dados binarios sao armazenados em formato fixo. Interpretada o interpretador Java pode executar o codigo binario Java diretamente em alguma maquina para qual ele tenha sido portado. Em um ambiente interpretado tal como o sistema Java, a fase de linkagem de um programa e simples, incremental e leve. O processo d desenvolvimento pode ser muito mais rapido. Esta e uma vantagem enquanto desenvolvemos uma aplicacao, mas ela e claramente mais lenta que um codigo compilado. Vejamos agora os pontos fracos do Java: Um sistema operacional pode oferecer recursos que o Java nao consegue interpretar sem sacrificar a compatibilidade multiplataforma. O byte Java interpretado nao roda com a mesma velocidade do codigo nativo compilado. Se um programa deve interagir com codigo ou dados ligados, uma ferramenta ou linguagem mais estabelecida pode funcionar melhor. Um desenvolvedor pode ter ferramentas superiores para outra linguagem e ser mais produtivo usando uma ferramenta ou linguagem familiar. O Java transcende o fato de ser uma linguagem para ser uma plataforma de software por causa da JVM, que simula um computador e seu software. A JVM pode rodar nos computadores e sistemas operacionais ja existentes, ou pode rodar em hardware projetados somente para Java. Os desenvolvedores que usam Java, quer se deem conta ou nao, estao suportando uma nova plataforma que existe independentemente do sistema operacional e do hardware subjacentes. A compatibilidade interplataformas