El objetivo de este post consiste en presentar el lenguaje de programación Scala en el marco de un ambiente de desarrollo típico en java, utilizando maven y eclipse para compilar los fuentes haciendo convivir los dos lenguajes (java y scala) en una misma solución.
Scala es un lenguaje de programación multiparadigma fuertemente tipado que combina las características de la programación orientada a objectos y de la programación funcional.
Posee muchísimas características interesantes, como pueden ser traits, inferencia de tipos, pattern matching o funciones implícitas, las cuales lo hacen un lenguaje completo y potente. No es el objetivo de este post profundizar sobre cada una de estas características, en el sitio oficial de Scala ”http://www.scala-lang.org/” existe una muy variada documentación al respecto
Tiene la característica de funcionar sobre la Java Virtual Machine. De esta manera, es posible reutilizar código Java existente desde Scala.
El plugin de Scala puede ser instalado directamente desde Eclipse. En primer lugar, seguimos los siguientes pasos: “Help → Software Updates … → Available Software”. Luego agregamos la dirección correspondiente a la versión que queremos instalar. (Consular la sección de descargas de la página oficial http://www.scala-ide.org/)
Podemos comenzar con una simple implementación del famoso “HelloWorld” para corroborar que la instalación fue exitosa. Dentro de la perspectiva Scala seguimos los siguiente pasos, “File → New → Scala Proyect”, para crear un proyecto Scala al cual nombramos “HelloWorld”. Luego creamos un objecto Scala con el mismo nombre de la siguiente manera: “File → New → Scala Object“.
object HelloWorld {
def main(args: Array[String]) = {
println("Hello world!")
}
}
En scala, las clases no pueden tener atributos estáticos como en Java. Por otro lado, brinda la posibilidad de crear objectos singletons utilizando “object” de forma muy sencilla, como se puede ver en el caso de “HelloWorld”.
Se pretende mostrar la posibilidad de integrar Scala con otras tecnologías Java de manera de aprovechar las ventajas del lenguaje pero utilizando los frameworks de la comunidad java tales como Maven, Hibernate, Spring, Wicket, etc.
Comenzamos con la instalación de Maven. El proceso es análogo al del plugin. Para mayor información consultar el sitio oficial: “http://www.assembla.com/spaces/scala-ide/wiki/With_M2Eclipse”.
En caso de tener una instancia de m2eclipse ya instalada en Eclipse, se recomienda borrarla antes de continuar. Dos instancias de maven quedarían instaladas, lo cual puede ocasionar algunos problemas.
Por defecto se generan algunas pruebas. Para ver si no hubo problemas en la creación, hacemos una ‘Run configuration’ para el proyecto con los goals: ‘clean install’. Si estas usando maven por consola: mvn clean install.
Si por alguna razón eclipse no reconoce al proyecto como un proyecto Scala (es decir, que no se puedan hacer cosas como navegar con F3 entre clases) hacer: “Click derecho en el proyecto → Maven → Update Maven Configuration…”.
De esta manera, es posible hacer convivir código Java y Scala compilando con Maven y en Eclipse.
Scala tiene la ventaja de compilar a byte code, lo que permite correr cualquier programa Scala sobre la virtual machine de java. De esta manera, se puede integrar fácilmente con tecnologías Java. Por lo tanto podemos aprovechar: