Aprendi programação em Visual Basic 3 (eca!), lá por 1995. De lá passei pro ASP (bah) em 2000, pro Java em 2001 e aí estou até hoje.
Mas desde o ano passado, venho estudando linguagens dinâmicas, como o
Ruby e o
Groovy. Já conheço há anos (e acho bem legal) o JavaScript, uma linguagem tão odiada entre os programadores para a web (o que acho uma injustiça). Mas cito Ruby e Groovy porque são linguagens que estão bem faladas hoje em dia, e têm uma infraestrutura bem completa.
Primeiro foi o Ruby. A linguagem é nota 10. É possível fazer coisas do tipo:
class String
def bold
"#{self}"
end
end
Resultado: todas as Strings possuem um método
bold, e se for invocado "teste".bold retornará
teste. Para horror dos programadores Java mais conservadores, foi reaberta a definição de uma classe existente (e importante como a String), adicionado um método que nem tem um comando
return e ainda por cima invocado sem usar parênteses!
E o que dizer de código tipo:
[1, 2, 3].collect {|x| x + 2}
O resultado? Um array contendo [3, 4, 5]. Assim também vários outros exemplos interessantes.
O Ruby tem sido muito impulsionado ultimamente pelo framework
Ruby on Rails, que mudou drasticamente o conceito de framework web (
Struts,
Spring MVC...).
Apesar de muito interessante, a linguagem é bem distante do Java, e quem investiu pesado em formação e tecnologia Java (quem dirá servidores de aplicação) não vai querer jogar tudo fora...
Claro que existe o
JRuby, que é uma implementação do Ruby para Java que é muito boa e permite fácil integração com classes Java, mas o "gap" ainda é grande.
Então conheci o Groovy, que tenta ser o mais próximo possível do Ruby, mantendo uma sintaxe bem semelhante à do Java. E tem também o framework
Grails, que tenta trazer para o Groovy as facilidades do Ruby on Rails.
E o Groovy, junto com o Grails, é a minha aposta para o framework web. Certamente minha escolha para o próximo projeto Java. Ele "nasceu" integrado ao Spring e ao Hibernate, e pode ser instalado (algum termo melhor para
deployed?) em qualquer servidor web Java.
Vale a pena dar uma olhada.
Claro que muitos ainda resistem à idéia de linguagens dinâmicas, pois se "perde o controle" que a tipagem estática oferece (apesar do Groovy permitir usar tipagem estática) e que "efeitos colaterais" de adicionar métodos dinâmicos em classes. Mas assim foi quando se passou do assembly para o C. Assim foi quando se passou do C para o Java. E assim está sendo para tornar o próprio Java obsoleto. Muito se fala hoje que o Java como linguagem está condenado. Mas a JVM é um ambiente sólido, performático e confiável, e esse sim, vai durar muito tempo.