Nunca fui la muito fã de JavaScript, mas estou aos poucos vendo a sua GRANDE utilidade em aplicativos web-Based. Estou trabalhando em um projeto onde a interação com o usuário é alta, ou seja, formulários complexos com grandes funcionalidades e também regras que devem ser validadas client-side.
Com este cenário, talvez conseguiria fazer isso utilizando VB.NET ou C#, mas com a desvantagem de que este código ir correr no servidor, sendo necessário fazer o PostBack da página, executando a rotina e devolvendo para o cliente o que realmente lhe interessa. Isso pode tornar custoso, levando em consideração um grande volume de acessos simultaneos. Nesse caso, JavaScript está dando um banho de praticidade para o cliente final, tornando as coisas bem interativas, sem a necessidades dos PostBacks.
O problema que quando o código começa a ficar um pouco grande, começa a ficar complicado, mas nada tão impossível de se mexer. Uma saída intessante para um caso que tive vou utilizar Remote Scripting, pois quando o usuário digita o código (CNPJ) do Cliente em um TextBox, preciso complementar o resto do formulário (Endereço, Cidade, Estado e CEP) referentes a este Cliente que devem vir da DB (SQL Server). Poderia sem problemas utilizar o evento TextChanged (server-side) do TextBox, mas isso me obrigaria um PostBack, tendo que submeter a página ao servidor e asssim tendo que construí-la novamente no cliente com os dados necessários.
Já com o uso do Remote Scripting, as coisas ficam mais transparentes, ou seja, é invocado um determinado método assíncrono, e o resultado é devolvido através de uma funçao CallBack (em JavaScript) que por sua vez (no meu caso preenche os controles) faz o que quiser com o resultado.
Que é trabalhoso, não tenho dúvida, mas deixa a aplicação bastante interessante, principalmente para os usuários que a utilizarão.
A única pergunta que gostaria de deixar no ar é a seguinte: Já estou fazendo uma porção de validações no cliente, principalmente com relação a datas, onde existem regras para que a mesma seja digitada apenas em um determinado período, verificações de caracteres válidos, entre várias outras verificações. A questão é: depois de tantas verificações, validações client-side será que ainda é necessário fazer essas mesmas validações server-side?