quarta-feira, 9 de setembro de 2009

Browsers: uma breve história - Parte II

Entra o Netscape

Marc Andreessen, vendo o potencial para a web se tornando muito maior do que era até então, viu uma oportunidade de construir um navegador muito melhor do que o Mosaic, e assim o fez. Netscape, também conhecido como Mozilla, foi lançado em outubro de 1994. Foi legal. Isso permitiu-lhe alterar as cores de links e links visitados. Foi possível adicionar cores de fundo e gráficos. Não mais páginas cinzas com links em azul e vermelho! Claro, se você ainda estava usando Mosaic, você ficaria de fora disso na medida em que esses novos recursos apareciam. A maioria dos autores de páginas web (ainda a serem referidos como web designers) simplesmente adicionariam um texto ou um gráfico dizendo que "melhor visualizado em Netscape" para suas páginas (no futuro mudariam o texto para Internet Explorer!).

Entretanto, houve um problema. A World Wide Web Consortium, que é uma organização que determina e aprova as normas de codificação de HTML. Apesar do W3C pretender adicionar a maioria dos recursos que o Netscape incluiu no seu navegador, eles ainda não tinham decidido, ou lançado o novo padrão HTML, que incluiu alguns desses novos elementos. O Netscape tinha sacado a arma. Apesar das objeções técnicas dos puristas, todo mundo estava empolgado com os novos recursos, e realmente não importava se estava ou não aprovados pelo W3C, o Netscape fazia. Não demorou muito tempo e o Netscape 2.0 foi lançado com outro conjunto de novos recursos de formatação, tais como "tables", "frames" e o temido tag "blink". As coisas estavam avançando rapidamente, e não se pensava muito como alguns desses novos recursos afetariam os navegadores mais antigos, que muitas pessoas ainda utilizavam. Esta tendência iria crescer mais e mais problemática no futuro com a inclusão do JavaScript, Java applets, e muitos outros elementos de página web mais complexos.

Agora que a aparência de uma página web poderia ser (um pouco) controlada, os designers começaram a ter um interesse real pela web. Muitos designers não tinham conhecimento de questões de compatibilidade de navegadores, mas este não era um grande problema, desde que havia apenas um browser dominante. Além disso, o usuário típico da web não tinha grandes expectativas de como uma página da Web poderia ser exibida no seu navegador. Se um site não fosse cinza genérico era considerado bem desenhado (pode?).

A guerra fria começa

"Que coisa está acontecendo no mundo dos computadores, e não é nele próprio?", gritou Bill Gates, e logo o Microsoft Internet Explorer 1.0 nasceu. Anti-trust de lado, a world wide web estava agora engajada em uma guerra civil entre duas facções entrincheiradas, com facões e foices à mão: os Rebeldes Netscape e o Império do IE. De repente, havia dois grandes jogadores cada um tentando superar o outro em capacidades. Dois caminhos muito divergentes surgiram. O padrão HTML controlado pelo World Wide Web Consortium foi deixado na poeira; apenas sobre cada aspecto de como uma página da web trabalhava diferente entre o Netscape e o IE interessava. Por exemplo, alguns dos mais avançados recursos de programação introduzida pela Netscape usava JavaScript. I.E. decidiu que iria usar VB Script em vez de JavaScript. Agora o que tinham os desenvolvedores a fazer? Se quisessem um pop-up de uma janela, usariam código em JavaScript ou VB Script? Durante algum tempo, eles foram obrigados a escolher qual o navegador era o melhor para um determinado site, ou outro código de duas versões de cada página para satisfazer ambos os navegadores.

Como se esses caminhos divergentes não fossem difíceis o suficiente para lidar com as forças do mercado causada pelo Netscape e IE as "novas" versões betas de seus softwares eram quase mensais. Tradicionalmente, quando uma empresa lança um "beta" do produto, é geralmente para um pequeno grupo de desenvolvedores, de "testers" com o propósito de encontrar e erradicar bugs e problemas antes que ele seja liberado para o público. No caso do Netscape e I.E. eles usaram o público como um grupo de "beta testers", liberando o software "bugado", software instável mesmo, para os usuários em geral. Portanto, agora os desenvolvedores não só teriam de determinar como é que iriam apoiar os vários navegadores, mas também como evitar a colisão das versões beta "bugadas" que estavam em circulação constante. Muitas vezes, eles teriam código de uma página web com um "hack" para contornar um problema específico em um browser. Claro que na próxima versão, o bug poderia ser corrigido (ou não), fazendo o "hack" no site existente ser quebrado e, "fixo" na próxima versão do navegador. Uma balbúrdia.

Antes de jogar toda a culpa no Netscape e no IE, precisamos perceber que eles estavam apenas respondendo a um mercado que estava exigindo novos recursos mais rapidamente do que razoavelmente poderiam ser produzidos. Eles queriam layouts "cool", melhores gráficos, rollovers, animação e todos os sinos e assobios que Netscape e IE podiam fazer possível. Uma das características mais importantes exigidas nas página pelos web designers (ops!) e usuários foi a capacidade de controlar o tipo e layout de sites. Netscape e I.E. ambos responderam através de várias maneiras para controlar estes elementos. Evidentemente, cada navegador implementou as características com pequenas diferenças, e onde um pedaço de HTML podia funcionar bem no Netscape, ele podia não funcionar no IE, e vice-versa.

A capacidade teórica de controle de design foi aumentando, e assim usuários de sites na Internet começaram a se acostumar (e finalmente esperando) com "cool layouts" e com maravilhosos recursos interativos. Designers estavam sob constante pressão para os "uau" dos clientes e visitantes do site com os seus desenhos. Quanto mais eles tentaram impressionar com elementos de design complexo e original, mais difícil se tornou para implementar os projetos, especialmente em ambos os navegadores.

Um comentário:

Thiago M. Rossi disse...

Bom texto. Boa sacada: o aspecto da padronização do w3c que o netscape ficou pra trás. Acho que a questão do trust não deve ser esquecida.