Scala

Terminou dia 9 nos Estados Unidos o JavaOne 2008, maior evento Java mundial, e as novidades e reflexões sobre o universo Java decorrentes desta conferência ainda devem ecoar em artigos de portais, blogs e revistas nas próximas semanas.

Chamo a atenção para uma nota curta postada pelo Java Champion Adam Bien, durante o evento no dia 8, da qual faço uma tradução livre aqui:

Durante um painel no Comunity Corner [do JavaOne] (java.net booth) com James Gosling, um participante lhe perguntou uma questão interessante: “Qual linguagem de programação você usaria *agora* sobre a JVM, exceto Java?”. A resposta foi surpreendentemente rápida e muito clara: – Scala.

Scala é uma linguagem de programação que incorpora recursos de linguagens orientadas a objetos e funcionais. A implementação de Scala é software livre de código aberto e roda sobre a JVM (JDK 1.4 ou superior), sendo interoperável com Java.

O paradigma de programação funcional, que trata a computação como uma avaliação de funções matemáticas e que evita estados ou dados mutáveis [Wikipédia] — baseado na teoria do cálculo lâmbda –, tem começado a ganhar evidência como tendência no meio acadêmico e na mídia técnica especializada.

Talvez por isso a escolha de Gosling por Scala, que incorpora programação funcional, tenha sido tão imediata. Alternativas existentes de linguagem de programação para a JVM atualmente, além de Java e Scala, incluem Groovy, JRuby (Ruby) e Jython (Python).

Um bom artigo introdutório sobre programação funcional é Functional Programming For The Rest of Us (em inglês), 2006-06-19, em defmacro.

E no tópico Outros Ambientes e Linguagens JVM em meu site de referências você encontra mais links úteis, inclusive a série de artigos Roundup: Scala for Java Refugees, recomendado por Ron Francis para quem quer transitar de Java para Scala, um caminho suave segundo Joel Neely.

Para quem começar a programar em Scala, é bom saber que há um Scala Plugin para Eclipse 3.3. E um plug-in Scala para NetBeans 6 está a caminho, sendo desenvolvido por Caoyuan Deng.

Para saber mais: