Acabei de voltar de uma conferência em Boston chamada An Event Apart .
Um tema muito popular entre os palestrantes foi a idéia de aprimoramento progressivo - o conteúdo de um site deve ser em HTML e o JavaScript deve ser usado apenas para aprimorar o comportamento.
Os argumentos que os palestrantes deram para aprimoramento progressivo foram muito convincentes. Além de ser um padrão sólido para oferecer suporte a navegadores e dispositivos mais antigos em uma rede com baixa largura de banda, o HTML falha muito mais facilmente do que o JavaScript (ou seja, a marcação que não é suportada é apenas ignorada, enquanto o navegador lança uma exceção ao executar o seu script - você está de mangueira).
Jeremy Keith deu uma conversa particularmente esclarecedora sobre isso.
Mas e os aplicativos Web de página única, como Backbone e Angular? Todo o design por trás dessas estruturas parece levar o desenvolvedor a mudar o conteúdo do HTML para algo como uma API JSON.
Não consigo combinar esses dois padrões de design: aprimoramento progressivo versus aplicativos da web de página única. Existem casos em que um é melhor que o outro? Ou elas nem são tecnologias antagônicas, e estou perdendo alguma coisa aqui com meu modelo mental?