Blog de notícias, informações, estudos e cursos relacionados à Java.

17 outubro 2005

Conceitos errados sobre o Java

E ai galera!
Beleza?
Como estão indo com o curso? Estão gostando.
Qualquer coisa mail-me.

Talvez você já tenha se deparado com alguns dos mitos que cercam a tecnologia Java, os quais muitas vezes causam uma resistência infundada em relação ao seu aprendizado. Veja, abaixo, os principais mitos em torno do Java:
  • Trata-se de uma extensão do HTML: Falso. Na realidade, o Java é uma linguagem completa, derivada do SmallTalk e do C++.

  • É apenas uma linguagem como outra qualquer: Falso. O Java possui um linguagem única, que permite construir componentes para todos os ambientes.

  • Todos os programas Java rodam em páginas da Web: Falso. Existem três ambientes distintos (J2SE, J2EE, J2ME) de execução para programas Java.

  • O JavaScript é uma versão light do Java: Falso. A Netscape aproveitou a onda de marketing e batizou sua tecnologia, LiveScript, como JavaScript.

  • A linguagem Java é interpretada, sendo muito lenta para aplicações sérias: Falso. A linguagem Java realmente exige interpretação, mas inclui também compilação. A forma como a dupla interpretador/compilador trata os programas garante um desempenho muitas vezes equivalente ao do C++ (com a vantagem de se tratar de um linguagem bem mais simples do que esta). Com o HotSpot (ver posts anteriores), a performance de Java em algumas aplicações é superior ao do C++.

  • É dificil programar em Java: Falso. A programação em Java é em si relativamente simples. A única possível dificuldade inicial é a assimilação dos conceitos de orientação a objetos.

Gostaram? Abraço a todos.
Até o próximo post. Vejo você lá.

Atc.,
Kirk Patrick

A plataforma Java

E ai galera!
Beleza?
Estamos ai novamente!
Como foi o fim de semana? O meu foi bom!

Mas, vamos ao trabalho.
Hoje eu vou falar sobre a plataforma Java.
Então, chega de conversa mole. Vamos nessa.

A plataforma Java

Uma plataforma é um ambiente de hardware ou software que permite o funcionamento de um programa. Nós já mencionamos em posts anteriores algumas plataformas, tais como Windows, Linux e MacOS. A maioria das plataformas podem ser descritas como uma combinação do sistema operacional e hardware.

A plataforma Java é diferente das outras plataformas. Pois ela é uma plataforma de software, que, graças a JVM, permite que programas desenvolvidos em Java possam rodar em qualquer sistema operacional e em qualquer hardware.

A plataforma Java possui alguns componentes:

  • JVM (Java Virtual Machine);
  • JRE (Java Runtime Enviroment): ambiente obrigatório para a execução de programas em Java. A JRE é composta pela JVM e pelo conjunto de APIs da J2SE (JVM + APIs = JRE);
  • SDK (Software Development Kit): conjunto de ferramentas para compilação, documentação e depuração de erros de aplicativos Java. A SDK é composta pela JRE e pelas ferramentas de desenvolvimento;
  • HotSpot: componente da JRE que realização uma pré-compilação de trechos do código, agilizando a execução dos progrmas.

Obs: para executar qualquer aplicativo Java, é necessário ter uma JRE, que contém a JVM mais as APIs da J2SE.

A figura 1 ilustra bem este conceito

Devido ao tamanho da plataforma Java, ela foi agrupada em três grandes edições:


  • J2SE (Java 2 Standard Edition): é o núcleo da plataforma, juntamente com a máquina virtual e as APIs básicas;
  • J2EE (Java 2 Enterprise Edition): complementa a J2SE e fornece novos recursos para o desenvolvimento de aplicações corporativas e web;
  • J2ME (Java 2 Micro Edition): define um ambiente Java para dispositivos eletrônicos de consumo, como eletrodomésticos, celulares, PDAs, computadores de bordo, equipamentos industriais e muito mais.
A figura 2 ilustra as edições da plataforma Java


Obs: existem versões mais recentes do SDK e da JRE. Mais informações em http://java.sun.com

Tipos de programas Java

Os tipos de programas Java são:

  • Stand-alone: aplicação baseada na J2SE que tem total acesso aos recursos do sistema, memória, disco, rede, dispositivos, etc. É possível rodar uma aplicação stand-alone, por exemplo, em um servidor Web. Também é comum rodar aplicações stand-alone de automação comercial em estações de trabalho.
  • Java applets: são pequenas aplicações que não têm acesso aos recursos do hardware, necessitando de algum navegador com suporte a J2SE para serem executadas. São geralmente usadas em jogos, animações, teclados virtuais, etc.
  • Java servlets: programas desenvolvidos para execução em servidores Web baseados na J2EE, comumente usados para gerar conteúdo dinâmico para websites.
  • Java midlets: pequenas aplicações, extremamente seguras e construídas para serem executadas dentro da J2ME. São geralmente usadas em celulares, palmtops, controladores eletrônicos, computadores de bordo, smart cards, tecnologia embarcada em veículos, etc.
  • JavaBeans: pequenos programas com padrão bastante rigido de codificação. São possíveis de reaproveitamento em qualquer tipo de programa em Java, podendo ser chamados a partir de aplicações stand-alone, applets, servlets e midlets.

Bem, por enquanto é isto ai.
Espero que tenham gostado da lição de hoje.

Dúvidas, sugestões e correções enviem e-mail para kirkgo@gmail.com

No próximo post vamos quebrar alguns conceitos errados sobre o Java e vamos conhecer em mais detalhes o JRE (Java Runtime Enviroment).

Um abraço. E te vejo no próximo post.

Atc.,
Kirk Patrick

15 outubro 2005

Características da Linguagem Java

E ai pessoal!
Como estão indo as coisas?

Caso algum dado esteja errado, vocês tem total liberdade para me corrigirem. Assim vocês aprendem comigo e eu aprendo com vocês. Em breve iremos colocar a mão na massa. Mas é importante, no momento, conhecermos algumas características da linguagem Java.

A linguagem de programação Java possui algumas características importantes. São elas:

Portabilidade: por ser uma linguagem interpretada, o Java pode ser executado em qualquer plataforma ou equipamento que possua um interpretador Java, e que tenha sido especialmente compilado para o sistema a ser utilizado;

Robustez: os recursos da linguagem e do ambiente para o tempo de execução garantem que o código não derrube o sistema de alguém que "tropece" em uma home page contendo uma animação;

Segurança: além de proteger o sistema do cliente contra possíveis ataques não-intencionais, o ambiente também deve proteger contra ações premeditadas. Muito tempo e esforço dos desenvolvedores de Java está sendo aplicado para que a linguagem se desenvolva nesse sentido;

Orientação a Objetos: Java é uma linguagem totalmente orientada a objetos, o que permite a herança e a reutilização de códigos de forma dinâmica e estática;

Dinamismo: por ter um projeto orientado a objetos, o dinamismo faz parte da natureza do Java, o que permite a extensibilidade durante a execução;

Alto Desempenho: a linguagem Java suporta vários recursos de alto desempenho, como multithreading, compilação just-in-time e utilização de código nativo.

Facilidade: a linguagem é derivada da linguagem C e C++, sendo assim familiar. Além disso, o ambiente retira do programador a esponsabilidade de gerenciar a memória e os ponteiros.

Como na maioria das linguagens de programação, você compila ou interpreta um programa para que ele possa funcionar em seu computador. Em Java os dois processos acontecem.

Quando você faz um programa em Java e o compila, o compilador java transforma seu programa em uma linguagem intermediária chamada bytecode. O bytecode é uma espécie de codificação que traduz tudo o que foi escrito no programa para um formato que o interpretador Java entenda e seja capaz de executar. A compilação ocorre apenas uma vez. A interpretação ocorre toda vez que o programa é executado.

A figura 1 ilustra este conceito.

O mecanismo que interpreta o bytecode gerado pelo compilador Java é a Máquina Virtual Java, ou JVM (Java Virtual Machine, em inglês). A JVM é, em poucas palavras, um mecanismo que permite executar código em Java em qualquer plataforma. Segundo a definição da Sun, a JVM pode ser entendida como "uma máquina imaginária implementada via software ou hardware que executa instruções vindas de bytecodes". Assim, graças a JVM, é possível desenvolver aplicações para uma infinidade de plataformas.

Para servir de exemplo, suponha que você desenvolveu uma aplicação que rode na plataforma Windows. Com pouca ou nenhuma modificação esta aplicação poderá rodar na plataforma Linux ou no MacOS. Basta que estas plataformas tenham uma JVM instalada. Alguma dúvida?

A figura 2 ilustra bem este conceito.


Caso venha a surgir dúvidas, entrem em contato.
Terei o maior prazer em ajuda-los. Ok?

No próximo post vamos falar sobre a plataforma Java.
Te vejo lá?

Até mais.

Atc.,
Kirk Patrick

(Data prevista do próximo post 16/10/2005)

História do Java

E ai pessoal.
Tudo beleza?

Pois bem, hoje, conforme prometi (ver post anterior), vamos iniciar nosso curso de Java. Mas antes de colocarmos a mão na massa, vamos falar um pouco sobre Java. Sobre sua história, principais características e o mercado que ela movimenta.

Como tudo aconteceu

Java está em todo lugar. Das torradeiras às sondas espaciais utilizadas pela NASA, ela tem sido largamente utilizada em milhares de projetos, produtos e serviços ao redor do mundo. Muito tem se falado sobre Java. Mas afinal, o que é Java? Quais suas origens e quais seus propósitos? De onde vem todo o seu sucesso?

Java é uma linguagem orientada a objetos (eu sei que você já sabia disto), desenvolvida pela Sun Microsystems (você também já sabia disto). Inicialmente elaborada para ser uma linguagem utilizada em eletrodomésticos, ela teve seu grande boom em 1995, devido ao sucesso da World Wide Web. Vou explicar.

No início de 1990, Naughton, Gosling e Sheridan começaram a definir as bases para o projeto de uma nova linguagem de programação, apropriada para eletrodomésticos, sem os problemas já tão conhecidos de linguagens tradicionais como C e C++. O consumidor era o centro do projeto, e o objetivo era construir um ambiente de pequeno porte e integrar esse ambiente em uma nova geração de máquinas para "pessoas comuns". A especificação da linguagem terminou em agosto de 1991, e a ela deu-se o nome de "Oak" [Carvalho]. Por problemas de copyrigth (já existia uma linguagem chamada Oak) o nome foi mudado em 1995 para Java, em homenagem à ilha de Java, de onde vinha o café consumido pela equipe da Sun.

Em 1992, Oak foi utilizada pela primeira vez em um projeto chamado Projeto Green, que tinha por propósito desenvolver uma nova interface de usuário para controlar os aparelhos de uma casa. Tal interface consistia em uma representação animada da casa, que era exibida em um computador manual [chamado star seven, bisavô dos palmtops de hoje], e que tinha uma tela sensível ao toque que permitia a manipulação dos eletrodomésticos. Essa interface era totalmente escrita em Oak, e evoluiu para um projeto de interface para redes de televisão pay-per-view. Contudo, o padrão proposto por esses dois projetos não vingou, e outros padrões, pelo menos em sistemas de TV pay-per-view vêm tomando conta do mercado. Um personagem animado desses projetos, Duke, tornou-se um dos símbolos de Java.

Em meados de 1993, pode-se dizer que Oak ia "mal das pernas". Os projetos propostos não eram economicamente viáveis, e não se via um grande futuro no desenvolvimento de aparelhos que suportassem essa nova linguagem. Justamente nessa época, a World Wide Web estava em seu nascimento, trazendo um novo horizonte para a Internet. (É importante lembrar que a Internet já existia muito antes do surgimento da WWW. A WWW nada mais é que um conjunto de protocolos que permite um acesso mais amigável aos recursos disponíveis na Internet. Dentre esses protocolos, por exemplo, o mais conhecido em geral é o de transferência de hipertexto [http]). Com o lançamento do primeiro browser do mercado, o Mosaic, ocorreu à equipe de desenvolvimento da Sun que uma linguagem independente de plataforma, segura e robusta como a que estava sendo desenvolvida para eletrodomésticos caberia como uma luva para uso na Internet, uma vez que um aplicativo gerado nessa linguagem poderia rodar nos diversos tipos de computadores ligados na Internet, rodando qualquer sistema operacional, de PCs rodando OS/2 a estações RISC rodando AIX Unix, ou SparcStations rodando Solaris, os programas escritos nessa linguagem que viria a ser conhecida por Java seriam o modelo para qualquer aplicativo Web.

Com o novo ânimo trazido pelo advento da WWW, a equipe da Sun desenvolveu um browser totalmente escrito em Java, tendo-o terminado no início de 1995 e denominado-o HotJava. O grande diferencial de HotJava para outros browsers da época (como o Mosaic, o Netscape Navigator e o Lynx) é que ele permitia a inserção de programas escritos em Java dentro de páginas HTML comuns. HotJava como browser foi um fiasco comercial, mas abriu os olhos dos desenvolvedores para um fato muito importante: as páginas HTML estariam fadadas a serem estáticas e sem ações embutidas em si, não houvesse uma linguagem padrão na qual fossem escritos programas que pudessem ser embutidos nas páginas Web. HotJava demonstrou que isso era possível (ou seja, incluir um programa, no caso escrito em Java, em uma página HTML rodando em um browser preparado para dar suporte à execução do programa, no caso o próprio HotJava). O grande "pulo do gato" de Java veio logo a seguir, quando a Netscape anunciou que sua próxima versão do browser Navigator, iria dar suporte a aplicativos Java embutidos em documentos HTML. Em seguida, a Microsoft anunciou o mesmo para o seu Internet Explorer. E Java estourou no mundo, a Sun contabilizava inúmeros downloads de seu JDK, diversas empresas desenvolveram IDEs para a programação em Java, e vieram JavaScript, JavaBeans, a briga deste com ActiveX, e...

E a Internet jamais foi a mesma.
[Fonte: InfoWester]

No próximo post vou falar sobre as características do Java.
Te vejo lá?

Atc.,
Kirk Patrick

14 outubro 2005

Apresentação

Bem-vindo ao Java Clube!
Este é um blog dedicado à tecnologia Java.
Neste blog você irá encontrar notícias e informações relacionados ao universo Java.

Se você sempre teve o desejo de aprender Java, mas não tinha dinheiro para pagar um curso ou ninguém quis te ensinar e quem sabe você teve foi preguiça mesmo de pesquisar e correr atrás, você está no lugar certo. Aqui, neste blog, voce irá aprender "step by step" a linguagem Java.

Vamos começar com uma forte ênfase em Orientação a Objetos e depois vamos caminhando pelo vasto universo da tecnologia Java (J2SE, J2EE e J2ME).

No próximo post vamos começar um estudo (curso) de Orientação a Objetos. Vamos mastigar esse monstro chamado Orientação a Objetos que assusta e dá nó na cabeça de muita gente. Vamos mostrar pra ele quem manda no pedaço.

Então? Estamos combinados?
Nos vemos no próximo post?

Então até lá!
Um abraço a todos.

Atc.,
Kirk Patrick
(Previsão do próximo post: 15/10/2005)