15 Apr

Duke: O mascote oficial de Java
Java é uma linguagem de tipos estáticos e explícitos, ou seja, você tem que declarar o tipo de sua variável. Junte a isso os modificadores de acesso, sincronismo e gravação e você terá uma ideia da burocracia da linguagem. Isso é visto como uma desvantagem por muitos, mas também tem suas vantagens. Se, por um lado, perde-se flexibilidade, por outro ganha-se em segurança.
Os criadores de Java procuram sempre manter compatibilidade entre as versões da linguagem. Isso significa que código das primeiras versões do Java ainda são compiláveis pelos compiladores para as novas versões sem ser necessário alterar o código. Essa decisão é boa para as empresas que trabalham com muito código legado mas é ruim para a linguagem. Por causa disso, decisões erradas sobre diversos aspectos da linguagem são visíveis até hoje. Por causa disso, também, a linguagem tem poucas (55) palavras reservadas, mas cada uma podendo ter mais de um significado dependendo do lugar em que aparece, o que gera confusão e implica em sintaxe pouco intuitiva em muitos casos (vide classes anônimas, blocos construtores, a sintaxe do enhanced for, etc).
Por esses aspectos já dá para notar porque a linguagem ficou tão popular: porque as empresas gostaram. A linguagem é padronizada, burocrática e não exige manutenção conforme é atualizada. Perfeito para elas! Não tanto para os programadores…
Como um dos objetivos iniciais da linguagem era a portabilidade dos programas, foi decidido que os programas seriam executados em uma máquina virtual. Uma crítica que muitos opositores de Java fazem é que isso torna os programas mais lentos e “pesados”. De fato, se considerarmos que a máquina virtual é uma camada a mais na execução de um programa, é lógico concluir que isso vai tornar a execução mais lenta. Isso era uma realidade incômoda até pouco tempo atrás mas, recentemente, as máquinas virtuais para Java evoluíram a tal ponto que a velocidade de execução de um programa em Java é comparável com a de um programa em C. Devemos considerar, é claro, que isso acontece depois de algum tempo de execução, quando a máquina virtual já carregou e otimizou o código. Mas o fato é que as máquinas virtuais para Java estão tão boas que outras linguagens interpretadas (ou seja, que rodam em máquinas virtuais) estão utilizando a máquina virtual Java para executarem o código. Dois exemplos disso são o projeto JRuby, para executar código Ruby, e a linguagem Groovy, que foi escrita já com o intuito de ser facilmente executada na máquina virtual de Java.
Para concluir esse post (mas não necessariamente o assunto), podemos dizer que a linguagem já está, digamos, velha. Isso também tem suas vantagens e desvantagens. As vantagens são a tecnologia bem desenvolvida sobre ela (o que inclui a máquina virtual) e a grande quantidade de ferramentas para se trabalhar com ela (bibliotecas e ambientes de desenvolvimento). A principal desvantagem, acentuada pela decisão de compatibilidade com versões anteriores, é a dificuldade de evoluir a linguagem, dadas as decisões erradas de arquitetura e a quase-impossibilidade de alterar sua sintaxe.
Posts Relacionados:
Acompanhe-nos por
RSS, por Email ou via Twitter.
Veja como ter um desconto no Dreamhost: um excelente servidor web.
Email This Post
2 Responses for "Linguagens de Programação - Java"
Artigo interessante.
Faz algum tempo que eu tenho vontade de aprender Java, principalmente por causa do Android do Google.
Mas sempre que eu começava a estudar, eu encontrava alguma coisa medonha e acabava ficando desanimado. Inclusive o artigo da série JSF (série de um, até agora.. :]) acabou me desanimando ainda mais.
Só que eu vi que o Google não pegou muita coisa existente do Java na hora de criar o Android, se eu não estou enganado, foi criado todo um novo conjunto de bibliotecas que são incompatíveis com trecos antigos feitos em Java. Eu tinha achado isso ruim (e serviu de desculpa para eu não aprender Java!), mas agora com esse seu texto, parece que essa pode ter sido uma atitude inteligente do Google. O que você acha?
Será que não seria interessante falar um pouco sobre o Java no Android?
PS: Por que não cria um link da palavra JSF desse artigo para o primeiro post da série JSF?
Olá, Max
Obrigado pelo interesse!
Apesar de suas feiuras, acho que Java é uma linguagem interessante de se aprender. As bizarrices são desanimadoras, é verdade, mas mostram algumas decisões erradas que foram tomadas, e isso serve de lição para quem estuda linguagens. Acho que podia ter comentado isso no post :)
Não estava por dentro do Android. Vou pesquisar um pouco a esse respeito; deve dar um post interessante. Mas, pela minha experiência com bibliotecas Java do Google (Guice), eles devem ter feito um bom trabalho. Parece, sim, uma decisão inteligente deles. Mas tem que ver se eles realmente melhoraram a coisa.
Obrigado pela dica sobre o link. Atualizei o post.
E obrigado pelo comentário!
Leave a reply