16/02/2012 - O estado de Nevada nos Estados Unidos regulamenta o uso de carros auto dirigidos
27/10/2011 - China desenvolve primeiro robô feito de grafeno.
18/08/2011 - Pesquisadores da IBM desenvolve chip que simula parcialmente cérebro humano.
04/11/2010 - Microsoft lança aparelho de baixo custo capaz de mapear movimentos em três dimensões.
21/04/2010 - Primeira célula sintética é obtida.
29/01/2009 - Exército americano é capaz de controlar remotamente besouro vivo de modo eletrônico.
19/09/2008 - RabbitHoles desenvolve processo holográfico que gera expectativa de 3D real(360) no futuro.
O que é JavaScript?
JavaScript fez sua primeira aparição no Netscape 2.0 cujo sucessor, hoje, é o Firefox, em 1995, com um nome LiveScript,
a Netscape posteriormento para torna-lo mais comercial mudou seu nome para Javascript, pois com o lançamento da
linguagem Java, Java era a palavra do momento. Mas o Javascript foi produzido baseado na própria linguagem Java
e também baseado nas linguagem C, Perl, Python, Scheme e Self. Atualmente seu nome oficial é EcmaScript. Após
a Netscape tornar a especificação do Javascript aberta e sob o controle da ECMA cuja sigla significa European Computer Manufacturers Association.
Sua especificação pode ser encontrada sob o código 262 no site da ECMA. Para nosso propósito chamaremos o ECMAScript
de Javascript pois é o nome mais utilizado na internet.
JavaScript é uma linguagem leve, a princípio sem tipagem, interpretada, com multiplos paradgmas(orientada a objetos, imperativa e funcional),
e multi-plataforma.
Foi incorporada em todos os grandes navegadores: Internet Explorer, Chrome, Firefox, Safari e Opera usados em desktop
além dos alguns browsers usados em celulares, tais como, Iphone e Android.
O Javascript possibilita o uso dinâmico de páginas web, funcionando como qualquer outra linguagem de programação,
inclusive o uso de placas gráficas de ultima geração para conteúdos em 3D.
No client-side (navegador) temos algumas restrições de uso com relação a armazenamento de dados e acesso direto ao hardware,
pois envolvem questões de segurança, afinal ninguém gostaria de entrar em uma página e ter seu computador desligado,
ou seu disco rígido consumido inteiramente por terceiros. Mas essas restrições são contornadas usando tecnologias Server-side (servidor),
tornando Javascript a linguagem mais poderosa do mercado, pois provê segurança, eficência e escalabilidade e redução de custos.
Segurança
A segurança é provida para os dois lados, o cliente e o servidor, para o cliente pois este pode analisar o código que está sendo
executado em sua máquina se assim o desejar e para o servidor pois sem acesso direto ao hardware os dados de outros clientes
estão seguro. Há muitos textos na internet dizendo que javascript é inseguro. Muito pelo contrário, a execução se códigos fechados
fabricados por empresas terceirizadas, tem um potencial muito maior de destruição pois dificultam o acesso ao processo
produtivo da informação.
Eficiência e escalabilidade
A eficiência e escalabilidade ocorre pois o código é executado nas máquinas dos usuários, ou seja, o processamento acontece de acordo
com a demanda e de modo personalizado, podendo fazer uso do poder paralelo das placas gráficas ociosas durante a visualização
de uma página web. Profissionais que valorizam demais certa tecnologia, acabam por divulgar que tal técnica demandada é impossivel de
ser realizada sob tecnologia diferente a qual dominam, tornando o universo tecnológico um mar de mitos. Atualmente maioria das linguagens
possibilitam realizar o que a imaginação permitir, mas apenas uma tem acesso ao equipamento dos clientes sem custos de implantação
e essa linguagem é o Javascript.O navegador Internet Explorer incluído no Windows, o Safari incluído no iOS e o Firefox vem incluído
ao Ubuntu, 30% dos usuários de internet tem a capacidade e efetivamente instalam o navegador Chrome do Google e todos esses navegadores
possuem a capacidade de rodar Javascript sem nenhum adicional a ser instalado.
Redução de custos
A redução de custos se dá por dois fatores: estando o servidor separado do cliente, não precisamos instalar nada na máquina
cliente assim evitando custos de manutenção e logistica; e por parte do servidor, a linguagem por ser interpretada pode ser
escrita e modificada com o mínimo de recursos possiveis, um editor de texto tipo Notepad é o suficiente. São gastos bilhões
de dólares em aquisição se softwares para edição de conteúdo e esse custo permanente pode ser reduzido a zero caso as empresas
possuissem engenheiros capacitados a resolverem o problema da criação de ferramentas e treinamentos voltadas ao seu negócio,
um diferencial importante pois as ferramentas em si não são úteis se não houver pessoas capacitadas a utilizá-las e
personalizá-las de acordo com o negócio.
Ao longo deste curso iremos mostrar porque a tecnologia web para uso em computadores é a tecnologia final e que deve ser
de sua escolha, assim como é do Google e Facebook.
Devido a esses fatores, é de vital importância ter a tecnologia da informação das empresas com foco em web. Mesmo
porque web, não significa que o sistema necessite rodar apenas em um computador conectado a internet, e sim
que o sistema rode em um navegador, conectado ou não a internet, pois a conectivade em sistemas web é opcional.
Tentaremos ser os mais transparentes possíveis, pois acreditamos que para fornecer tecnologia:
- é preciso que o cliente saiba porquê e para que querem a tecnologia.
- é preciso acreditar que o cliente está investindo recursos monetários pois possui um outro tipo de negócio
em que seu tempo aprendizado é mais eficiente.
- é preciso ter pessoas capacitadas para entregá-la.
- é preciso que haja uma comunicação efetiva e eficiente entre as partes.
- é preciso criar parceiros de negócio pois toda tecnologia produz mais oportunidades de negócio
para os que realmente aprendem a utilizá-la.
#REFERENCIAS
http://en.wikipedia.org/wiki/JavaScript
http://www.ecma-international.org/publications/standards/Ecma-262.htm
Começando a programar:
Para programar em outra linguagem que não o Javascript, normalmente seria necessário no mínimo dois passos,
instalar o compilador ou interpretador, compilar o código e executá-lo. Em Javascript você pode começar
a aprender a partir desta página, mas seguindo nossa política de transparência iremos ensinar também a
programar sem a utilização de nossos serviços, para isso basta abrir alguns dos editores de texto,
instalados em sua máquina, por exemplo, Notepad(windows), Vi(linux), .
Para prosseguir no aprendizado de Javascript é necessário o prévio conhecimento do funcionamento básico de alguma versão
do HTML.
Quando codificamos em Javascript em client-side(usado no navegador) a tag script deve ser incluída ou referenciada
por um documento HTML dentro da tag head.
<html>
<head>
<script>
</script>
</head>
<body>
</body>
</html>
|
Com esse código temos uma página HTML em branco rodando. É importante que você verifique a ordem dos tags. Se você estiver com dificuldades
de compreender o código acima, sugiro uma revisão sobre HTML.
A seguir apresentamos como fazer uma página exibir um caixa de mensagem para o usuário.
<html>
<head>
<script>
alert("Bem vindo ao mundo Javascript.");
</script>
</head>
<body>
</body>
</html>
|
Para testar o código acima clique aqui. Após ter clicado você reparou que
uma caixa de mensagem apareceu, exibindo a mensagem "Bem vindo ao mundo Javascript.", agora para fixar o conhecimento, tente criar a página por si,
mesmo e executá-la. Para isso redigite o código acima no seu editor de texto favorito, salve o arquivo com a exstensão .html e abra o arquivo no seu
navegador favorito. Sempre frisando que é importante repetir os passos para que sejam aprendidos, pois o computador é uma maquina e como toda
maquina em seu uso mais simples, não aceita erros.
Imagine um carro, o carro é uma máquina, ou seja, não entende como nós as pessoas, o mundo
a sua volta, então se você estiver dirigindo e avistar uma pessoa em seu caminho, o carro prosseguirá se você não realizar alguma ação que
faça com que a máquina haja de modo diferente. No caso, a ação de desligar a chave do contato faria com que o carro parasse, mas não faria
com que parasse no tempo adequado, ou seja, não seria uma boa opção pois os freios dos carros
são hidráulicos e dependem de que a máquina esteja ligada para operar. No computador é a mesma coisa, podemos realizar diversas ações, ações
que tem uma funcionalidade, mas cada ação que a máquina executa foi criada para alcançar um determinado objetivo especifico, então por mais
que você queira que uma determinada ação sobre a máquina faça algo, a maquina agirá de acordo como foi criada. E por isso você está aprendendo
Javascript, para entender como funciona o controle desta máquina através da web.
Se redigitar o código na caixa de texto abaixo e aperta o botão "Rodar", você verá a mesma coisa acontecer em uma janela separada. Nos próximos exemplos
forneceremos uma caixa de testes para ser usada e agilizar o processo de aprendizagem.
O texto entre aspas "Bem vindo ao mundo Javascript", é uma string (do inglês : corda), e provém do conceito de listas ligadas em computação,
um conceito um pouco mais dificil mas que veremos em aulas posteriores. Mas na prática, toda string é um pedaço de texto entre aspas, que
armazenada em alguma memória do computador (memória ram neste caso), pode ser utilizada e/ou modificada. Neste exemplo apenas utilizamos a string
para executar uma função, a função alert. Neste código o que está entre aspas pode ser modificado, que é a mensagem e o seu uso, a impressão da mensagem,
se manterá inalterado. Experimente imprimir outras mensagems.
Quando precisamos adicionar um comentário ou deixar parte do código temporariamente desativado, usamos o recurso de comentários das linguagens
de programação. Em Javascript, os comentários seguem o estilo de C e Java. São comentários de uma linha, tudo que contiver na linha seguido de duas
barras // e também podemos usar comentários de muitas linhas iniciando o comentário com barra, asterisco /* e terminando o comentário com
asterisco barra */.
Veja o exemplo abaixo:
<html>
<head>
<script>
/*
isto é um comentário de muitas
linhas que não será exibido e
também não irá atrapalhar o fluxo
do programa.
*/
// alert("Isto é um comentário de uma linha.");
alert("Exemplos de comentários.");
</script>
</head>
<body>
</body>
</html>
|
Variáveis e Escopo
Toda linguagem de programação, exceto linguagens de montagem, possuem TIPOS de dados. Estes TIPO podem armazenar valores ou referências,
e são classificados em tipos primitivos ou não primitivos.
JavaScript permite que você trabalhe com cinco TIPOS de dados primitivos: numeros, strings, binarios, nulos e indefinidos.
Além dos tipos primitivos existem os TIPOS de dados complexos e/ou compostos, que seriam as listas, objetos, datas, expressões regulares, funções
e objetos fornecidos pela implementação atual do navegador ou aplicativo.
JavaScript representa números usando o formato 64-bit de ponto flutuante definido pelo padrão IEEE 754.
Variáveis são como recipientes, podem ser imaginadas como caixas, pacotes, pallets, containers e ou cargueiros.
Parece um exagero mas é possivel armazenar uma imensa quantidade de informações em uma variável, seja ela primitiva ou não primitiva.
O conceito de variável está intimamente ligado ao conceito de escopo, ou esfera de ação da variável. Neste capítulo vamos nos ater ao
escopo privado, que é o imediato do contexto em que se programa.
Antes de utilizar uma variável em um programa em Javascript, é necessário declará-la e isso pode ser feito da seguinte forma:
<script>
var variavel;
var pacote;
var caixa;
var pallet;
var container;
var cargueiro;
</script>
|
Declaramos dentro da tag script do documento javascript cinco variáveis de escopo
privado ( escopo privado também assume o nome de escopo local em javascript ).
Este programa ainda faz basicamente nada. Apenas cria as variáveis locais que não
são utilizadas em nenhum lugar.
Dito isto apresentamos abaixo, declarações seguidas de definições.
<script>
var variavel;
var pacote;
var caixa;
var pallet;
var container;
var cargueiro;
var nome_qualquer;
variavel = "A";
pacote = "AB";
caixa = "ABC";
pallet = "ABCD";
cargueiro = "ABCDEF";
nome_qualquer = "ABCDEFG";
</script>
|
No exemplo acima declaramos as variáveis e em seguida armazenamos valores de strings em cada variável.
Veja que depois da palavra-chave var e um espaço podemos criar um nome de nossa preferência seguido de
ponto e virgula.
Mais um exemplo:
<script>
var variavel = "A";
var pacote;
var caixa = "ABC", pallet = "ABCD";
var container;
var cargueiro, nome_qualquer;
pacote = "AB";
cargueiro = "ABCDEF";
nome_qualquer = "ABCDEFG";
</script>
|
Neste exemplo acima apresentamos sinônimos para se ter um script que realiza exatamente as mesmas coisas que o exemplo
anterior, a principal diferença está no fato que podemos armazenar o valor necessário na mesma linha que a declaração,
por exemplo para as variáveis: variavel, caixa e pallet. Podemos declarar resumidamente duas variáveis privadas separadas
por virgula sendo que apenas a primeira necessita que a palavra-chave var seja inserida, veja o caso das variáveis caixa,
pallet, cargueiro e nome_qualquer. Podemos também apenas declarar muitas variáveis em uma mesma linha sem a necessidade
de armazenar valores iniciais, como no caso das variáveis cargueiro e nome_qualquer.
Você pode notar que em cada exemplo separado, nunca repetimos o mesmo nome para variáveis. Isso se deve ao fato do nome precisar
ser não ambíguo dentro de um escopo. Veremos mais tarde que podemos ter o mesmo nome em diferentes escopos, mas dentro de
um escopo apenas uma variável estará ativa por vez.
Javascript possui TIPOS de dados, mas não possui TIPOS de variáveis. Pode parecer confuso para quem está aprendendo a programar,
mas basicamente se trata de não precisar escrever um nome pré-definido especifíco ao declarar uma variável. Em javascript,
todas as variáveis locais são declaradas com a palavra-chave var.
Para os nomes das variáveis existem muitas combinações possíveis e algumas impossíveis. As combinações impossíveis, ou
possíveis em algumas implementações(mas não todas). Considere as combinações impossíveis como sendo impossíveis em todas
as linguagens, são palavras-chave as combinações impossíveis. Uma combinação de caracteres possível é todo nome de
variável que comece com letra ou os caracteres _ e $, seguido ou não de outras letras, numeros ou os caracteres _ e $.
Por exemplo, é possivel criar variáveis de nomes: $123_123, _$_AA, $001, entre outros nomes estranhos, mas possíveis.
A tabela abaixo apresenta nomes de que são palavras-chave em javascript. Não se preocupe em decorá-las agora, apenas,
esteja ciente de que existem palavras que não podem ser usadas como nomes de variáveis.
| abstract | else | instanceof | switch |
| boolean | enum | int | synchronized |
| break | export | interface | this |
| byte | extends | long | throw |
| case | false | native | throws |
| catch | final | new | transient |
| char | finally | null | tru |
| class | float | package | try |
| const | for | private | typeof |
| continue | function | protected | var |
| debugger | goto | public | void |
| default | if | return | volatile |
| delete | implements | short | while |
| do | import | static | with |
| double | in | super | |
Podemos atribuir numeros às variáveis. Veja o exemplo a seguir:
<script>
var variavel = 1;
var pacote = 100000;
var caixa = 1e10, pallet = -0.8;
var container = -3.546e-4;
var cargueiro = 0, nome_qualquer;
</script>
|
Quem já programou em outras linguagens percebeu que javascript tem a capacidade de armazenar qualquer tipo
de numero sem a necessidade de TIPOS durante a declaração. Essa é uma imensa vantagem em termos de produtividade
para programação.
Agora iremos entender um pouco do que se trata o escopo de uma variável. Para isso criaremos um escopo artificial, no exemplo a seguir:
<script>
var a = 1;
var b = 2;
{
var a = 2;
var b = 3;
}
var c = 4;
</script>
|
A primeira variável a declarada assume o valor 1, até que as chaves que declaram um bloco, ou um escopo artificial, seja
definido. E continua com o valor 1 após o término do escopo do bloco. Dentro do escopo do bloco a variável a, tem valor 2,
e permanece com o valor 2 até que o bloco tenha terminado com o caracter de fechar chaves }.
Podemos criar blocos encapsulados, veja no exemplo:
<script>
var a = 1;
var b = 2;
{
var a = 2;
var b = 3;
{
var b = 4;
{
var a = 4;
var b = 5;
}
{
var a = 5;
var b = 6;
}
}
}
var c = 4;
{
var a = 6;
var b = 7;
}
</script>
|
Dentro de cada bloco as variáveis a e b possuem valores distintos pois o computador não consegue enxergar outros
nome ambiguos. Um fato interessante é que o nome mais próximo ao escopo é utilizado, por exemplo, no bloco em que
está definido b com valor 4, se utilizássemos o valor de a, obteríamos 2 que é a declaração de a precedente
mais próxima do escopo onde b está definido com valor 4. Um bom padrão de tabulação do código facilita a
vizualização de escopos, mas não é necessário que este padrão seja seguido. No exemplo a seguir, temos o mesmo
código anterior com um padrão que economiza caracteres de tabulação e novas linhas.
<script>
var a=1;var b=2;{var a=2;var b=3;{var b=4;{var a=4;var b=5;}
{var a=5;var b=6;}}}var c=4;{var a=6;var b=7;}
</script>
|
Podemos ver que o código torna-se difícil de se ler, mas essencialmente realiza a mesma coisa que o código anterior.
Existem outras estruturas de linguagem além dos blocos que criam escopos, veremos como tratá-los em outras lições,
mas em termos de escopo privado funcionam de modo similar.
Veremos agora o escopo público. No escopo publico ou global, podemos criar diretamente uma variável sem ter que
adicionar a palavra-chave var. Veja:
<script>
a = 1;
b = 2;
</script>
|
Mas, afinal, porque o escopo privado foi visto antes do escopo público? Veja o exemplo abaixo:
<script>
a = 1;
b = 2;
{
a = 2;
a = 3;
}
alert(a);
</script>
|
O valor de a ser mostrado na mensagem será 2 e não 1, diferentemente do escopo privado. Pois o escopo publico
lida com variáveis que podem interagir em qualquer parte do programa e este é o escopo público. Nos navegadores,
as variáveis públicas sáo adicionadas ao objeto window, que trataremos em capítulos posteriores.
As confusões mais frequêntes de escopos de variáveis acontecem quando misturamos os dois conceitos, veja:
<script>
a = 1;
b = 2;
{
var a = 2;
a = 3;
}
alert(a);
</script>
|
O valor a ser mostrado na mensagem será 2, pois a variável a é uma variável de escopo público,
não sendo possível redeclará-la de escopo privado. Último exemplo:
<script>
{
var a = 10;
{
window.a = 20;
{
alert(a);
}
a = 30;
alert(a);
}
alert(a);
}
alert(a);
</script>
|
Foi visto que o objeto window em navegadores armazena as variáveis publicas, no exemplo acima, utilizamos
para definir uma variável a de escopo público com valor 20, sendo que no escopo a variável a de escopo privado,
já possuia o valor 10. Podemos deduzir pelo exemplo anterior que: a primeira mensagem será exibido o valor
10 pois o escopo privado tem vantagem sobre o escopo público. Depois é impresso o valor 30 pois esta vantagem
permanece. Na terceira mensagem é impresso o valor 30 ainda, mas veja que a distância para se verificar qual
o escopo da variável a, aumenta, em códigos normais, caso não tenha isso armazenado em qual escopo está em
alguma parte da sua memória, terá de verificar isso manualmente procurando o lugar onde foi declarada a variável.
Na ultima mensagem é impresso o valor 20, que é o valor da variável a de escopo publico definida em
escopos internos. Nota-se que o uso de variáveis de escopo público deve ser utilizado juntamente com
boas práticas de programação para que não se torne difícil modificar o código posteriormente
(a experiência lhe dirá o que são boas práticas, em geral, nos tutoriais que você encontra pela internet,
apenas te dizem o que você deveria ou não fazer, mas não resolvem seu problema, boas práticas não
precisam ser democráticas se funcionam com você ou com alguma pessoa que possa contribuir para a solução
do problema).
Numeros
No capítulo anterior aprendemos o que são variáveis e o funcionamento de escopo das variáveis. Neste capítulo iremos
aprender como lidar com numeros em Javascript. Tradicionalmente Javascript não é uma linguagem com o objetivo especifico
de realizar computações numéricas mas uma linguagem para lidar com o controles de interface de usuário. O porque de aprender
a manipular números em Javascript, está no próprio fato de ser uma linguagem para lidar com controles de interface de
usuário. A medida que os sistemas se tornam complexos, desenhar controles de usuário para realizar qualquer tipo
de tarefa se torna uma tarefa longa e mesmo que seja desejável utilizar computação numérica intensiva, é viável
aprender Javascript para controlar via interface gráfica os parâmetros de um programa que use computação numérica
de modo intensivo, principalmente nos dias de hoje em que a maior parte da pesquisa em estágio inicial tem que ser
feita em máquinas potentes, mas comuns, já que o custo de horas de super computadores são e sempre serão proibitivos.
Outro fator que nos faz querer aprender bastante sobre numeros em Javascript é o fato de navegadores novos possuirem
acesso à placas de video, ou seja, computação em GPU array. Enfim, vamos ao que interessa.
Pode-se atribuir números a uma variável genérica em Javascript e operar sobre as variáveis, veja:
<script>
var a = 10;
var b = 100;
var c = a + b;
alert(c);
</script>
|
No código acima, definimos a variável a com valor 10, a variável b com valor 100, a variavel c como a soma de a e b e
mostramos uma mensagem com o valor de c. Do mesmo modo que somamos, podemos subtrair, multiplicar e dividir, ou seja,
realizar operações aritméticas comuns. Existe operações não muito conhecidas entre os não programadores que são as
operações de deslocamento, módulo e operações lógicas.
Operações de módulo representado pelo simbolo %, representam o resto das divisões. Ou seja, se dividirmos 5 por 2
teríamos como resultado 2 e resto 1. Quando estamos interessados no resto das divisões, utilizamos o operador de módulo.
Veja:
<script>
var a = 100;
var b = 13;
var c = a % b;
alert(c);
</script>
|
Façamos um exercicio mental para saber qual o valor será mostrado na mensagem. 100 % 13 = 100 - 13*x. Se x for 6 teríamos
como resultado 100-78=22 que é um numero maior que 13, se x for 7 teríamos 100-91=9, que é um resultado menor que 13,
logo se nossas contas estiverem certas o resultado será 9. Verifique clicando aqui.
Outra operação não muito conhecida é a operação de deslocamento. Operações de deslocamento envolvem uma conta um pouco mais
complexa. Normalmente os números que costumamos utilizar seguem uma base decimal, ou seja, 123 é o mesmo que 1*10*10 + 2*10 + 3*0,
que em palavras 123 é um vezes dez elevado a segunda potência mais dois vezes dez elevado a primeira potência mais três vezes
dez elevado a potência zero. Essa é a base decimal. O números no computador são armazenados com base binária e podem ser
representados com os simbolos 0 e 1. Esse fato é feito de modo a facilitar o projeto de computadores, que inicialmente
eram mecânicos e zeros e uns eram conceitos mecânicos como engrenagem travada ou destravada. Para nosso uso, temos de nos
acostumar com o processo de conversão binário-decimal e o jeito mais facil de fazer isso inicialmente é decorando algumas
potências de 2.
Abaixo uma tabela com potências de 2:
| 20 = 1 |
| 21 = 2 |
| 22 = 4 |
| 23 = 8 |
| 24 = 16 |
| 25 = 32 |
| 26 = 64 |
| 27 = 128 |
1990:
A Web é creditada à Tim Berners-Lee e Robert Cailliau que em implementaram a primeira comunicação bem sucedida HTTP e especificou a primeira versão do HTML,
uma linguagem baseada em SGML, uma padronização, que por sua vez foi baseada em GML uma linguagem desenvolvida nos anos 60 por três pesquisadores da IBM:
Charles Goldfarb, Edward Mosher and Raymond Lorie. Inicialmente tratava-se de texto puro com uma simples e contundente característica, parte do texto poderia
funcionar como um botão para acessar rapidamente o conteúdo referido pelo texto e obter maiores explicações.
1991:
Linus Torvalds cria o kernel do Linux, sistema operacional que se popularizaria depois de 1994 com o lançamento da linguagem de programação PHP, usada
em conjunto com o banco de dados MySQL, devido ao custo zero de aquisição.
1992:
Desenvolvido pela NCSA, o Mosaic foi o navegador web que iniciou o processo de popularização da Web e consequentemente da Internet, isso foi devido ao fato
de ser a primeira implementação que apresentava imagens juntamente com o texto. Em 1994, a Netscape Communications lançou seu browser o Netscape que agregou valor
ao conteúdo web ao acrescentar a linguagem de scripts Javascript desenvolvida por Brendan Eich baseada em C, Java, Python, Perl, Scheme e Self, trazendo ao conteúdo
publica dinamicidade e interatividade. A Netscape fornecia o browser gratuíto e vendia servidores web. Nesse mesmo ano o Yahoo foi fundado. O formato JPEG é
definido pelo Joint Photographic Experts Group.
1993:
O formato PDF é criado pela Adobe Systems, baseado em Postscript e compactação para uso na Web, atualmente o formato mais popular para documentos finalizados.
Muito utilizado em livros, teses e contratos.
1994:
PHP foi desenvolvido por Rasmus Lerdorf. O formato MP3 de audio é criado pela Fraunhofer Society. MySQL é criado por Michael Widenius e David Axmark.
Navegador Opera é rejeitado pela Telenor então Jon Stephenson von Tetzchner e Geir Ivarsøy fundam a Opera Software.O Geocities, um serviço de hospedagem
de paginas web estáticas é fundado por David Bohnett e John Rezner. Em troca da gratuidade do serviço o usuário do Geocities permitia que fossem inseridas
propagandas controladas pela Geocities.
1995:
A Sun criou um adicionou que podia ser instalado ao Netscape, o Java Applet, era o único sistema capaz de interagir graficamente com o usuário pelo navegador
em que se podia armazenar dados em um servidor remoto. Mas naquela época os computadores eram lentos demais para que se pudesse executar um software baseado
em máquina virtual. Por isso os applets não se tornaram o padrão de desenvolvimento de sistemas Web para navegadores. No entanto a linguagem Java obteve e
ainda obtem grande sucesso em servidores Web.
Netscape lançou o TLS, na época chamado de SSL, um protocolo de segurança baseado em chaves publicas que permite usuários se comunicarem
com certo grau de segurança através da internet, popularmente conhecido como HTTPS. Em 1996 as pessoas foram surpreendidas com a idéia de uma universitária.
Jennifer Kaye Ringley, tornou sua vida privada, publica, através de uma camera digital em seu site JenniCam que atualizava fotos de seu dormitório a cada 3 segundos.
Nesse mesmo ano foi publicado no ITU o protocolo H.323 um dos primeiros protocolos de comunicação VOIP, época em que se desenvolvia o SIP, atualmente, um dos
protocolos VOIP mais utilizados. Ebay, empresa de leilões web, fundada por Pierre_Omidyar começa a operar.Amazon empresa de comércio web começa a operar
fundada por Jeff Bezos. RSS é criado por Ramanathan V. Guha na Apple.
1996:
Por meio de Jonathan Gay a FutureWave desenvolveu o sistema de animações SmartSketch para o sistema operacional PenPoint. Quando a FutureWave
percebeu que o sistema operacional PenPoint não teria sucesso no mercado, portaram o SmartSketch para MacOS e Windows. Ano em que o Google fundado por
Larry Page e Sergey Brin, inicia suas operações.ICQ é desenvolvido pela Mirabilis. No fim de 1996 a Macromedia adiquiriu a FutureWave e re-lançou o SmartSketch
com o nome de Flash. O formato PNG para arquivos é desenvolvido por PNG Development Group. Redes NAT se tornam populares. Alexa é fundada por Brewster Kahle e
Bruce Gilliat.
1997:
A plataforma base Gecko é construida para uso no Netscape. Deep Blue da IBM vence campeão mundial de xadrez Gary Kasparov.
1998:
O padrão VML para desenhos vetoriais na Web foi proposto ao W3C pelo grupo de empresas formado pela Autodesk, Hewlett-Packard, Macromedia, Microsoft, e Visio.
O VML passou a fazer parte do Internet Explorer. Neste mesmo ano o W3C propôs o MathML. A Microsoft lança sua plataforma de desenvolvimento em servidores
web, o ASP. A inclusão do Internet Explorer ao sistema operacional Windows 98 passaria a ser um problema grave para o dominio do Nestscape que detinha 90%
do mercado de navegadores neste ano. DivX é inventado por Jerome Rota. Formato de arquivos de texto djvu é criado por Yann LeCun, Léon Bottou, Patrick Haffner
e Paul G. Howard na AT&T Labs.
1999:
O W3C publicou o SVG uma padronização entre o PGML da Adobe e o VML proposto no ano anterior. Fato que possivelmente teria incentivado a Microsoft a não seguir
mais os conselhos do W3C nas versões seguintes do Internet Explorer. Criação do JBoss de Marc Fleury pela Sun. A Microsoft percebeu o potencial do ICQ e lançou o Messenger.
Napster é criado por Shawn Fanning, John Fanning e Sean Parke. O formato de audio VQF é desenvolvido pela Nippon Telegraph and Telephone Corporation.
Blogger é criado Evan Williams e Meg Hourihan fundadores da Pyra Labs.
2000:
A Microsoft lança sua ofensiva com foco na internet através do .Net Framework e patenteia a tecnologia Ajax, tecnologia que originaria o termo Web 2.0, provendo
a interação entre o navegador e o servidor web do mesmo modo que aplicativos isolados(stand-alone), ou seja, sem um processo de carregamento com interrupções
na visão que o usuário tem da interface gráfica da aplicação.
PayPal, empresa de serviços financeiros virtual, começa a operar.
Crise de empresas de internet.
// serviços SAN se tornam populares
2001:
BitTorrent é criado por Bram Cohen. Wikipedia é criado por Jimmy Walles e Larry Sanger.
Apple lança iPod.
2002:
O Firefox um descendente do Gecko, foi lançado com o nome Phoenix mas teve que deixar o nome pois este nome estava registrado em posse de outra empresa.
Começou como um projeto experimental de Dave Hyatt, Joe Hewitt e Blake Ross. Neste ano Microsoft implementou o CSS uma sub linguagem destinada exclusivamente
a definir a disposição dos componentes das páginas Web mas que já usada sem um nome definido na época em que se usava o SGML.
O Internet Explorer chegou a ter 95% do mercado de navegadores em 2002. Após algumas batalhas judiciais e a entrada do Firefox no mercado, o Internet Explorer
começou a perder sua popularidade. Rapidshare criado Christian Schmid começa a operar. Microsoft lança XBox Live Network.
2003:
Apple lança seu próprio navegador, o Safari.
Android Inc. é fundada por Andy Rubin.
Google compra Pyra Labs.
Skype é fundada por Janus Friis e Niklas Zennström, mas foi desenvolvido por Ahti Heinla, Priit Kasesalu and Jaan Tallinn também criadores do Kazaa.
2004:
Orkut é criado por Orkut Büyükkökten e ganha rapidamente popularidade tanto por ter o selo do Google, como pelo fato de ser a primeira rede social. Uma grande
curiosidade para todos que estavam de fora pois inicialmente apenas convidados de convidados podiam acessar o sistema. Quando o Orkut ganhou escala e deixou
de ser uma rede restrita ao publico universitário norte-americano, muitas pessoas começaram a levantar questões sobre a privacidade de seus dados.
Facebook é criado por Mark Zuckerberg.
Google oferece GMail gratuitamente para convidados.
2005:
//Macromedia foi comprada pela Adobe.
Youtube é criado por três ex-funcionarios do PayPal: Steve Chen, Chad Hurley, Jawed Karim.
Megaupload fundada por Kim Schmitz começa a operar.
Google compra Android Inc. e relança com sua marca.
Writely é criado por Upstartle.
Sony lança PlayStation Network.
2006:
Web móvel começa a se popularizar com o aumento na venda de celular e o processo de miniaturiação do hardware.
Google compra Upstartle e integra o produto no Google Docs, lançando no mesmo ano o Google Finance.
Amazon lança Amazon Web Service, o primeiro serviço de Cloud Computing.
2007:
Apple lança iPhone.
2008:
Google lança seu navegador Chrome.
Crise hipotecária americana.
Apple lança a App Store, utilizada exclusivamente através de seu produto, o iPhone.
// Microsoft oferece U$44bi pelo yahoo
2010:
//Oracle compra a Sun.
Apple lança iPad.
2011:
// Yahoo é cotado a U$22bi
Watson da IBM vence o maior vencedor de jogos de Quiz de todos os tempos Brad Rutler.
WebGL é especificado pelo W3C.
Google compra Motorola.
Microsoft compra Skype.
HP fecha divisão webOS.
2012:
SOPA um projeto de lei norte-americano propõe regras para regulamentar e coibir a pirataria de conteudo na internet,
o projeto falha após grandes sites da internet manifestarem sua oposição ao projeto.
Autor: Flavio S. H. Kodama
Data: 17 de fevereiro de 2012 @ 14:09
Licença: Creative Commons
#REFERÊNCIAS
http://en.wikipedia.org/wiki/IBM_Generalized_Markup_Language
http://en.wikipedia.org/wiki/SGML
http://en.wikipedia.org/wiki/Tim_Berners-Lee
http://en.wikipedia.org/wiki/Robert_Cailliau
http://en.wikipedia.org/wiki/HTML
http://en.wikipedia.org/wiki/Mosaic_(web_browser)
http://en.wikipedia.org/wiki/Linux_kernel
http://en.wikipedia.org/wiki/Netscape
http://en.wikipedia.org/wiki/Yahoo!
http://en.wikipedia.org/wiki/JPEG
http://en.wikipedia.org/wiki/JavaScript
http://en.wikipedia.org/wiki/Brendan_Eich
http://en.wikipedia.org/wiki/Portable_Document_Format
http://en.wikipedia.org/wiki/PHP
http://en.wikipedia.org/wiki/MySQL
http://en.wikipedia.org/wiki/GeoCities
http://en.wikipedia.org/wiki/Opera_(web_browser)
http://en.wikipedia.org/wiki/Opera_Software
http://en.wikipedia.org/wiki/MP3
http://en.wikipedia.org/wiki/Rasmus_Lerdorf
http://en.wikipedia.org/wiki/Java_(programming_language)
http://en.wikipedia.org/wiki/James_Gosling
http://en.wikipedia.org/wiki/Java_applet
http://en.wikipedia.org/wiki/Google
http://en.wikipedia.org/wiki/RSS
http://en.wikipedia.org/wiki/PenPoint_OS
http://en.wikipedia.org/wiki/FutureWave_Software
http://en.wikipedia.org/wiki/Jonathan_Gay
http://en.wikipedia.org/wiki/EBay
http://en.wikipedia.org/wiki/Amazon.com
http://en.wikipedia.org/wiki/Pierre_Omidyar
http://en.wikipedia.org/wiki/Google
http://en.wikipedia.org/wiki/Macromedia
http://en.wikipedia.org/wiki/Adobe_Flash
http://en.wikipedia.org/wiki/Jennifer_Ringley
http://en.wikipedia.org/wiki/Portable_Network_Graphics
http://en.wikipedia.org/wiki/Network_address_translation
http://en.wikipedia.org/wiki/H.323
http://en.wikipedia.org/wiki/Session_Initiation_Protocol
http://en.wikipedia.org/wiki/W3C
http://en.wikipedia.org/wiki/MathML
http://en.wikipedia.org/wiki/Alexa_Internet
http://en.wikipedia.org/wiki/Vector_Markup_Language
http://en.wikipedia.org/wiki/Precision_Graphics_Markup_Language
http://en.wikipedia.org/wiki/Scalable_Vector_Graphics
http://en.wikipedia.org/wiki/DivX
http://en.wikipedia.org/wiki/Jerome_Rota
http://en.wikipedia.org/wiki/JBoss_application_server
http://en.wikipedia.org/wiki/Napster
http://en.wikipedia.org/wiki/Active_Server_Pages
http://en.wikipedia.org/wiki/DjVu
http://en.wikipedia.org/wiki/Internet_Explorer
http://en.wikipedia.org/wiki/TwinVQ
http://en.wikipedia.org/wiki/.NET_Framework
http://en.wikipedia.org/wiki/PayPal
http://en.wikipedia.org/wiki/Ajax_(programming)
http://en.wikipedia.org/wiki/Storage_area_network
http://en.wikipedia.org/wiki/BitTorrent_(software)
http://en.wikipedia.org/wiki/Bram_Cohen
http://en.wikipedia.org/wiki/Wikipedia
http://en.wikipedia.org/wiki/Firefox
http://en.wikipedia.org/wiki/Gecko_(layout_engine)
http://en.wikipedia.org/wiki/Dave_Hyatt
http://en.wikipedia.org/wiki/Joe_Hewitt_(programmer)
http://en.wikipedia.org/wiki/Blake_Ross
http://en.wikipedia.org/wiki/Cascading_Style_Sheets
http://en.wikipedia.org/wiki/Safari_(web_browser)
http://en.wikipedia.org/wiki/Pyra_Labs
http://en.wikipedia.org/wiki/Google_Finance
http://en.wikipedia.org/wiki/Facebook
http://en.wikipedia.org/wiki/Mark_Zuckerberg
http://en.wikipedia.org/wiki/Skype_Limited#History
http://en.wikipedia.org/wiki/YouTube
http://en.wikipedia.org/wiki/Megaupload
http://en.wikipedia.org/wiki/Mobile_Web
http://en.wikipedia.org/wiki/Gmail
http://en.wikipedia.org/wiki/Google_Chrome
http://en.wikipedia.org/wiki/RapidShare
http://en.wikipedia.org/wiki/WebGL
http://en.wikipedia.org/wiki/App_Store_(iOS)
http://en.wikipedia.org/wiki/IPad
http://en.wikipedia.org/wiki/IPhone
http://en.wikipedia.org/wiki/Watson_(computer)
http://en.wikipedia.org/wiki/IPod
http://en.wikipedia.org/wiki/PlayStation_Network
http://en.wikipedia.org/wiki/Xbox_Live
http://en.wikipedia.org/wiki/Cloud_computing
http://en.wikipedia.org/wiki/Stop_Online_Piracy_Act