A renderização da interface do usuário do lado do cliente via Javascript é uma boa ideia?

A abordagem "clássica" para o desenvolvimento web tem sido há algum tempo um thin client e um servidor espesso: o servidor gera HTML e o expõe para o navegador renderizar apenas. Mas com os navegadores atuais (e também devido à disponibilidade de boas bibliotecas e frameworks), o Javascript agora funciona. Os desenvolvedores da Web agora podem presumir que o código JavaScript funcionará e parará de incomodar.

Isso certamente abriu novas possibilidades para o desenvolvimento web. Agora, os aplicativos podem ser compostos principalmente de conteúdo HTML retornado do servidor e processados ​​pelo navegador, com algumas manipulações da interface do usuário sendo executadas no lado do cliente. O cliente pode até mesmo consultar o servidor em busca de novos dados para atualizar partes da interface do usuário. Mas podemos descer pelo outro lado? Um aplicativo pode certamente ser projetado como um servidor que cospe apenas o JSON mais minimalista colado a um cliente Javascript grosso responsável por criar e controlar toda a interface do usuário. Sim, essa abordagem pode romper seriamente os URLs, na medida em que as pessoas não podem mais enviar dicas, mas certamente é possível projetar isso (e para alguns aplicativos, como leitores de e-mail e feeds, isso nem importam).

O que você acha? Você já tentou essa abordagem? As coisas ficam muito lentas? Os navegadores modernos são capazes de lidar com essa quantidade de código Javascript? Existem diferenças significativas entre as implementações dos navegadores que ainda atacam o desenvolvedor não-consultado mesmo com as bibliotecas mais recentes? Para quais tipos de aplicativos você acha que essa abordagem é adequada? É realmente adequado paraqualquer coisa?

questionAnswers(10)

yourAnswerToTheQuestion