Curso Scala [Parte 1]: ¿Qué es Scala?
Aprender nuevos lenguajes de programación siempre es una buena manera de reciclarse profesionalmente. Gracias a ello, podremos optar a más trabajos y seguramente mejor pagados. Hoy quiero presentaros una nueva serie de tutoriales en la que vamos a aprender a programar en Scala.
¿Qué es Scala?
El nombre de Scala surge de la unión de dos palabras: scalable y language. Con esto ya sabemos qué objetivo tiene este lenguaje de programación multiparadigma que combina propiedades de lenguajes funcionales con orientados a objetos.
Un lenguaje de programación multiparadigma es aquel que permite al programador elegir diferentes "estilos" de desarrollo dependiendo del tipo de problema: programación lógica, funcional, orientada a objetos...
Integración con Java
Scala se ejecuta sobre una máquina virtual Java, lo cual permite la integración de características o librerías entre ambos lenguajes. Es posible, entre otras cosas, llamar a métodos de Java, heredar clases o implementar interfaces. Esta integración es recíproca, es decir, podemos utilizar Java en Scala y Scala en Java.
Poder programar en ambos lenguajes al mismo tiempo es beneficioso para el desarrollador, ya que por ejemplo se podría utilizar Java como lenguaje principal en un proyecto y en determinados casos escribir código en Scala.
Diferencias con Java
A pesar de tener similaridades como la orientación a objetos o ejecutarse sobre una JVM (Java Virtual Machine), también existen algunas diferencias entre ambos lenguajes.
La primera que encontramos es que con Scala se reducen drásticamente el número de líneas de código que se escribirán en un proyecto. Veremos cómo queda demostrado a lo largo del curso. Además, Scala favorece la concurrencia y paralelización en la ejecución del código.
Por otra parte, el código Java es más legible que el de Scala, aunque todo es acostumbrarse. En Scala podemos definir funciones dentro de funciones, dentro de objetos que están dentro de una clase cualquiera. Puede ser algo enrevesado, pero también depende del programador y de la experiencia adquirida al desarrollar. Otra importante diferencia es que Scala soporta la sobrecarga de operadores, característica que no encontramos en Java.
Java, por su parte, trata todo como un objeto. Scala, sin embargo, trata todo como una variable. Es por esto que veremos cómo se puede pasar una función como parámetro a otra función.
Herramientas para el curso
Primero se explicarán los conceptos básicos haciendo uso de la shell de Scala. Es bastante útil para comenzar, pero llega un momento en el que hay que dar el salto a un entorno de desarrollo que nos ofrezca funcionalidades adicionales. Debido a esto, utilizaré IntelliJ Idea. Actualmente en su versión 14, es posible descargarlo desde su Web para probarlo durante 30 días y, para estudiantes hay una licencia gratuita durante un año.
Cada alumno puede utilizar el IDE que quiera. Aprenderemos a configurar varios. Seguramente Eclipse, NetBeans e IntelliJ Idea.
Desarrollo del curso
El curso se va a dividir en varias partes. No quiero hacer artículos largos y difíciles de leer. Como siempre, intentaré que haya equilibrio entre teoría y práctica, decantando la balanza hacia el lado práctico, por supuesto.
Siguiente artículo
En el siguiente artículo aprenderemos a instalar Scala en Windows, GNU/Linux y MAC OS X. Tras ello, configuraremos distintos entornos de desarrollo. Si queda un artículo largo, lo dividiré en varias partes.
Si no podemos aprender un nuevo lenguaje de programación, por complicado que sea, nos hemos equivocado de profesión.