Buscar

História do Java

Prévia do material em texto

História do Java
Entender uma tecnologia precisamos saber de onde ela veio.
Vamos voltar lá para os primeiros computadores...
Esse que esta aparecendo é o eniac que era da Universidade da Pensilvania, ocupava um andar inteiro.
Eles não tinham uma linguagem de programação especifica, eles não tinham uma forma de programar digitando os comandos. A forma de programar eles é esse jeito que você ta vendo ai a mulher girando o botão e fazendo a programação dele. Essa programação era através de plugues e botões. Então você tinha uma pré definição das posições dos botões, onde cada botão deveria ficar e essa fazia a pre programação da maquina.
O que aparecendo ai são as válvulas, os primeiros computadores eram valvulados o ENIAC uma curiosidade não funcionava na base binaria, ele funcionava diretamente na base decimal. Isso facia com que a quantidade necessária de válvula fosse muito grande. Então o que quero dizer sobre esses primeiro computadores é que eles não tinham uma linguagem de programação especifica, não tinham programar ele digitando comandos, ate por que eles não tinham teclados, o painel de entrada é esse que você viu ai no vídeo.
Com a evolução do computador, a partir do momento que o computador ganhou a mesa, o desktop começou ate para ele um mercado pra ele de software, as linguagens evoluíram e começaram a surgir o que chamamos de linguagem de alto nível.
Por exemplo:
A linguagem pascal... é uma linguagem de programação bem antiga.
Temos ai um programa “olá alunos do EMIEP “ em pascal
Então criou uma variável msg do tipo string, ai coloque ola alunos do emiep. Temos write o comando para escrever ola alunos do emiep na tela.
Interessante é que você não precisa conhecer a linguagem programação pascal, so de você olhar os comandos você já teve noção do que estava acontecendo ali.
Nota que essa linguagem esta muito próxima de você, ou seja você consegue entender sem saber a linguagem de fato.
Esse código é o que a gnt chama de código fonte em pascal, para escrever olá alunos do emiep na tela. Então eu vou dizer que esse código fonte esta em uma linguagem de alto nível, isso é uma linguagem que está próxima de vc usuário.
Aqui em cima é vc aqui pra baixo esta a linguagem de maquina as microinstruções. Então uma linguagem de alto nível esta muito longe das microinstruçoes que uma maquina vai exigir. Então a linguagem pascal é uma linguagem dita de alto nível, e o código que vc digitou é dito de código fonte.
O grande problema que um código fonte se for submetido a uma maquina ela não vai entender nada, o computador ele so entende as microinstruções, aquilo que ele é programado para entender.
vc precisa de um processo, basicamente esse processo vai ter o seguinte:
de uma maneira bem básica, eu vou ter um componente de software que vamos chamar de compilador, e eu vou submeter esse meu código fonte não ao computador mas sim ao meu compilador, esse compilador vai transformar seu código fonte em algo que seja compreensível ao computador, o que chamamos de código executável.
Note que o código executável esta na linguagem que o computador entende e você não entende mais, eu precisei desse compilador para transformar o código fonte em código executável. 
Esse código que foi gerado sem problema nenhum posso submeter ele ao meu computador e ele vai ser executado na tela.
Então as linguagens que surgiram la no inicio aconteciam desse jeito, o programador sentava no computador digitava o código fonte, passava por um processo de compilação, gerava o código executável, e esse código funcionaria no computador.
(linker, montador, interpretador, tem uma serie de coisas que faz parte desse compilador).
Parece ser bem simples, mas o grande problema é que esse código executável ele somente ira funcionar em uma determinada plataforma, que foi a plataforma no qual ele foi compilado.
Se eu tiver outro sistema como por exemplo o Linux, mac os, free bsd eles vao ficar de fora dessa execução isso porque ele foi compilado em uma plataforma especifica que no meu caso aqui eu exemplifique como ms dos.
Se eu quezer que execute em outras plataformas vou usar mecanismo pouco diferente. Vou usar como exemplo a linguagem C, é uma linguagem bem antiga, mas de estrema importância pq esta ate hj no mercado. A linguagem c funciona da seguinte maneira eu também tenho um código fonte, esse é um programa para escrever “olá alunos do emiep na tela”, a pecularidade da linguagem c, é que ela tem compiladores para as diversas plataformas. Então se eu pegar código fonte da linguagem C e passar no compilador de outros computadores, ou outras plataformas, esses compiladores vao gerar resultados diferentes códigos executáveis especifico para cada plataforma, pegando esses códigos executáveis enviando para suas respectivas plataformas cada uma delas vai entender seu programa em C. Isso por muitos anos foi considerado algo revolucionário, por isso de sua importância.
Por essa característica a linguagem C é conhecida como linguagem multiplataforma, isso é uma vez usando o compilador correto, ele irá funcionar para multiplataformas.
Observação, que em alguns casos, na maioria deles você teria que pegar esse código em c e fazer pequenas adaptações, pq plataformas diferentes funcionam com micro instruções diferentes.
Por causa da sua características de multiplataformas, o c foi muito utilizado e ainda é , foi usado para criar software conhecidos como Firefox, Firefox é um navegador de multiplataformas, vc tem ele para Windows, Linux, mac, dispositivos moveis e muitos outros.
A chave para Firefox funcionar nessas plataformas é a multiplataforma da linguagem C, o Windows que vc usa é feito em c, Linux feito em c, mac os é feito em c.
O C evoluiu e faz parte das linguagens modernas, evolução do C é o C++, diz respeito ao acréscimo da orientação ao objeto, que é conceito totalmente moderno. Quer dizer C + alguma coisa, mais algum incremento. Mas vamos entender como C++ foi importante na historia do Java.
Em 1990 uma empresa chamada sun Microsystems tinha um projeto usando a linguagem c++, eles queriam interligar varias interfaces e fazer diversos dispositivos diferentes trabalharem entre si.
Uma equipe liderada por James Gosling ( lembrando que esse cara foi o desenvolveu o primeiro sistema operacional – UNIX) seria responsável por realizar esse feito. Em 1990 os computadores não eram autômatos como temos hj, então usando so a linguagem C++, não seria suficiente. Ai o que eles pensaram, vamos criar nossa própria linguagem. 
Essa equipe ficou conhecida como green team, eles criaram uma linguagem para substituir o c++ nessa tarefa e batizou ela de green talk, basicamente seria uma linguagem de intercomunicação, fazer com que dispositivos diferentes falassem entre si.
Em pouco tempo o green talk se tornou um dos maiores projetos da sun Microsystems e rapidamente foi rebatizado de oak, que significa carvalho, isso pq conta a lenda que da sala de gosling dava pra ver um frondoso carvalho.
Logo foi criado um aparelho conhecido como star seven, o projeto do star seven era revulocionario para época, basicamente esse aparelho que esta aparecendo ai na sua tela, parece um gps, ele tinha uma tela de 6 ou 7 polegadas com alguns dispositivos como, antena de comunicação, microchip integrado e já tinha cartões inteligentes e entrada para fone de ouvido, dispositivos para tramissão infravermelho, sistema integrado e uma tela sensível ao toque.
Essa é tela de bot do start seven da época, mostrava que além de aperta você poderia arrastar, e para fazer a coisa mais interativa foi criado um pequeno mascote o duke, basicamente vc ia controlar sua casa inteira através do star seven, controlava os eletrodomésticos e as lâmpadas da sua casa essa era a ideia do star seven. So fizeram 6 desse projeto, ofereceram para as grandes empresas, mas infelizmente nenhuma empresa se interessou e em 1992 o projeto do green team foi engavetado.
Como na vida nem tudo acontece como a gente quer.
1994... Aparece um cara chamado tim bernees lee,ele estava criando o HTML, todas as tecnologias envolvidas. Os inventos de Tim bernees Lee foram muito importante, principalmente para surgimento da linguagem java. 
Tim bernees lee estava criando o a html, uma linguagem para ser interativa na web. O star seven era interativo, a linguagem oak permitia interatividade, ai eles pensaram porque não pegamos tudo isso e unimos em uma tecnologia só. Surge então o projeto web runner, seria um navegador paracido com internet explorer ou Firefox, mas so 1994 não existia nada disso.
A ideia principal do web runner era criar interatividade para web. Tudo muito lindo, tudo muito perfeito, mas surge um problema. Por mais incrível que seja já existia uma linguagem chamada oak. Que eles descobriram na hora de registrar, foi um pequeno problema para equipe de gosling. Gosling então se reuni com sua equipe, segundo relatos ele perguntou a sua equipe o que deixava eles animados e os programadores respoderam café, então eles pensaram que se fosse chamar a linguagem de coffe ficaria estranho. Mas ai eles pensaram que o café bom tem que ser forte, e o café forte existe são os grãos cultivados na ilha de java era café que eles consumiam quando precisavam ficar animadíssimos. Em alguns lugares dos Estados Unidos tem uma gíria quando vc vai pedir um café, vc diz java coffe.
Assim foi escolhido o novo nome da linguagem, linguagem java, é por isso que ate hj o símbolo da linguagem é uma xicara de café quente.
Batizada a linguagem java, o projeto web runner muda o nome agora passa a ser chamado hotjava. Como houve grande alvoroço na época, pq todos diziam que java era a linguagem do futuro. Uma empresa Netscape cria o javascript como jogada de markting, mas java e javascript são linguagens totalmente diferente. Com propostas e funcionalidades diferentes.
Em 2009 a empresa sun deixou de existir, ela foi vendida para gigante oracle
Exe
Sistema bancário, celulalar todos software são java, bluy ray, tv digital criada em java, 
Como java funciona:
Eu pego meus comandos da linguagem java e compilo em compilador javac e vai gerar um código binário, o código executável em java nos não chamamos de código executável e sim de bytecode, porem se eu mandar para o computador ele ainda não entenderar eu preciso de mais um software o java virtual machine (JVM). Que vai transformar o meu bytecode linguagem que a maquina entenda.
O JavaC (Java Compiler) vai transformar o Código Fonte Java em Bytecode, um código específico que vai executar em uma Máquina Virtual Java (Java Virtual Machine - JVM). Uma JVM é uma solução de software capaz de executar bytecode em qualquer máquina, independente da plataforma que o Código Fonte foi compilado. Java é multiplataforma sem a necessidade de recompilação. A JVM é composta por várias partes internas, como por exemplo Loader, Verificador, Interpretador, Gerenciador de Memória e Compilador JIT (Just in Time). Atualmente existem JVMs em várias plataformas, como Computadores Pessoais (Windows, Linux, MacOS), dispositivos móveis (Android) e até mesmo os modernos wearables (relógios inteligentes, óculos inteligentes). O princípio de funcionamento desse mecanismo explicado acima é conhecido pela sigla WORA (Write Once Run Anywhere) que significa “Escreva uma vez, execute em qualquer lugar”. JRE (Java Runtime Environment) é um conjunto de software que forma um ambiente para a execução de bytecodes feitos em Java. Ela é composta da JVM e bibliotecas adicionais. JDK (Java Development Kit) é um conjunto de programas que todo programador Java deve ter. Ele é um kit de desenvolvimento Java composto pela JRE (item acima), o JavaLang, o JavaTools (JavaC, Debugger, APIs). Além disso, você ainda pode adicionar uma IDE para facilitar o desenvolvimento Java. As IDEs mais conhecidas são o Eclipse, o IntelliJ e o NetBeans.

Continue navegando