quinta-feira, 17 de janeiro de 2013

FirefoxOS

Esse eu não adicionei na minha lista de Coisas que devem bombar em 2013, mas acho que futuramente ele poderá estar em muitos celulares e tablets que vemos por aí, concorrendo com o Android. Difícil acontecer? Também acho, olhando o cenário atual, mas há alguns bons motivos pra que isso aconteça.

Em 2011, o diretor de pesquisas da Mozilla Corporation, Andreas Gal, anunciou o projeto Boot to Gecko (pra quem não conhece, o Gecko é o renderizador de páginas usado pelo  navegador Firefox). A ideia básica do projeto é a de construir um sistema operacional realmente livre, baseado em padrões abertos da web, como o HTML5 e o JavaScript. O projeto foi rebatizado em 2012 como FirefoxOS.

firefox_os_screenshots

Tá, mas o Android não é opensource? Sim e não. Você pode baixar o código, compilá-lo em sua máquina, mas não pode gerar novas versões “oficiais” sem a liberação de sua mantenedora, a Google. Isso é bom por um lado, pois impede a explosão de versões, como acontece no Linux, e dá mais segurança aos fabricantes de celulares para construir hardwares compatíveis, mas é ruim por outro, pois o controle do sistema operacional não é da comunidade, o que prende o produto às políticas e estratégias da empresa, que não são necessariamente a dos desenvolvedores. Você pode ler mais sobre essa discussão aqui, aqui e aqui.

Os outros players do mercado são o iOS (Apple), o Windows Phone (Microsoft) e (ainda) o Blackberry, e, como você sabe, eles são totalmente fechados. Mas não é a questão “ser aberto” ou “ser fechado” que realmente importa. O problema maior talvez seja que os desenvolvedores de aplicativos para dispositivos móveis tenham que criar versões diferentes para cada sistema operacional com que queiram trabalhar, porque suas APIs são bem diferentes.

Talvez o mais importante do FirefoxOS é o uso de uma WebAPI, em que a comunicação entre o SO e a aplicação é realizada através de HTTP, deixando a aplicação desacoplada dos detalhes do SO. Você envia a requisição via GET ou POST e recebe a resposta como XML ou JSON, o que é extremamente comum hoje para quem desenvolve aplicações web. Além de ser natural para muitos desenvolvedores, diminuindo a curva de aprendizado em comparação à outras APIs, reduz o custo de investimento da empresa, tanto na contratação de funcionários fortemente especializados, como em treinamento, uma vez que esses padrões abertos (HTML, CSS, JavaScript, JSON, XML, etc.) já estão bem difundidos.

Será bastante difícil que o FirefoxOS cresça tão rápido como foi com o Android e, ainda assim, ameace sua hegemonia atual. Muita gente já investiu nessa plataforma e não quer jogar fora o que gastou. Mas pode ser que comecem a considerar o FirefoxOS como uma opção interessante, de baixo investimento e possível bom retorno. Para isso, é preciso o apoio – e investimento – dos fabricantes (como já fez a Qualcomm e a Deutsche Telekom e está fazendo a Telefónica), ganhar visibilidade (o que está acontecendo, em vista de sua participação nas grandes eventos da área, como a Mobile World Congress) e mostrar seus benefícios frente aos concorrentes. Nesse último item, entra a web como plataforma.

The web is the plataform

A ideia de “web como plataforma” pode consagrar frameworks como o PhoneGap para a construção de aplicações que rodem nos diversos SOs e pode acabar com os problemas de criar aplicações diferentes para cada sistema operacional.

Se a web se tornar o padrão para dispositivos móveis, criar aplicações usando o Android SDK, o Windows Phone SDK, o iOS SDK, ou qualquer outro, será coisa do passado.

E com todos os recursos do HTML5, CSS3 e do JavaScript (ECMA Script 5, vindo a versão 6 por aí…), é possível que isso acabe acontecendo.

Enfim, mesmo que o FirefoxOS não emplaque, a ideia de ter a web como o padrão para construção de aplicações faz cada vez mais sentido.

2 comentários:

Danilo disse...

Só uma correção, a comunicação entre a aplicação e o sistema operacional não é feito por http (get e post) e sim via javascript utilizando apis como navigator.mozCameras (para acessar a camera) ou navigator.mozBluetooth (para acessar o bluetooth).
A principio atingirá smartphones mais baratos (onde a maioria é simbyan.

Thiago Delgado Pinto disse...

Olá Danilo, obrigado por comentar. Quando me referi à forma de comunicação via GET e POST, estava citando a WebAPI, não propriamente a solução usada pela API do FirefoxOS. Abs!