python5.jpg
PyCon [5] 2009 - Caxias do Sul

Ae, faz horas que não escrevo no meu blog, e já andava com saudade dele. A minha auxência é facilmente explicada pois atualmente meus dias não são mais contados em horas, mas sim pelo número de coisas que tenho que fazer por dia. Atualmente, estou me empenhando para concluir a tradução da documentação do Django 1.0 para Português do Brasil, fora a faculdade, que eu achei q seria barbada no início, mas esta exigindo muito trabalho fora de sala de aula. Junto tudo isso estou com 4 projetos em fase de acabamentos e detalhes, tudo contribuindo para aumentar a falta de tempo para escrever, e por em andamento várias idéias que tenho anotadas.

navigators.jpg

Todo desenvolvedor Web, tem noção dos problemas que enfrentamos ao trabalhar com desenvolvimento de sites hoje em dia. Na verdade 90% dos problemas são atribuídos ao Internet Explorer, mais ainda quando falamos da versão 6. Mas o fato é que não existe somente ele, existe uma lista bem grande de navegadores, e mesmo quando você foca nos mais populares, você encontra problemas para testá-los, pois não há a possibilidade de rodar todos no Linux. Com essa série de posts sobre Desenvolvimento Cross-browser, eu vou mostrar como eu faço para atingir a maior parte de casos possíveis e dar algumas dicas de como eu faço para construir um html que funciona sem necessidade de hacks entre diferentes plataformas. Have Fun!

Principais navegadores

Hoje temos 5 principais navegadores sendo utilizados: Firefox, Safari, Opera, Chrome e Internet Explorer. Cada um desses navegadores possuem uma peça fundamental para o seu funcionamento, e isso determina o quão bom eles serão, e essa peça é o motor de javascript.

O motor de javascript, ou Javascript Engine em inglês, é o responsável por montar o layout das páginas nos navegadores, é ele quem transforma o html que temos das páginas em imagens, letras de diferentes formas, cores e tamanhos, ou seja, desenha a página apartir do html dado.

Os motores de javascript existentes hoje são os utilizados por estes 5 navegadores. Na verdade até existem outros, mas alguns foram abandonados e só são utilizados como material de consulta ou experimentos pequenos, e outros poderão ser muito utilizados no futuro, principalmente com a expansão da internet móvel através de celulares, palms e netbooks.

Abaixo segue a lista dos principais motores de javascript, com o seu respectivo navegador Web.

  • Firefox Gecko e Tracemonkey - acredito que esse seja o engine mais famoso, principalmente pela precisão de renderização do html. Para a próxima versão do Firefox, chamada de 3.5, o Gecko será substituído pelo seu sucessor Tracemonkey, que visa competir com a performance oferecida pelo V8 e WebKit e a implementação de HTML 5.0.
  • Safari Webkit - Este é o engine desenvolvido pela Apple para o seu navegador web Safari. Ele possui uma impressionante performance, e uma precisão de renderização superior a do Firefox em alguns pontos.
  • Opera Presto - O Opera é um navegador que possui muitos adéptos, mas mesmo assim não consegue atingir uma faixa significante de usuários globais. Mas acredito que se não houvesse o Internet Explorer na jogada, ele certamente daria trabalho aos demais. Seu engine Presto é muito bom, e desponta como um dos melhores e mais rápidos renderizadores.
  • Chrome V8 - A grande surpresa do Google, feito meio que por baixo dos panos, caiu como uma bomba na internet com o lançamento do Google Chrome. Infelizmente esse ainda não tem para Linux mas logo estará disponível.
  • Internet Explorer IE Javascript Engine - essa que é considerada a maior bomba da internet. Ele que carrega em seu nome "Internet", o que acaba sendo muito sugestivo para novos usuários, ou usuários leigos. Pelo fato do Windows rodar em mais de 80% dos pcs do mundo, o IE ocupa 90% do mercado de navegadores. Fato esse que faz da Microsoft um alvo de processos contra monopólio, e principalmente, pela oferta de software com baixa qualidade ou qualidade duvidosa.

Essa é só uma apresentação do universo de navegadores que devemos ter conhecimento, na hora de programarmos um site.

Entendendo a importância e diferenças dos motores de javascript

Agora vamos entender um pouco o que há de diferente em cada um desses motores, e principalmente, o porquê o IE é alvo de tantas críticas.

Para início de conversa, você precisa entender que a internet possui regras, todas elas regidas por orgãos responsáveis, no caso das linguagens de marcação (HTML, XHTML, XML, CSS, etc) é a W3C, quem faz a regulamentação. Já o javascript a coisa funciona um pouco diferente, ele segue um padrão de script desenvolvido pela ECMA International, que descreve como a linguagem deve ser implementada, o ActionScript por exemplo, usa um padrão ECMA para sua linguagem, por isso ela é tão semelhante ao Javascript.

Hoje todas as empresas que desenvolvem navegadores, tentam seguir os padrões estabelecidos, mas o fato é que os padrões não abrangem tudo que precisa ser feito. Pois as empresas possuem necessidades específicas de integração, por exemplo o Safari e o IE precisam ter integração com seus sitemas operacionais, para oferecer uma melhor experiência de uso aos seus clientes. Caso esse que pode gerar problemas, quando um site é disponibilizado para uso geral, mas somente funciona integrado com um determinado sistema operacional.

Sabendo disso, fica mais fácil de entender porquê o IE é tão diferente. Quando o IE foi criado para derrubar o Netscape, não existiam os orgão regulamentadores, ou ao menos não eram tão respeitados como hoje. O que gerou um problema praticamente insolúvel, por que a Microsoft resolveu criar seu próprio padrão de linguagem. Isso acabou fazendo com que algumas tags, regras de css e comandos javascript, funcionem somente nele.

Mas com base nesses problemas todos os demais navegadores possuem algumas peculiaridades, mas acabam seguindo todos as mesmas linhas de pensamento, o único ainda a andar meio na contra-mão é o Internet Explorer, e você verá que normalmente programamos para dois navegadores: IE e os demais.

Conslusão

Tendo noção desse universo de navegadores você começará a entender como se dá o desenvolvimento Cross-browser, no próximo post sobre o assunto eu irei relatar como montar um ambiente de testes bem legal no Linux, isso garantirá que você consiga ter a possibilidade de ver seus trabalhos nas diferentes plataformas sem a necessidade de usar uma virtual machine.

O ambiente criado consegue atender os testes com o IE 6, Firefox 3.0, Safari e Opera. Ele não tem nada de especial, mas é uma mão na roda para quem precisa testar em todas as plataformas. Somente o Google Chrome que ainda fica de fora.

Até lá.

Parabéns pelo post, muito

Parabéns pelo post, muito legal!

Valeu! Que bom que tenha

Valeu! Que bom que tenha gostado, estou tentando fazer a terceira parte em vídeo, quando conseguir finalizar ele, ponho no ar, hehehe.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <b> <i> <u> <img> <p> <span> <div> <h1> <h1> <h2> <h3> <h4> <h5> <h6> <pre>
  • Lines and paragraphs break automatically.

More information about formatting options

Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated.