No último dia 15, a Microsoft lançou para download a primeira versão beta do Internet Explorer 9. O IE foi o último grande navegador a dar algum tipo de suporte ao vindouro padrão HTML 5.
Sejamos sinceros, ninguém acreditava muito na Microsoft. Para muitos usuários conscientes de tecnologia, Internet Explorer deixou de ser sinônimo de navegador há muito tempo. Alguns preferem o poder de customização do Firefox, ou a velocidade bruta do Chrome, ou as soluções inovadoras do Opera. E há os que não trocam o Safari por nada.
O que a Microsoft poderia dar em troca? Conformação com os padrões seria o mínimo. Aceleração de renderização por hardware? Quem precisa disso? Oras, ninguém quer jogar Crysis no navegador. As propostas inovadoras da Microsoft para a nova geração do IE pareciam piada.
Mas ninguém está rindo agora.
De todas as novidades do IE, você deveria prestar atenção em duas:
- Aceleração por hardware
- Realce no site/aplicação web
Algumas semanas antes do lançamento do Internet Explorer, a Mozilla Foundation anunciou que o iria lançar uma versão do Firefox 4 com aceleração por hardware, e a Google, para não ficar para trás, incluiu o recurso no Chrome 7. Isso é uma clara forma de correr atrás da concorrência.
Mas ao invés de uma briga boba por contagem de feature bullets, a aceleração de composição, vídeo e texto por hardware é um avanço real. De repente, o trabalho gráfico pesado não depende de plugins (como o Flash, que há várias versões faz aceleração de vídeo por hardware). E, de repente, o navegador abre caminhos para novas aplicações ainda não pensadas. Se você ainda não experimentou, acesse o tanque de peixes com uma das versões beta do Firefox 4, Chrome 7 ou IE 9. E depois compare com seu navegador atual.
Junto com isso, o novo IE dá um salto em foco no site que não era visto desde a entrada do Chrome ao mundo. A superfície de controle do navegador é a menor entre todos (mesmo até do antigo campeão, Chrome), e o site/aplicação web simplesmente salta na tela.
Isso sem falar na polêmica integração com o Windows 7. Já falei sobre isso nesse blog, e achei a funcionalidade fabulosa. Na combinação IE9+Win7, o site é elevado a categoria de aplicação, com direito a seus próprio atalho pinado na barra de tarefas, e detalhes como botões na miniatura e ícones de overlay. Claro, vai ser para 5% de toda a população de usuários do IE, mas algo nessas funcionalidades nos faz pensar em algumas tendências…
A barreira entre desktop e web
Por mais que a Microsoft quisesse, a web não se fundiu com o desktop. A Microsoft tem uma vida difícil porque, ao mesmo tempo que não pode deixar muito espaço para concorrentes na web como o Google, ela precisa vender Windows como se fosse a solução definitiva para o universo.
A Google por sua vez, surgiu da web. Sua especialidade são aplicações baseadas na Internet. E com todo seu crescimento, era uma questão de tempo até que ela começasse a interferir no desktop. Quando o Chrome foi lançado, todos nós sabíamos: cansada de esperar o segmento, a Google decidiu fazer sua própria plataforma, para suas próprias aplicações.
Mas quando ela anunciou o Chrome OS, muitos acreditaram isso era demais. Um sistema operacional totalmente plugado? Sites como aplicações? E meus arquivos locais? E se eu não conseguir conexão?
Calma. A Google não está dizendo que a partir de amanhã, você não terá mais a necessidade um computador para, por exemplo, computação gráfica. Mas a roda da evolução está girando. O movimento que a Google ajudou a acelerar, e a Microsoft confirmou com o lançamento do IE9, está acontecendo.
E o alicerce de tudo isso é o HTML 5.
O HTML 5 vai mudar o que você conhece de aplicações web
Em 2004, a W3C promoveu um workshop para que as diversas entidades relacionadas à Internet pudessem dar voz as suas idéias para o futuro de aplicações web. Os participantes ficaram divididos entre aqueles que acreditavam que as aplicações web deveriam seguir o caminho do XML (XML, XHTML, SVG, XSL, XSLT) e aqueles que apoiavam todo o trabalho já construído em cima do HTML e CSS.
No final do workshop, a seguinte pergunta foi feita aos participantes:
A W3C deveria desenvolver uma nova versão do HTML e CSS para implementar os requisitos de Aplicações Web (…)?
8 votaram Sim. 14 votaram Não.
Findando o workshop, as pessoas que apoiavam o HTML – em especial Apple, Mozilla e Opera – fundaram o Web Hypertext Applications Technology Working Group, o WHATWG. Eles começaram a trabalhar nas várias propostas que iriam se tornar o HTML 5.
Devido à grande atenção que o grupo ganhou, em 2006, a própria W3C se uniu ao WHATWG, incorporando os trabalhos como documentos do consórcio. E em 2009, a W3C encerrou os trabalhos no XHTML 2, morto antes de nascer. Isso quer dizer que o HTML 5 é real, e vai estar nas mesas nos computadores de todos cedo ou tarde.
O que faz o HTML 5 especial para quem desenvolve aplicações web?
Formulários renovados
Os novos tipos de campos de formulários produzem muito mais contexto para os navegadores. Quem já usou um iPhone, sabe que em certas aplicações web, quando você põe foco em um campo de e-mail, o teclado virtual muda para um modo especializado para e-mail. Isso não é magia; é o campo do tipo email funcionado.
O formulário agora tem muito mais suporte a validação. Você pode definir um campo como requerido; em campos numéricos, pode especificar a faixa de valores permitida. Pode até especificar uma expressão regular como validador.
Isso sem falar em autofoco sem script.
Armazenamento local
Sim, é verdade. Por muito tempo, ficamos limitados a soluções erradas como cookies, ou plugins como Flash e Gears para armazenar informação local no cliente. Não mais. O HTML 5 prevê que os navegadores terão, por padrão, uma forma de armazenamento de informação local.
A priori, apenas armazenamento do tipo chave-valor são aceitas. Todos os navegadores atuais já possuem essa funcionalidade (mesmo o IE8), disponibilizando pelo menos 5 MB para cada aplicação. Com o tempo, é possível que o padrão IndexedDB seja incorporado, dando uma solução estruturada de armazenamento.
Aplicações web offline
Isso não é paradoxo. Isso é real e possível hoje. Trata-se apenas do uso inventivo do cache do navegador.
Aplicações offline trabalham em duas frentes. Nas suas páginas, você precisa indicar uma lista de arquivos que precisam ser cacheados caso o usuário queira usar sua aplicação de forma desconectada. E na sua lógica de página, você tem acesso a uma API que permite que você saiba se o usuário está offline, quando esse status muda, se o usuário deseja ou não trabalhar offline, etc.
Aliado com o armazenamento local, é possível criar aplicações web bem poderosas. E que desafiam um pouco mais o que é web e o que é desktop.
CSS 3
Tecnicamente não é parte do HTML 5, mas está sendo empurrado junto nessa nova onda de aplicações web.
CSS 3 prevê interfaces bem mais interativas e aprazíveis. Munido apenas de CSS, é possível definir animações, transições e transformações em 2D. Sites com animação, sem Flash.
Alguns exemplos aqui.
Canvas
Mais um adendo ao HTML 5 que elimina a nossa necessidade de plugins como Flash. Trata-se de uma área de desenho livre para HTML. Uma aplicação consegue desenhar formas e construir animações. O primeiro grande destaque ao canvas foi uma aplicação bem simples baseada no twitter, mas bem cool.
Com todo esse foco no desenho e gráficos, não é de se espantar que Mozilla, Microsoft e Google estão atrás de aceleração por hardware.
O que falta
Em uma única palavra, ferramentas. Hoje temos boas ferramentas para edição de HTML e CSS, mas não há nada bom para desenvolver em JavaScript. Eu não estou falando em programação reativa, como Notepad+Firebug. Eu estou falando em auto-complementação de código. Em descoberta de contexto. O Visual Studio 2010 chega perto disso, mas se enrola às vezes.
De qualquer forma, em HTML/CSS/JavaScript estamos bem servidos. O que ainda estamos bem defasados é em ferramentas para desenho/animação. Enquanto não houver uma ferramenta boa para animação e criação em canvas e CSS 3, os desenvolvedores e designers preferirão usar plugins como o Flash.
Quem fornecerá essas ferramentas? A Adobe pode muito bem fornecê-las, já que é conceitualmente a melhor no design para web. Além disso, ela falou que ia fazer isso. Mas com as recentes dúvidas em relação ao WPF dentro da Microsoft, não se surpreenda se o Visual Studio 11 ou o Expression Studio 5 vier como a melhor ferramenta de desenvolvimento para aplicações HTML5.
O futuro está mais próximo do que você imagina
Algumas coisas nos fazem pensar:
- A empresa top-of-mind da Internet fez sucesso fazendo aplicações web
- A mesma Google cria um sistema operacional somente com aplicações web
- Os produtores de navegador de Internet se unem para criar um padrão de aplicações web
- A Google cria o Gears, plugin para desconectar aplicações web. O recurso vira um padrão HTML.
- O iPhone é um dos primeiros a transformar aplicações web em itens de primeira instância, permitindo criar links lado a lado a aplicações nativas
- O Internet Explorer adiciona aceleração de hardware na renderização (e todo mundo segue atrás)
No dia seguinte ao lançamento do IE9, a Google veio a público dizer que o Chrome 7 ficaria 60 vezes mais rápido. Além disso, incluiria suporte a 3D com CSS e WebGL. Isso permitiria a aplicações extremamente demandantes, como jogos 3D, rodar no navegador. Mesmo que eles não cheguem nesse número, entende o caminho para onde a coisa está andando?
Outra história. Lá no início de setembro, o ex-gerente do projeto Silverlight postou:
Exatamente agora há uma guerra entre HTML 5 e Silverlight dentro da Microsoft. Oh e WPF está morto… digo… já estava, mas agora… funeral.
Logo após, o site I-Programmer postou um artigo bem interessante sobre como o WPF é tratado dentro da Microsoft. Em suma, a única equipe que usa WPF na Microsoft é a equipe que a criou, o time das ferramentas de desenvolvimento. De fato, mesmo depois de 5 anos de existência, o único grande software que usa WPF é o próprio Visual Studio.
Voltando ao ex-gerente do Silverlight, ele ainda acrescentou:
HTML 5 é o substituto do WPF… o time do IE quer estender o HTML5 colocando APIs do Windows via JS
Isso semanas antes de a gente descobrir sobre Jump Lists e ícones de overlay no IE9. Alguém duvida que a Microsoft pensa em incluir extensões para outras APIs do Windows, como IO e DirectX?
O que você, desenvolvedor, vai fazer sobre isso?
Imagino se você agora esteja em fase de negação. Eu estive. “Aplicações no navegador?” “Nunca substituirei meu Word!” “Não tem como {insira sua aplicação improvável aqui} rodar no navegador!”
O que eu posso dizer a você é: se livre de preconceitos. Seja tabula rasa e crie novos conceitos.
Outra história. Até 2004, geoprocessamento era tratado como uma coisa para poucos. Se você quisesse um mapa, você comprava em uma livraria, ou procurava por uma imagem na Internet. GPS era coisa de firmas especializadas como Garmin e Magellan. Internet e geomática eram coisas tão ligadas quanto aviões e submarinos. As empresas grandes do ramo se esforçavam para que tudo continuasse assim. “É impossível criar uma mapa sem o datum adequado”. “Transformações geográficas devem ser exatas”. “Precisão”. “Burocracia”.
Então, em 2004, a Google comprou uma empresa chamada Keyhole e lançou ao mundo o Google Earth. Imediatamente, da noite para o dia, todas as pessoas do mundo aprenderam tudo o que precisavam saber sobre imagens de satélite, geolocalização, rotas, GPS. Tudo impreciso, sem formalização. Mas não importava: qualquer um podia ver o lugar que morava, como eram as grandes pirâmides ou como é a sensação de estar no alto do Everest.
Isso simplesmente criou um novo nicho de mercado. Google Maps, Fourquare, Facebook, Latitude, Twitter, e muitíssimas outras aplicações fazem uso de geolocalização. GPS em um smartphone não fazia sentido em 2003; hoje é recurso obrigatório. Geolocalização faz parte do HTML 5.
E como estão as empresas sisudas de geomática e GPS hoje? Ainda correndo atrás do prejuízo. Tentando proteger sua propriedade intelectual, não arriscaram abrir a mente para novas idéias. Não viram o potencial das aplicações de Internet. E deixaram de ser o protagonista da revolução da geolocalização.
Não seja assim. Está sendo construído um padrão para aplicações de Internet. Nunca antes 5 produtoras de navegadores sentaram na mesa para discutir. O padrão não é perfeito. Não resolve tudo. Haverão discrepâncias. Mas é certamente a melhor plataforma para construir aplicações web feita até hoje. Aproveite, encontre um nicho, crie idéias, explore. E não tenha preconceitos.