PeloamordeDeus! 
Eu nunca usei Java para web, apesar de achar muito bom o seu uso (eu prefiro o PHP por ser mais leve - joguem os tomates depois em outra discussão), e uso Java para fazer apps Swing e em “modo texto” tanto para a parte “client” como para a parte “server” da coisa (não, ainda não tem J2EE rodando), e roda muito rápido (disse roda, não carrega ;-)) e temos exemplos de PII utilizando o programa (isso se não aposentaram os bichinhos ainda, mas que rodavam, rodavam!).
As vezes as pessoas abstraem sempre alguns conceitos do Java: ou acham que é só JSP, ou acham que é só applets, ou acham que é só J2EE e acabam esquecendo de ótimas (não estou referenciando as minhas não nesse ótimo, apesar que as acho bem projetadas ehehe estou falando de mais um monte de apps que tem por aí) apps que tem por aí.
Java antes de tudo é uma linguagem de programação que te deixa fazer uma aplicação sem precisar de um framework. Algumas pessoas aprendem o caminho inverso, aprendem toda a parte do framework e esquecem o resto (apps,applets,jsp) e ficam por isso mesmo. Aí vem aquele papo “Java é pesado para rodar blá blá blá”, lógico, levando em conta toda a estrutura de um framework, que possa vir a ser necessário (tem uns loco que fazem J2EE até pra programa de padaria, quando o que o seu Joaquim precisava era só uma appzinha de controle de caixa).
Eu acredito que mais do que defensores da linguagem, temos que ser orientadores em tudo que a linguagem tiver para oferecer, e implementar de acordo com cada tipo de problema. A troca da implementação da solução adequada para a resolução de um problema pode levar a opiniões erroneas sobre a linguagem e as tecnologias utilizadas, e acaba queimando o filme.
E cria um vício tosco sobre nós que sempre queremos complicar certos tipos de problemas. Não vejo problema algum em uma boa análise, mas o que acontece hoje em dia é que muita gente faz muita análise e não põe a mão na massa. Ou tentam montar um esquema bem definido e totalmente baseado em “design patterns” (hoje em dia é bonito falar isso, vejam bem, eu acho os patterns ótimos, mas está ficando muito “hype” e sem conteúdo) mesmo para aplicaçõeszinhas minúsculas.
Vejam alguns conselhos desse cara, em relação à isso:
http://www.infoworld.com/article/03/03/05/HNmanyspecs_1.html
Don Box, arquiteto do .NET da m$ (!!!) diz:
“Read fewer specifications, write more applications, write less code by using tools that generate code automatically, and remember that humans matter, so if you must write a specification, make it legible.”
Muita gente esquece isso hoje em dia, e acabam como ótimos projetistas mas péssimos programadores (sem críticas ofensivas-mas se você não “põe a mão na massa” e não faz a coisa andar, meu amigo, você não sabe o que está perdendo).
Mas é isso. Volto no ponto que devemos divulgar Java em todo o seu escopo, por que tem muita coisa boa que pode mudar muito a opinião dos “detratores” da linguagem hoje em dia. Se relegarmos o Java à apenas uma das tecnlogias embutidas que podem não ser a solução ideal para um certo tipo de problema, ainda vamos continuar a escutar “Java é uma @#$@#” dos menos informados. E eles não tem culpa, afinal, a gente que sabe que tem que ensinar.
Abraços.