Bem meu caro amigo louds.
Antes de mais nada, diria a vc que leia melhor o que foi escrito por mim, e interprete melhor também. Para elucidar melhor o que foi dito, pesso que veja que não estou defedendo java, ou outra linguagem qualquer como meio de aprendizado, mas sim, defendo que não se faz necessário, aprender em uma linguagem aberta a erros, correndo o risco de se adiquirir maus hábitos, pois é muito mais dificil de perde-los posteriormente, do que ja aprender de uma forma mais organizada.
Quanto ao java ser a pior linguagem para se treinar pessoas. Bem nesse ponto, não partilho de sua opinião, apesar de respeita-la. Linguagens bem tipadas, na minha opinião, proporcionam melhor aproveitamento no aprendizado, do que ficar desenvolvendo em linguagens que geram erros malucos e quase indecifraveis para quem esta comecando.
Quanto ao java não ter suporte a alguma coisa, bem isto ocorre em qualquer linguagem, pois nenhuma é perfeita, pois se fosse, so existiria uma e seria utilizado por todos, mas o que devemos fazer nesses casos, é usar um pouco de criatividade e contornar esses problemas de outras formas, pois não existe uma unica maneira de se fazer a mesma coisa, e pobre do profissional que se limita a usar apenas o que a linguagem disponibiliza.
Já esta colocação:
Sinto muito te avisar, mas Java na escala da evolução das linguagens está para uma ameba enquando Haskell, Scheme ou C++ estão para primatas.
O que tenho a dizer é que, acho uma bobagem gigante o que acaba de falar, pois cada linguagem é diferente da outra, e atende a coisa de forma diferente ou areas. Escolher uma ou outra é questão do que se precisa fazer, ver a finalidade e preferencia pessoal.
Linguagem ameba, que besteira. Profissional de verdade não depende da linguagem, ele faz coisas na linguagem mais tosca ou porcaria “como queira”, que outros não faram nem se tivessem a linguagem perfeita.
A escolha de uma linguagem, depende não so do que ela permite, mas também, de sua portabilidade, sua organização estrutural, sua tipagem(dependendo do caso), aplicabilidade no sentido de para que ela esta sendo usada, curva de aprendizado da equipe, mercado de trabalho(não adianta programar em linguagem que não vai te dar um emprego), portabilidade entre versões, peso da aplicação, material didatico amplo, e por ai vai.
Vamos citar 3 linguagens. C++, Java e .NET.
C++, pouco tipada, mas permite chegar mais baixo nivel
JAVA, bem tipada, mas não permite baixo nivel
.NET, proprietario.
Apenas uns ex., a escolha de cada um depende da necessidade, e não terá demérito seja qual for a linguagem.
Felicidade a todos
Luciano