Java: Como Tudo Começou
A história da tecnologia Java começou modestamente no final de 1990, quando a empresa Sun Microsystems1 encarregou seus funcionários Patrick Naughton, Mike Sheridan e James Gosling da tarefa de descobrir qual seria a próxima grande tendência na área da computação. O projeto, denominado “Green Project”, chegou à seguinte conclusão preliminar: a integração dos dispositivos controlados digitalmente com os computadores iria se tornar uma tendência muito importante.
Para demonstrar isso, Naughton, Sheridan, Gosling e os demais integrantes da equipe “Green” montaram um controlador portátil interativo para dispositivos de entretenimento: o *7 (“Star 7”), um precursor dos futuros PDAs, e que já revelava o potencial da sua linguagem de programação, independente da arquitetura do processador.
Aquele revolucionário dispositivo remoto, conectado à rede sem fio, rodava uma versão do sistema operacional Unix e possuía uma tela sensível ao toque (touchscreen) – lembre-se que estávamos em 1992 e, para se ter uma ideia do desenvolvimento da Internet naquela época, basta dizer que, no final do ano, havia apenas 26 servidores Web no mundo! A interface de usuário incluía também um assistente de ajuda: um simpático personagem de desenho animado chamado Duke, que mais tarde seria adotado como mascote da plataforma Java.
O Star 7 incorporava “uma nova linguagem de programação dinâmica, compacta, segura, distribuída, robusta, interpretada, incorporando garbage collection e multi-threading, neutra à arquitetura de hardware e de alto desempenho” a fim de solucionar os vários problemas pertinentes ao desenvolvimento de programas para execução na plataforma *7. James Gosling criou a linguagem e deu-lhe o nome de “Oak”, em homenagem a um enorme carvalho que podia ser visto da janela do seu escritório.
O “Green Project” teve o seu grande momento de glória e surgiu a oportunidade de produzir dispositivos similares ao *7 para consumidores em potencial na indústria de TV a cabo. A “Equipe Green” mudou de nome para “FirstPerson” e preparou um filme para demonstração da sua tecnologia aos produtores de transcodificadores de TV e aluguel de vídeo. Mas, infelizmente para a equipe, aqueles setores, ainda na sua infância, estavam em processo de criação de modelos de negócio viáveis. A despeito do insucesso da “FirstPerson” com a TV a cabo, o tipo de configuração da sua tecnologia de rede era idêntica à configuração de rede para a Internet, que passava por um avassalador processo de popularização.
A Internet usava a “HyperText Markup Language” (HTML) para transportar o conteúdo de mídia – texto, vídeo, imagens, áudio, etc. – através de uma rede de dispositivos heterogêneos. De uma forma similar, Java (um nome substituto para Oak, a fim de contornar problemas de natureza legal com outra linguagem de nome idêntico) também movimentava o conteúdo de mídia através de uma rede de dispositivos heterogêneos, mas ia além: transportava também o seu “comportamento”, na forma de applets. A linguagem HTML não conseguia fazer isso.
Para demonstrar a utilidade de Java numa Web baseada na Internet, a “FirstPerson” fez um clone do navegador Mosaic e, em 1994, o navegador WebRunner (mais tarde conhecido como HotJava), “deu vida, pela primeira vez, a objetos animados e a conteúdo executável dinamicamente dentro de um navegador.”
John Gage, diretor do Escritório de Ciências da Sun, e James Gosling, fizeram uma demonstração do WebRunner numa reunião com profissionais da Internet e da área de entretenimento no início de 1995. A plateia aplaudiu calorosamente as demonstrações de uma molécula tridimensional giratória e a animação de um algorítimo de ordenação preparado por Gosling, embutidas em páginas Web apresentadas no WebRunner. O futuro certamente havia chegado. A notícia se espalhou rapidamente, e a FirstPerson disponibilizou o WebRunner para download.
Milhares de downloads chamaram a atenção da Sun para a popularidade de Java, e ela disponibilizou uma área no seu site para divulgar essa tecnologia. Em maio de 1995, durante a abertura da feira SunWorld da Sun, o líder do projeto Netscape, Marc Andreessen, anunciou que iriam integrar Java ao novo navegador para a Web Netscape.
Andreessen estava no palco há menos de três minutos e, mais uma vez, uma influente audiência de técnicos e da imprensa especializada explodiu em calorosos aplausos, cientes de que estavam testemunhando o começo de uma coisa muito significativa para o futuro da Internet.
Na timeline subsequente de Java podemos destacar:
- 23/1/1996 – A Sun libera a versão 1.0 do JDK (Java Development Kit).
- 29/5/1996 – Realizada a primeira conferência anual JavaOne.
- Setembro/1996 – 83.000 páginas da Web incorporam a tecnologia Java.
- 18/2/1997 – A Sun libera a versão 1.1 do JDK. Provavelmente o ponto alto daquela versão tenha sido um novo modelo de manipulação de eventos.
- 11/3/1997 – O número de downloads do JDK 1.1 atinge a marca de 220.000.
- 2/4/1997 – Tem lugar a segunda conferência JavaOne, que se torna a maior conferência mundial de desenvolvedores, reunindo cerca de 10.000 participantes.
- 1998 – Inovações Futurísticas de uma Comunidade Global – Os 15.000 participantes da JavaOne daquele ano usavam o "Anel Java": um dispositivo móvel de segurança e transportador de dados, disfarçado na forma de um ornamento de uso pessoal. Leitores especiais nas cafeterias da conferência serviam automaticamente uma xícara de café para cada participante, adaptada para suas preferências pessoais, que estavam armazenadas no microprocessador embutido no anel. O anel era capaz de executar múltiplos applets Java que podiam ser carregados dinamicamente, para cumprir inúmeras tarefas: efetuar o login num computador, sacar dinheiro de um caixa eletrônico, dar partida num carro, ou efetuar troca de dados para contato com um parceiro comercial – demonstrando, assim, ao vivo e a cores, todo o potencial da tecnologia Java.
- 1999 – Focando nas Oportunidades do Mercado – A Sun anuncia uma redefinição da arquitetura da plataforma Java, tornando-a mais simples para os desenvolvedores de software, provedores de serviços e fabricantes de dispositivos, visando atingir mercados específicos. Com a introdução da plataforma Java 2, Standard Edition (J2SE) para desktops e estações de trabalho; plataforma Java 2, Enterprise Edition (J2EE) para sistemas de servidores peso-pesados; e a plataforma Java 2, Micro Edition (J2ME) para dispositivos portáteis, era fácil agora investir na plataforma Java numa crescente gama de oportunidades.
- 2000 – A Tecnologia Mudando nossa Rotina Diária – Nos cinco anos desde que foi anunciada, a tecnologia Java progrediu de uma ferramenta para animar páginas da Web para a plataforma ponta-a-ponta Java 2, espalhando-se desde smartcards e pequenos dispositivos até os grandes servidores dos Datacenters empresariais. A variedade de produtos alavancando a tecnologia Java é vasta e inclui caixas eletrônicos, pagers, celulares, agendas eletrônicas, máquinas de jogos, câmeras, controladores industriais, máquinas automáticas de venda, desktops, servidores, e muito mais. Na conferência de desenvolvedores JavaOne, o co-fundador e Presidente da Apple, Steve Jobs, juntou-se a Scott McNealy no palco, para anunciar que a Apple, a partir de então, iria incluir Java 2 Standard Edition em cada versão do seu novo Sistema Operacional OS X.
- 2001 – Uma Comunidade Poderosa Molda o Futuro – Cada vez mais clientes, parceiros e a indústria em geral passam a exigir suporte para a plataforma Java 2, Enterprise Edition (J2EE), e a Sun reune-se com os membros do Java Community Process (JCP), para definir uma nova versão daquela edição, que integrasse suporte nativo para importantes tecnologias de serviços da Web. Na conferência de desenvolvedores JavaOne daquele ano, a Sony Computer Entertainment, anunciou que iria integrar a plataforma Java no sistema de entretenimento PlayStation 2, ampliando sua capacidade de fazer download da Internet de novos aplicativos e serviços dinamicamente e com segurança.
- 2002 – Java em Tempo Real – Uma das atrações principais da JavaOne foi uma luta de sumô entre duas tecnologias Java – robôs motorizados demonstraram seu poder em tempo real. Com um robô controlado por dispositivos embutidos integrados com celulares rodando Java numa arquitetura de serviços Web de ponta-a-ponta e o outro controlado por James Gosling, vice-presidente da Sun — as lutas terminaram empatadas. Mas a demonstração ilustrou que Java podia ser aplicada em todo o processo, a partir do banco de dados, passando por um servidor de aplicativos, serviços Web, conectividade sem fio, até a plataforma Java 2, Micro Edition (J2ME) em tempo real e interfaceando com a realidade ao mesmo tempo em que se adaptava a uma enorme variedade de clientes.
- 2003 – Computação Remota: dos Desktops à Lua – Durante sua palestra na Feira Comercial Comdex, o presidente da Sun, Scott McNealy, falou sobre as vantagens de um Cartão Java, demonstrando para uma multidão de profissionais de TI como um sistema Sun Ray, usando a tecnologia do Cartão Java, permitia a um usuário acessar com segurança uma sessão remota num servidor. Milhares de oficiais do Departamento de Defesa dos EUA já usavam Cartões Java para autenticação, e a Bélgica estava montando um sistema de identificação nacional com base nessa tecnologia.
- 2004 – Olhando para o Futuro em Aberto – O grande debate na JavaOne daquele ano era se Java deveria ter seu código aberto, seguindo a tendência open-source que despontava. Até então, a Sun exigia que projetos oficialmente baseados em Java fossem certificados como compatíveis com as especificações Java e quaisquer modificações precisavam passar pelos procedimentos do Java Community Process (JCP). Durante um painel de discussões na JavaOne, representantes da IBM e da Apache Software Foundation, endossaram um modelo open source para Java, enquanto seu criador e sócio da Sun, James Gosling, juntamente com o vice-presidente da Sun, Rob Gingell e o analista da Red Monk, James Governor, se opuseram a isso. Gosling alertava que permitir múltiplas implementações de código aberto das tecnologias Java poderia levar às mesmas incompatibilidades que ocorreram no Unix e estavam acontecendo novamente com as distribuições Linux, ressaltando que: “Eles na verdade são sistemas fechados e quase intercambiáveis, mas possuem diferenças suficientes para nos dar um belo chute no traseiro.”
- 2005 – De Animação na Web a Potência Mundial – Java celebrou seu décimo aniversário com estrondorosas comemorações na conferência JavaOne e na sede da Sun. Estimava-se que Java rendia naquela ocasião mais de US$ 100 bilhões por ano, contando com mais de 4,5 milhões de desenvolvedores ao redor do mundo; havia cerca de 2,5 bilhões de dispositivos Java habilitados, e 1 bilhão de smartcards baseados nessa tecnologia.
- 2006 – Java com Código Aberto – A Sun Microsystems libera Java para desenvolvimento em código-aberto, sob licença GPL, a mesma do Linux. Foram oferecidas gratuitamente todas as três versões de Java: Plataforma Java, Standard Edition (Java SE), para o desenvolvimento de aplicativos para Desktops; Enterprise Edition (Java EE), usada para criar aplicativos do lado do servidor; e Micro Edition (Java ME), para dispositivos portáteis.
- 2007 – Facilitando o Desenvolvimento de Aplicativos Enriquecidos para a Internet (RIA – Rich Internet Applications) – Na conferência de desenvolvedores JavaOne a Sun anuncia o JavaFX, uma nova família de produtos com tecnologia Java, projetado para facilitar o desenvolvimento de sites Web enriquecidos e aplicativos Java para uma enorme gama de aparelhos.
- 2008 – Elevando a Interatividade para o Patamar Seguinte com o Blu-Ray – O ídolo do rock Neil Young subiu ao palco da JavaOne para anunciar que seus arquivos musicais, ansiosamente aguardados pelos fãs, seriam lançados em disco Blu-Ray, usando tecnologia Java. O primeiro volume de 10 discos dos arquivos de Young incluía canções, vídeos, clipes, áudios raros de entrevistas, fotos, coberturas da imprensa, manuscritos de letras musicais, biografias, roteiros de turnês, e muito mais. Com a tecnologia de navegação baseada em Java, os usuários podiam percorrer as recordações visuais enquanto escutavam canções ou entrevistas e baixavam mais conteúdo diretamente para os discos Blu-Ray, assim que era disponibilizado.
- 2009 – Olhando Adiante para um Novo Capítulo – Com a anunciada aquisição da Sun pela Oracle, a abertura da conferência de desenvolvedores JavaOne reuniu no palco os presidentes da Sun, Scott McNealy, e da Oracle, Larry Ellison. “O software básico da Oracle é 100% Java”, disse Ellison. “Java sempre foi uma plataforma muito atraente para nós porque é aberta, permitindo-nos ampliá-la”, prosseguiu, e acrescentou que a Sun e seu vice-presidente e criador de Java, James Gosling, fizeram um trabalho fantástico inventando, expandindo e abrindo o código dessa incrível tecnologia, entregando-a ao mundo. “Olhando para frente”, disse ele, “podemos esperar investimentos crescentes da fusão Oracle-Sun com uma expansão de toda a comunidade, e estamos muito animados com isso.”
- 2010 – Evolução da Plataforma Java – As Solicitações de Especificação Java (JSR – Java Specification Requests) para os dois próximos lançamentos da plataforma Java – JSR-336 e JSR-337 – são formalmente aprovadas por esmagadora maioria de votos do Comitê Executivo do Java Community Process (JCP). A partir de então, o padrão Java iria progredir através do JCP, enquanto a implementação de referência open-source seria conduzida pelo projeto OpenJDK. O plano, que incluía as contribuições da comunidade com o aval do Comitê Executivo do JCP, buscaria a padronização dessas tecnologias na Java SE 7, ao longo de 2011.
- 2011 – Levando Java Adiante – O Java Community Process realizou uma eleição especial para preencher três cadeiras do Comitê Executivo da Java SE/Java EE, e duas delas foram para Grupos de Usuários Java (JUG – Java User Groups): o Java London Community e o SouJava, um JUG brasileiro, sendo ambas as nomeações homologadas pela Oracle. Esta é a primeira vez que Grupos de Usuários Java fazem parte deste comitê de liderança.
- 2012 – Java 7 entra em cena – Com o nome-código de Dolphin esta importante atualização foi lançada em 7 de julho de 2011 e disponibilizada para os desenvolvedores no dia 28 daquele mês. O período de desenvolvimento foi organizado em treze metas (milestones); em 6 de junho de 2011, a última das treze metas foi atingida. Em média, 8 builds (que geralmente incluiam melhoramentos e correção de bugs) foram lançados em cada meta. A partir de abril de 2012, Java 7 passou a ser a versão default para download no site oficial da Oracle. Em agosto de 2012, o JavaFX e Java Access Bridge passaram a integrar a instalação de Java SE JDK e JRE; suporte da JavaFX para monitores touch-screen e touch-pads; suporte de JavaFX para Linux e suporte de JDK/JRE para Mac OS X e Linux em ARM.
- 2013 – Melhorando a Segurança – Implementadas correções de bugs para problemas com registro de plugin em sistemas com versão stand-alone da JavaFX instalada; o nível de segurança default para os applets Java e inicialização de aplicativos web foi aumentado de "Medium" para "High". No decorrer de 2013, cerca de 200 correções de bugs foram implementadas, além de diversos melhoramentos e suporte.
- 2014 – Modernizando Java – Java 8 foi lançada em 18 de março de 2014 e incluiu alguns recursos que estavam previstos para Java 7, mas demoraram para ser aprovados. O trabalho das implementações foi organizado sob a forma de JDK Enhancement Proposals (JEP), sendo as principais: suporte em nível de liguagem para expressões lambda (oficialmente, expressões lambda; extra-oficialmente, closures) coordenadas pelo Projeto Lambda, e métodos default que tornam possível implementar herança múltipla em Java. Houve um grande debate na comunidade sobre a possibilidade de adicionar suporte para expressões lambda e, finalmente, a Sun confirmou que elas seriam incluídas em Java e pediu o feedback da comunidade para refinar o recurso. O suporte de expressões lambda também permite executar operações de estilo funcional em streams de elementos, tais como transformações Map Reduce em collections. Métodos default permitem que um autor de API acrescente novos métodos a uma interface sem quebrar o antigo código ao usá-los. Fornece, também, um meio para usar herança múltipla, ou melhor, herança múltipla da implementação. A partir de outubro de 2014, Java 8 se tornou a versão default para download no repositório oficial.
- O futuro vem aí... – Na conferência JavaOne de 2011 foram discutidas as funcionalidades que se esperava ver incluídas numa eventual liberação de Java 9 em 2016, incluindo melhor suporte para pilhas (heaps) multi-gigabyte, melhor integração de código nativo e auto-ajuste da JVM. Outros avanços seriam a modularização da JDK (Java Module System), coordenada no Projeto Jigsaw; API para finanças e moeda; e, por fim, existem planos para acrescentar paralelização automática, usando a OpenCL.
- ...e para quem gosta de especular... – Cogita-se a introdução de objetos sem identidade (value types), bem como a progressão para arrays de 64-bits a fim de suportar grandes data sets por volta de 2018. Haverá, ainda, uma edição limitada em versão beta, (que seria a futura versão de Java 11), na qual Java seria capaz de endereçar arrays de 128-bits.
Bibliografia:
[1] A Sun Microsystems era originalmente uma empresa fabricante de computadores, semicondutores e software, com sede em Santa Clara, no famoso Silicon Valley, na Califórnia. Foi fundada em 24/2/1982 e adquirida pela Oracle Corporation em 2009. (Wikipedia).