BT

HTML 5: Já podemos usá-lo?

Postado por Julio Faerman em 22 Ago 2011 |

Os trabalhos de especificação do HTML 5 estão em andamento há quase quatro anos e boa parte dos desenvolvedores web já conhece e deseja as novidades. Entretanto, o termo HTML 5 é usado como um "guarda-chuva" para diversas melhorias em HTML, JavaScript e CSS, o que dificulta a tarefa de avaliar sua maturidade e adoção. Existem tanto os que defendem que o HTML 5 deva ser adotado, quanto os que apresentam controvérsias, principalmente os problemas de segurança do JavaScript e as diferenças entre os navegadores.

A adoção do HTML 5 certamente depende das necessidades de cada aplicação, mas considerando as funcionalidades mais desejadas nos navegadores modernos, já podemos usá-lo?

Funcionalidades

Para responder a essa pergunta precisamos definir claramente o que significam "funcionalidades mais desejadas" e "navegadores modernos". As primeiras são aquelas que tornam possível ou facilitam muito a implementação dos requisitos de aplicações ricas para a web. É o caso das funcionalidades definidas pelos conjuntos de tecnologias e especificações, que são apresentados a seguir.

Aplicações Offline

As funcionalidades para aplicações online são importantes para trazer a experiência de aplicações desktop para a web, principalmente em ambientes onde a conexão com a internet é lenta ou eventual. A persistência ainda é limitada a 5 MB na maioria dos navegadores, mas é importante notar que esses "bancos de dados do navegador" não têm o objetivo de armazenar todos os dados do usuário indefinidamente; apenas de retê-los até a próxima sincronização com o servidor ou acelerar a carga de páginas.

Novas APIs JavaScript

As novas APIs JavaScript simplificam o desenvolvimento de diversas funcionalidades que hoje dependem de tecnologias proprietárias não padronizadas ou de particularidades dos navegadores.

Estilo e semântica

As tags semânticas e o CSS3 são muito importantes para os web designers, que com elas poderão reduzir e melhorar a codificação de layouts de páginas, além de fazer com estilos o que hoje é feito de forma muito mais trabalhosa com imagens, ou mesmo código JavaScript.

Multimídia

Usando as tags multimídia e para desenho em 2D, o desenvolvedor pode reduzir muito a necessidade de plugins externos, como Java e Flash. Há ganhos em produtividade, desempenho e segurança.

Para conhecer mais sobre estas funcionalidades e diversas outras propostas pelo HTML 5, recomendo esta excelente apresentação do grupo html5rocks.

Navegadores

Para verificar o suporte dos navegadores, vamos considerar a versão mais recente e uma anterior dos três navegadores mais usados no desktop (IE, Firefox e Chrome) e os navegadores padrão dos dispositivos iOS (iPhone/iPad/iTouch) e Android. A tabela abaixo detalha o suporte às funcionalidades selecionadas. Os dados vêm do site caniuse.com, que rastreia a implementação do HTML5 pelos browsers.

  IE Firefox Chrome iOS Android
  9 8 6 5 13 12 4.3 4.1 2.3 2.2
Cache da aplicação N N S S S S S S S S
Persistência chave-valor S S S S S S S S S S
Web Sockets N N S P S S S N N N
Web Workers N N S S S S N N N N
Geolocalização S N S S S S S S S S
Histórico N N S S S S P N S S
Tags semânticas S N S S S S S S S S
Multimídia S N S S S S S S S N
Gráficos 2D S N S S S S S S S S
Layout em colunas N N S S S S S S S S
Opacidade S P S S S S S S S S
Cantos arredondados S N S S S S S S S S

Pode-se ver que o suporte dos navegadores às funcionalidades fundamentais destacadas nesse artigo já é razoável. As principais deficiências estão no Internet Explorer e no suporte a Web Sockets e Web Workers, principalmente nos smartphones.

Os Web Workers, que são scripts executados em background, juntamente com com os Web Sockets (canais de comunicação bidirecionais com o servidor), são importantes para aplicações onde os usuários interagem entre si, como em chats e jogos. Para contornar a falta de suporte no IE e nos smartphones, pode-se usar AJAX Reverso (Comet) ou frameworks como o Atmosphere e o Kaazing, que permitem que se desenvolva a comunicação bidirecional usando as funcionalidades disponíveis em cada navegador.

As deficiências do Internet Explorer são mais difíceis de se contornar. Além de sugerir que o usuário atualize o navegador, uma alternativa para ter maior suporte ao HTML5 no IE é recomendar a instalação do Chrome Frame, um plugin que faz com que o IE (6 ou mais recente) apresente as páginas usando o engine do Google Chrome.

Conclusão

Claramente, o suporte ao HTML 5 melhora a cada versão dos navegadores e, nos casos em que não é totalmente suportado, existem alternativas. Decidir se o HTML 5 está maduro o suficiente e se as alternativas são aceitáveis ainda é muito particular para cada aplicação. Mas nos casos em que pode ser usado, o HTML 5 certamente torna possível (ou muito mais simples) o desenvolvimento de aplicações ricas para a web.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

Esperar amadurecer... by Jean Bruno Souto Villete

Ótimo artigo, bastante claro.
Acredito que o ponto chave que você tocou é o que eu penso, "Utilizar ou não HTML5 vai depender da aplicação e naturalmente da necessidade desta".
Você comentou sobre o "AJAX Reverso" para contornar os problemas do IÉca, em especial do WebSocket, eu não gosto da idéia do "AJAX Reverso" mesmo sabendo que utilizo isto todos os dias, mesmo sem saber (GMail por exemplo).
Será que devemos esperar os browsers incompatíveis a amadurecer?
Será que vamos conseguir não ter que "criar artifícios" para que nossas aplicações funcionem em todos os browsers? Caso eu utilize Html, JavaScript e CSS nativos?
Acreditam que vamos conseguir desenvolver para especificação e não para implementações específicas?

[]'s

Re: Esperar amadurecer... by Julio Faerman

Na minha opnião o segredo ai está em usar bem os frameworks, bibliotecas ou construir boas APIs.
Por exemplo, ao usar o seletor ".minhaClasse" com JQuery, ele pode usar o seletor nativo no browser em que este seja suportado ou fazer em javascript. O GWT, Atmosphere e outros vão ainda mais além.
Mas falando de HTML/JS/CSS "puros" acho que ainda vamos passar um bom tempo no "depende".

Usar o que já esta disponível by Jeff Prestes

Olá pessoal,

primeiro, parabéns Julio pelo artigo.

Acho que o jeito, também, é utilizar o que já existe em comum a todos, segundo a tabela do artigo: Persistência chave-valor, Geolocalização, Tags semânticas, Multimídia, Gráficos 2D, Opacidade e Cantos arredondados. O que para mim já é um avanço e muitas coisas.

Bons códigos a todos!

PS.: OK, teremos de implorar para os usuários atualizar para o IE 9 mas é contornável como disse o Julio na resposta abaixo.

Abandonar o IE by F S

Fico muito irritado quando acesso alguns sites (de banco principalmente) que me impedem de realizar algumas operações com navegadores que sejam diferentes do IE.
O HTML 5 vem e tenta organizar a bagunça.

Pela tabela apresentada aqui neste artigo, a MS ignora o HTML 5. Então fico muito tentado a ignorar o IE no desenvolvimento de aplicações Web. Da mesma forma que alguns sites ignoram outros navegadores.
Pena que ainda é muito utilizado. Quem mais perderia seria eu mesmo.

tags audio e video by Giovanni Candido

Dos recursos apresentados o mais controverso ao meu ver são as tags audio e video. Há uma grande briga entre o formato adotado, o formato reconhecido industrialmente hoje, o AVC/H.264, possui suporte de aceleração de hardware em muitos smartphones e outros dispositivos móveis, no entanto é um formato proprietário da apple. As alternativas opensource como o webm ainda não é um padrão e não possui suporte a aceleração via hardware (mesmo porque teriamos que jogar todos os smartphones no lixo e comprar novos). Alguns grandes fornecedores de vídeo como vimeo e youtube ainda dizem que esses padrões ainda não tem recursos mais avançados para controle do stream de video auterando a qualidade e compressão conforme a conexão do usuário entre outros recursos importantes para eles.
Acho que vai dar muito o que falar ainda, seria muito bom se a apple abrisse o seu formato ao público sem royaltys

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

5 Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT