A palavra “agnóstico”, de origem grega (a gnose, não-conhecimento), tem ligação com questionamentos profundos do ser humano, especialmente religiosos. Um pensamento agnóstico é, essencialmente, cético em relação a crenças: elas existem, mesmo que não seja possível provar. Essa postura de “dúvida permanente”, capaz de revelar respostas e abrir a mente, vem sendo adotada por desenvolvedores web ao projetarem e implementarem produtos e serviços.
A crença, nesse caso, é a de que “plataformas e dispositivos diferentes exigem soluções específicas”. O desenvolvedor e web designer norte-americano Ethan Marcotte foi um dos primeiros a questionar essa premissa, em 2010, ao escrever em seu blog sobre as vantagens do design responsivo. “Não se trata de ‘projetar para celular’, mas também não é ‘projetar para desktop’. Em vez disso, é sobre a adoção de uma abordagem mais flexível para a web, uma abordagem device-agnostic”.
Ao contrário da visão tradicional, centrada em dispositivos, a expressão device-agnostic aponta para um desenvolvimento único, baseado na web, capaz de funcionar em qualquer lugar, mesmo em dispositivos que ainda não foram criados. “A presença da web em múltiplos dispositivos não é novidade. O W3C possui dezenas de grupos de trabalho e interesse, que discutem a evolução na web tanto em dispositivos móveis quanto sua aplicação em automóveis, por exemplo. Os grupos surgem conforme as tecnologias evoluem”, explica o especialista em desenvolvimento web do W3C Brasil, Reinaldo Ferraz.
Para Clécio Bachini, diretor de pesquisa e desenvolvimento da Soyuz Sistemas, vivemos um momento no qual o dispositivo não é mais a estrela, mas sim a experiência que a aplicação proporciona e sua adaptação ao ambiente. “Isso é a principal questão do device-agnostic, porque eu posso dar continuidade ao meu trabalho em qualquer lugar, de acordo com os meus interesses”. Nesse contexto, a interoperabilidade da web é a chave. “É possível pensar em uma aplicação em uma loja de aplicativos que não faz ideia de como ela é feita, e ela pode ser toda baseada em web”, lembra Ferraz.
No smartphone ou na televisão
Bachini acredita que, com o tempo, existirão mais sistemas operacionais baseados em um núcleo Linux, C ou outra linguagem baseada em UNIX, mas com interface totalmente web. “A web é essencial para isso. Ela está se tornando a grande máquina universal. É possível colocar um engine de web em qualquer dispositivo e rodar. A preocupação é que ele renderize e que rode aplicações JavaScript mais rápido. É o que acontece hoje com aplicações no navegador Chrome ou mesmo no Firefox OS”, exemplifica, mencionando o sistema operacional livre mantido pela Mozilla Foundation.
Desenvolvedor evangelista do Firefox OS, David Ruiz complementa: o navegador web é o elemento comum entre a tela de um smartphone e um televisor inteligente, permitindo a interoperabilidade. “Alguns aparelhos da LG utilizam um sistema operacional web, o WebOS. Qualquer aplicativo que você desenvolver para web, empacotar e colocar uma casca para distribuir em uma appstore vai funcionar nela”.
Ruiz aponta alguns pilares para explicar o avanço dessa postura. O principal é a melhoria de performance dos browsers, capazes de interpretar e compilar códigos JavaScript com mais eficiência. “O navegador deixou de ser apenas uma janela para a informação. Agora, quanto mais responsabilidade você jogar para o navegador, melhor”.
Outro aspecto são as práticas de design responsivo. Por meio de media queries, é possível definir dentro do CSS a quantidade de informação a ser exibida, seja qual for a dimensão da tela. “Em vez de simplesmente espremer todo o conteúdo, é preciso encontrar a melhor forma de apresentar o que é mais relevante ou esconder o que não interessa”.
Finalmente, Ruiz destaca a possibilidade de uma abordagem API first, ou seja, disponibilizar uma camada onde as informações são recuperadas por meio de múltiplos suportes. “Assim, as versões para acessar em desktop ou mobile tornam-se novas aplicações, que vão acessar informações estruturadas, armazenadas e acessadas por meio de APIs”, explica Ruiz.
Desenvolvimento web x sistemas nativos
Posturas agnósticas contrastam com crenças fortes. No mercado de apps para dispositivos móveis, os números reforçam o reino absoluto dos sistemas operacionais iOS e Android. Ambos possuem fãs dispostos a defender a programação na linguagem nativa desses aparelhos: facilidade de aprendizagem, tempo de desenvolvimento, aparência, aproveitamento de funcionalidades, performance, monetização etc.
Lançado pela Apple na última WWDC, a linguagem de programação Swift representa a última cartada para cativar seus desenvolvedores. “Esta foi uma aposta proprietária, focada nos produtos da Apple, para criar uma forma muito simples de programar aplicações”, observa David Ruiz, lembrando que um clone do jogo Flappy Bird foi produzido em poucas horas após seu lançamento. “É bastante promissora, mas continua fechada para o seu sistema”, reitera.
“É o papel da Apple manter o seu nicho. Mas eles sabem o que está acontecendo, gradualmente eles já aderem aos padrões web. Quando o mercado começar a se acertar, eles estarão prontos”, aposta Clécio Bachini. Para ele, essa briga entre desenvolvedores nativos e web tende a acabar. “A tendência é que essas interfaces migrem para a web, independentemente da linguagem de programação. Isso não quer dizer que vai ser tudo igual: ainda teremos experiências com estilo iOS e outras Android. O objetivo é fazer com que a aplicação se adapte mais facilmente à experiência que o usuário espera”.
Segundo Ruiz, há ainda uma visão equivocada sobre a performance de aplicações baseadas na web. A principal propaganda negativa veio em 2012, quando o Facebook lançou sua aplicação para iPhone baseada em HTML5: diante das reclamações, Mark Zuckerberg voltou atrás, optou pela linguagem nativa e alegou ter sido “um erro” usar padrões web. “Em resposta, a Sencha Labs produziu uma aplicação web chamada Fastbook”, recorda. Um vídeo comparativo mostrou que o problema não estava no embate entre abordagens, mas na qualidade do código. Você pode assistir ao vídeo “The Making of Fastbook: An HTML5 Love Story”.
Do webmaster ao profissional multidisciplinar
O exemplo do aplicativo Facebook em HTML5 ressalta a importância de desenvolvedores capazes de atender às demandas do mercado. No caso da web, a evolução remete à figura do “webmaster”. Popular em meados dos anos 1990, era o profissional responsável por tudo. Com o tempo, especialistas em arquitetura da informação, usabilidade e design dividiram a tarefa, dando fôlego a quem se dedica ao código-fonte.
Para David Ruiz, o desenvolvimento front end evoluiu rapidamente nos últimos anos. “Uma das razões para isso é o NodeJS, que permite que você execute linhas de comando, códigos e tarefas dentro do seu computador programando em JavaScript”, opina. Ferramentas como Grunt e Gulp, bem como frameworks como o AngularJS, deram maior poder de desenvolvimento a esses profissionais.
Com esses avanços, a trilha para o desenvolvimento multiplataforma por meio da web passa por uma nova divisão de especializações: entre back end e front end. Ruiz entende que essa divisão é clara e necessária. “Quem desenvolve back end se responsabiliza pela arquitetura, pela construção das APIs. Já o front end tem que ter uma preocupação com o desenvolvimento das tecnologias, para conseguir extrair o melhor do hardware que está sendo utilizado”.
Clécio Bachini vê com cautela essa separação absoluta. Ele já viu projetos fracassarem porque o back end não consegue dialogar com o front end. Assim, o profissional de web precisa ser multidisciplinar. “Ele precisa saber algo sobre banco de dados e correlação entre eles, existe uma camada semântica importante. Conhecer ainda um pouco de design, outras linguagens… Um pouco de tudo, mesmo que não execute. Existem pessoas nas duas pontas do seu código, com informação no meio. É fundamental entender as melhores formas de ela ser transmitida”, sugere.
Ainda que pareça difícil fazer qualquer prognóstico em relação ao futuro (afinal, quando poderemos dizer que a “Internet das Coisas” é algo corriqueiro?), está claro que “a web continua muito forte, cada vez mais para todos”, como afirma Reinaldo Ferraz. Desenvolver na web e adotar uma postura agnóstica revela oportunidades, mas ao mesmo tempo exige escolhas. Então, em que você acredita?
***
O W3C possui dezenas de grupos de trabalho e interesse, que discutem a evolução na web tanto em dispositivos móveis quanto sua aplicação em automóveis. Veja alguns:
- HTML
- Web Applications
- Data On the Web Best Practices
- Device API
- Web Performance
- Web Real-Time Communications
- Automotive and Web Platform Business Group
Você encontra a lista complete dos grupos neste link e os Community e Business Group aqui.
—–
Artigo de André Rosa, publicado originalmente no iMasters.