Dev (Back & Front)ARTIGO

Criar aplicativos web não precisa ser uma tarefa cansativa e irritante

Na RubyConf eu conversei com um garoto que odeia criar aplicativos web. Acredito que muitos desenvolvedores se sentem assim, até mesmo desenvolvedores web. Eu já me senti assim, mas acredite no que vou te dizer: fazer o deploy de software como aplicação web é a melhor solução, na maioria dos casos. O interessante para mim nessa conversa foram alguns dos motivos que ele me deu:

  • Os aplicativos web dependem muito de transferência de informações. Toda vez que eu quero fazer alguma coisa tenho que ir e voltar ao servidor várias vezes para descobrir o que fazer em seguida. 
  • O Javascript é simplesmente uma linguagem horrível. Foi o experimento de uns caras que jogou ela no navegador e agora eu tenho que usá-la. Não tenho nenhuma escolha sobre que linguagem usar.

Sobre a questão da “transferência de informações”: o problema que ele insinua é um dos recursos mais limitados sobre o modo como os aplicativos web costumavam ser construídos. Porque a primeira versão da web é construída em torno de cada ação do usuário resultar em um ciclo de pedido/resposta http. Os frameworks de servidores eram arquitetados pensando nessa ideia. O framework do servidor não lidava com cada ação e enviava de volta um WAD de HTML e javascript que iria, esperançosamente, dizer ao navegador o que fazer em seguida. Construir aplicações interessantes e usáveis dessa maneira é frustrante – para não falar pior.

Mas claro que surgiu o AJAX para nos salvar de tudo isso. Ele não é novo: tem sido usado em larga escala  por 5 anos, no mínimo. Mas acredite, todo seu potencial só começou a ser percebido agora. Ele é que nos livrará de ligar as ações do usuário ao ciclo de pedido/resposta.

Mas para compreender seu potencial, precisamos mudar completamente a maneira como construímos aplicativos web. Ou seja, jogar fora praticamente tudo que você sabia, incluindo (a maior parte ) do framework do seu server side. Ou seja, se você estiver construindo um aplicativo web com a abordagem já existente do “estado da arte”, você está escrevendo código de legado instantâneo.

Então, o que podemos fazer? É hora de usar outra ferramenta: o framework do server side está na camada errada. Precisamos mudá-lo para o client. O backbone.js é o melhor MVC framework do client side que já usei, mas, certamente, existem outros.

A próxima pergunta é sobre javascript. Mesmo discordando do rapaz, eu consigo entender sua frustração. O Javascript tem ótimos recursos, mas não é minha linguagem favorita. E o fato de ser forçado a usá-lo me faz querer pedir por LIBERDADE! Eu gostaria de escolher qual linguagem usar, e quero que ela me permita escrever um código expressivo e bonito.

E agora, usando o coffeescript, eu posso! Eu realmente não consigo afirmar o efeito que ele teve sobre a minha abordagem no desenvolvimento de aplicativos web. Se você olhar para trás, honestamente, sei que há alguns anos eu venho fazendo isto de forma errada. Mesmo adorando muito minha escolha de linguagem de server side, o Ruby, eu devo dizer que tentar construir a interface do usuário para os meus aplicativos web com ele simplesmente não estava funcionando. Mas isso mudou completamente com o coffeescript. Eu adoro o código que escrevo nessa linguagem.

Como você já deve ter percebido, sou bastante apaixonado por esse tipo de coisa. Parte disso é porque fico tão animado que, finalmente, tenho boas soluções para problemas que me irritaram por anos. Mas eu também quero ajudar outras pessoas no mesmo barco. Muitas pessoas já estão nele, mas se você não está, ou apenas precisa de ajuda para chegar lá, estamos com você.

***

Texto original disponível em: http://blog.gaslightsoftware.com/post/10859784934/web-apps-are-dead-long-live-web-apps

Matérias especiais e reportagens conduzidas internamente pela Redação iMasters. Acompanhe no Twitter @imasters e no Instagram/Threads @portalimasters

Ver perfil