Pesquisa personalizada

Os Nossos Blogs

quinta-feira, 20 de janeiro de 2011

Java - Historia

O objectivo do projecto não era a criação de uma nova linguagem de programação, mas antecipar e planear a “próxima era” do mundo digital. Eles acreditavam que no futuro iria existir uma convergência dos computadores com os equipamentos e electrodomésticos usados pelas pessoas no seu dia-a-dia.

Para provar a viabilidade desta ideia, 13 pessoas trabalharam arduamente durante 18 meses. No verão de 1992 eles emergiram de um escritório de “Sand Hill Road” no “Menlo Park” com uma demonstração funcional da ideia inicial.

O protótipo chamava-se 7 (“StarSeven”), um controlo remoto com uma interface gráfica “touchscreen”. Para o 7 foi criado uma mascote, hoje amplamente conhecido no mundo Java, o “Duke”.

O *7 tinha a possibilidade de controlar diversos dispositivos e aplicações. “James Gosling” especificou uma nova linguagem de programação para o *7. “Gosling” decidiu denominá-la de “Oak”.

O próximo passo era encontrar um mercado para o *7. A equipa achava que uma boa ideia seria controlar televisões e filmes. Eles construíram um demo a que deram o nome “MovieWood”, mas infelizmente era muito cedo para que os filmes por encomenda assim como as empresas de TV por cabo pudessem rentabilizar o negócio. A ideia que o *7 tentava vender naquela altura, é hoje realidade em programas interactivos e também na televisão digital.

Permitir ao telespectador interagir com a programação numa grande rede por cabo, era algo muito visionário e estava muito longe do que as empresas de TV por cabo tinham capacidade de entender e comprar. A ideia certa, na época errada.

A sorte é que o boom da Internet aconteceu, e rapidamente estabeleceu-se uma grande rede interactiva. Era este tipo de rede interactiva que a equipa do *7 estava a tentar vender ás empresas de TV por cabo. Deixou então de ser necessário construir uma infra-estrutura para rede. “Gosling” foi incumbido a tarefa de adaptar o “Oak” para a Internet e em Janeiro de 1995 foi lançada uma nova versão do “Oak” que foi redenominada de Java.

A tecnologia Java tinha sido projectada para mover-se através de redes de dispositivos heterogéneos, redes como a Internet. Agora aplicações poderiam ser executadas dentro dos Browsers nos Applets Java e tudo seria disponibilizado pela Internet instantaneamente. Foi o estático HTML dos Browsers que promoveu a rápida disseminação da dinâmica tecnologia Java. A velocidade dos acontecimentos seguintes foi assustadora, o número de utilizadores cresceu rapidamente, grandes empresas, como a IBM anunciaram suporte para a tecnologia Java.

Desde o seu lançamento, em Maio de 1995, a plataforma Java foi adoptada com uma rapidez superior a todas as outras linguagens de programação na história da computação.

Em 2003 Java atingiu a marca de 4 milhões de programadores em todo mundo. Java continuou e continua a crescer e hoje écom certeza um padrão para o mercado oferecendo qualidade, desempenho e segurança ainda sem nenhum rival a altura.

Java tornou-se popular pelo seu uso na Internet e hoje possui um ambiente de execução em web browsers, mainframes, SOs, telemóveis, entre outros.


O trabalho do “Duke” no 7 era ser um guia virtual ajudando e ensinando o utilizador a utilizar o equipamento.

Polimorfismo (Completo)

O termo polimorfismo é originário do grego e significa "muitas formas" (poli = muitas, morphos, formas).
Na programação orientada a objetos, o polimorfismo permite que referências de tipos de classes mais abstractas representem o comportamento das classes concretas que referenciam. Assim, um mesmo método pode apresentar várias formas, de acordo com seu contexto.

O polimorfismo é importante pois permite que a semântica de uma interface seja efectivamente separada da implementação que a representa.

Composição

Composição pode não ser considerado por alguns autores como sendo uma das bases de POO, no entanto é importante que seja mencionada. Composição não é mais que a criação de classes usando como base outras classes. Criamos assim uma relação entre objectos em que um determinado objecto contém no seu interior outros objectos que criamos.

Polimorfismo

Polimorfismo é a capacidade de um objecto redefinir o comportamento herdado, alterando assim a forma de responder à mensagem que o seu pai definiu mas sem alterar a interface de comunicação. O polimorfismo, juntamente com a herança, possibilita a reutilização e redefinição de código por parte de classes filhas mantendo ao mesmo tempo o contracto que os seus pais definiram.

Encapsulamento

Tal como na vida real em que a maioria de nós não sabe que uma lâmpada de halogéneo contém no seu interior um filamento de tungsténico selado num invólucro compacto e transparente, cheio com um gás inerte, como por exemplo o bromo, também aos objectos não interessa saber a forma como outros objectos são construídos.

Herança

A herança, tal como na vida real, é o processo pelo qual as classes ganham características dos seus pais. Embora, tal como na vida real, uma classe deva sempre introduzir comportamento e características próprias. Através do mecanismo de herança é possível criar relações entre diferentes classes e reutilizar código, é um mecanismo muito importante em linguagens POO.

Objecto ou Instância?

Objecto ou instância é o mesmo, obtém-se uma lâmpada através do processo de instanciação, daí poder-se dizer que o que tem é um objecto ou uma instância da classe Lâmpada. É aconselhável, para não causar confusão, usar sempre “objecto” para referir a um elemento com estado, que existe em memória no computador durante a execução da aplicação. Evitar usar a palavra instância.

Conceitos Base em POO

Uma Classe não é um Objecto Apesar de se falar sempre em objectos, e de se pensar em objectos, ao programar-se e desenhar-se o nosso sistema, usam-se classes, que embora estejam intimamente ligadas aos objectos, não significam a mesma coisa. Esta distinção pode ser algo estranha de perceber.

Programaçao orientada a Objectos

A Programação Orientada a Objectos pretende modelar os problemas aproximando-os da vida real e dos objectos que vemos no dia a dia, consiste em ver um programa como um conjunto de entidades, que interagem entre si através do uso de mensagens. Cada objecto é definido por um grupo de atributos e por métodos que disponibiliza para o exterior, estes métodos definem o seu comportamento. Se pensarmos numa lâmpada eléctrica, o seu comportamento mais simples será o de ligar e desligar e o seu atributo será o estado, que pode ser “ligado” ou “desligado”.