terça-feira, 14 de outubro de 2008

Aprendendo Scala

Estou aprendendo a linguagem de programação Scala, que é uma linguagem de programação funcional estaticamente tipada que gera código para a JVM e para .NET.

Scala é bastante elegante, com várias novidades no tratamento da tipagem que tornam a linguagem muito menos verborrágica que o java. A sintaxe para criar closures é particularmente elegante: x => expr

Porém, já descobri algumas coisas que eu estou sentindo falta:


  • Multiple values return: Em scala é possível retornar uma n-tupla, mas não é a mesma coisa, não é possível ignorar os valores secundários da função como no lisp, e especialmente, não existe a construção multiple-values-bind.

  • Geração dinâmica de classes. É impressionante como é difícil fazer ORM em uma linguagem estática. Não existe nada no hibernate que permita fazer uma introspeção no banco e gerar o código da classes automaticamente, como o rails e o cakephp fazem. É preciso fazer uso de um gerador de código estático como o salto-db (ugle).



Update: É possível fazer multiple-value-bind em scala:


val (a,b) = (1,2)
a: Int = 1
b: Int = 2

Nenhum comentário: