Bom, alguns por aí andam dizendo que "ainda hoje existem pessoas malucas que gostam de javascript"...

Eu com certeza faço parte dessa turma e com muito orgulho!

E se você pretende desenvolver aplicativos para ambiente web, você também deveria se juntar a essas "pessoas malucas".
Anter de eu falar mais um pouco do javascript, aqui vai um resumo do que vem acontecendo de uns anos para cá:
Fato é que muitas empresas estão deixando os softwares desktop de lado e partindo para softwares em ambiente web. Isso porque com a tecnologia avançando nesse ritmo acelerado, as pessoas não precisam mais depender de estar fisicamente em uma empresa para poder tomar devidas ações, responder emails, etc... As pessoas podem fazer isso aonde quer que estejam, seja via um smartphone (viva ao E71! rs...) ou uma conexão wi-fi no aeroporto, cafés, etc.
Agora imaginem uma pessoa que há anos utiliza um software desktop de CRM ou qualquer outro tipo (contábeis, ERP's, outlooks, word, excel, etc...). Uma característica comum a todos esses softwares desktops utilizados no dia-a-dia de uma empresa, independente se o software é Microsoft ou se o software é para Linux, a característica comum é a facilidade (concordo que às vezes nem tanto..) de manuseio, riqueza nos detalhes de botões, janelas, tooltips, coisas para se arrastar pra lá, pra cá... enfim... USABILIDADE e, principalmente, INTERATIVIDADE do software com o usuário.
Se essa pessoa optar por trocar seu antigo software de CRM por um software CRM na web, o mínimo que ele espera são as funcionalidades e "frescuras" (eu costumo chamar de frescuras...rs) que os softwares desktops oferecem. Se ela acessar um aplicativo web e simplesmente ver um formulário mal formatado, numa página com fundo cinza, tudo estático e "morto", com certeza a pessoa vai se arrepender de ter feito a troca e logo vai querer voltar a usar seu bom e velho CRM.
E daí vem o termo RIA (Rich Internet Applications ou Aplicações ricas para internet). E é nessa hora que entra o tão poderoso Javascript e outras muitas tecnologias que vem crescendo com esse boom de softwares para web: Silverlight, Flex, etc...
Mas calma! Todo mundo quando fala de aplicativos para web ou web 2.0, sempre fala do AJAX... onde entra o AJAX nessa história? hmmmm... o Ajax... um componente poderoso e quase indispensável para se desenvolver RIA's... Basicamente, o AJAX (Assynchronous JAVASCRIPT and XML) é um componente (XmlHttpRequest) para ser utilizado, como no próprio nome diz, com Javascript (aquela coisa de maluco....) que permite ao desenvolvedor fazer requisições ASSÍNCRONAS ao servidor, ou seja, se você está desenvolvendo um aplicativo utilizando AJAX, você automaticamente está também utilizando Javascript.
Resumo da história: algumas pessoas dizem que fazem aplicações para web utlizando ajax, mas são contra o javascript.... pra mim isso é você se contrariar... afinal, você não usa os recursos do Ajax sem utilizar javascript. O Javascript é o responsável por fazer o uso desse componente. E acho que é quase impossível desenvolver um aplicativo rico sem encostar a mão em algum código em javascript.
Mas cuidado! Nem tudo é mil maravilhas. Os aplicativos para web devem ser bonitos, sim, devem. Devem ser cheio de frescuras pro usuário se sentir num ambiente desktop, sim, devem. Devem fornecer o máximo de interação com o usuário, sim, com certeza. Mas tudo isso tem um custo: memória. Não, não é a memória de seu servidor que está em jogo. Não se esqueça: javascript é client-side e não server-side (como php, asp.net, etc...). Isso significa que todo código javascript (e ajax) é interpretado no client, ou seja, no browser do usuário. Em outras palavras: tudo pode ser lindo e maravilhoso, mas se fizer mal feito você consegue travar (literalmente) o browser do usuário e acabar com a memória ram do usuário. E aí entramos em outro tópico indispensável para esse tipo de aplicativo: como funciona o garbage collector dos browsers? Como os browsers fazem a limpeza da memória alocada em uma página web? E, com isso, entramos em outro tópico: infelizmente o garbage collector dos browsers não seguem um padrão (pra variar....) e cada um tem sua forma de alocar e desalocar a memória de uma página. Isso é assunto para outro tópico...
Enfim, o javascript é uma linguagem poderosíssima, mas deve ser bem utilizado. Com javascript você consegue praticamente todas as "frescuras" de um software desktop (drag & drops, redimensionamentos, popups (não popups de browsers, mas sim os chamados dialogs), validações "on-the-fly" de campos de formulário, etc...). Isso aliado ao Ajax, com certeza uma combinação perfeita para fazer um ótimo aplicativo web. Claro que além disso você vai precisar de uma linguagem server-side (eu sou suspeito pra falar, mas eu diria php... rs... mas existem outras tantas que obviamente podem ser utilizadas).
Só pra terminar: Todos devem saber (ou se não souber e pretendem aprender javascript..) que para fazer uma página em javascript cross-browser (que funcione nos principais browsers do mercado) é um parto! Cada browser interpreta de um jeito e no fim se você não fizer algo bem estruturado, tudo que você vai ver em seu código são milhões de if's para fazer tratamento dos browsers. Com isso surgiram muitos e muitos frameworks feitos em javascript feitos especialmente para você desenvolver aplicações ricas em detalhes, sem ter que se preocupar com a compatibilidade nos browsers (os frameworks cuidam disso). Geralmentes esses frameworks já são estruturados de uma forma também que não irá sobrecarregar tanto a memória do client (isso não é regra!!!). A idéia principal desses frameworks é fazer com que o desenvolvedor não perca tempo se preocupando se o código será cross-browser ou não e sim se preocupar nas regras de negócio do código. Isso facilita e muito a vida dos desenvolvedores, mas as vezes atrapalha (chegando ao ponto das pessoas se amarrarem muito aos frameworks e esquecerem que ajax e javascript andam juntos).
Segue abaixo alguns exemplos dos frameworks mais utilizados hoje em dia para desenvolver aplicações web:
http://www.extjs.com (em termos de frescuras, na minha opinião, é o mais poderoso de todos...)
http://developer.yahoo.com/yuihttp://www.dojotoolkit.orghttp://www.jquery.com (pelo ranking do google o Jquery é o framework mais utilizado atualmente....)
http://www.backbase.com (um dos mais complexos que eu já vi...)
http://www.prototypejs.org (como fui esquecer desse... o que eu mais uso atualmente...rs)
Na página de todos, existem centenas de exemplos do que é possível fazer com eles. Surpreenda-se! Tudo com JAVASCRIPT e ajax!
E para quem se interessar com performance do javascript, segue algumas dicas de Nicholas Zakas (mais um maluco expert em javascript):
http://james.padolsey.com/javascript/zakas-javascript-performance-tips/E também não deixem de visitar o site de Douglas Crockford (mais um maluco expert no assunto!):
http://www.crockford.comAbs