Scala

Scala es un lenguaje de programación basado en Java y multiparadigma: es orientado a objetos, pero integra características propias de un lenguaje funcional. Es un lenguaje conciso y de poca gramática donde se pueden construir programas de forma elegante y en pocas palabras. En este tutorial te explico qué puedes conseguir utilizando Scala poco a poco y de forma fácil.

7:18

1. Introducción a Scala

Scala es un lenguaje de programación basado en Java y multiparadigma: es orientado a objetos, pero integra características propias de un lenguaje funcional. Es un lenguaje conciso y de poca gramática donde se pueden construir programas de forma elegante y en pocas palabras. En este tutorial te explico qué puedes conseguir utilizando Scala poco a poco y de forma fácil.

5:51

2. Instalar Scala

Cómo instalar Scala en Windows usando el paquete .msi (pista: ¡si no funcionan los comandos reiniciad el PC!). En Linux y Mac podéis encontrarlo en los repositorios de apt/pacman/MacPorts/brew. También podéis descargar el paquete e instalarlo por vuestra cuenta si os place.

5:35

3. Primeros pasos con el intérprete

Scala trae un intérprete que nos permite ejecutar código sin tener que escribirlo en ningún archivo. Simplemente escribe la líneas de código que quieras evaluar, pulsa Enter, y admira los resultados. Y esto nos viene bien para aprender a movernos por el lenguaje.

6:35

4. Variables con val y var

En Scala podemos declarar dos tipos de variables: las inmutables, con la palabra clave val, que no se pueden cambiar una vez establecidas; y las mutables, con la palabra clave var, que sí. De cualquier modo, Scala tiene inferencia de tipos así que no es obligatorio especificar el tipo de datos de la variable que vayamos a declarar.

6:39

5. Declarando funciones

Con la palabra clave def podemos declarar funciones, los cuales pueden aceptar parámetros y devolver resultados, como en cualquier otro lenguaje. Atención al orden y a la forma de declarar la función y los parámetros. Una vez escrita la función la podremos usar.

4:51

6. Inciso sobre Units e iguales

Una pequeña nota técnica sobre la palabra clave Unit, que nos deja crear funciones que no devuelven nada. A tener en cuenta si vamos a usarlas que depende mucho si usamos o no el símbolo = (igual) a la hora de declarar la función cuando es de tipo Unit. En este vídeo os cuento por qué.

5:30

7. Presentación de los objetos singleton

Los objetos singleton nos permiten crear estructuras en las que incorporar métodos, sin necesariamente crear como tal una clase. Nos permiten hacer, para los que vengáis de Java, el equivalente a métodos estáticos. Quizá el método más importante de un singleton sea el método main con el que podemos iniciar la aplicación.

7:57

8. Editando y compilando archivos

El intérprete de Scala está bien, pero probablemente os sea más práctico saber cómo guardar en archivos. De momento en este vídeo os cuento cómo se guarda el código en archivos de tipo .scala y cómo se puede ejecutar y compilar con las herramientas scala y scalac.

5:43

9. Descargar e instalar Scala IDE

Scala IDE (http://www.scala-ide.org) es un IDE basado en Eclipse que integra los plugins para trabajar con Eclipse y que trae preinstalados una versión de Scala, SBT, soporte para Workspaces y muchas otras características. En este vídeo te cuento cómo instalarlo en Windows, Linux o MacOS.

6:53

10. Proyectos y worksheets en Scala IDE

En Scala IDE podemos crear proyectos para trabajar con código Scala y aprovecharnos de las ventanas que nos aporta el IDE. Pero también tenemos a nuestra disposición los worksheets, una herramienta fantástica que nos permite escribir código y verlo compilado y evaluado sobre la marcha.

7:43

11. El condicional IF en Scala

El condicional IF de Scala es como el condicional IF de cualquier otro lenguaje. Bueno, en realidad este tiene un par de sorpresas. Por ejemplo, al ser una expresión, ¿sabías que puedes meterlo en cuaqluier parte donde se acepte uuna expresión? Por ejemplo, como parámetro en un println.

6:15

12. Un caso sencillo de MATCH

El match es una de las expresiones más potentes que hay en Scala que permite aplicar pattern matching. Ya os hablaré de ello en un futuro. Por ahora os voy a enseñar un caso de uso sencillo del match en el que lo usamos para devolver una expresión en función de lo que valga una variable.

6:38

13. Bucles WHILE y DO-WHILE (y String Interpolation)

Con los bucles WHILE y DO-WHILE podemos hacer que una determinada región de código se repita mientras cierta expresión booleana siga siendo verdadera, como en muchos otros lenguajes de programación. Indirectamente, os cuento cómo funciona el mecanismo de interpolación de Strings para poder meter variables dentro de tus strings sin volverte loco concatenando cosas.

7:04

14. El sistema de tipos

Hablo mucho de variables pero ¿qué se esconde realmente detrás del sistema de tipos de Scala? En este vídeo os cuento qué tipos de datos existen en Scala y cómo se llaman las clases en las que se jerarquizan los principales tipos.

8:52

15. Colecciones

Las colecciones son uno de los conceptos más potentes y flexibles de Scala. Permiten agrupar objetos en... colecciones, y disponen de métodos que permiten manipular de una forma potente esos objetos a nuestro gusto. He aquí una clasificación con los principales tipos de colección que hay.

8:29

16. Funciones básicas de una colección

Un popurrí con algunas funciones útiles que traen las colecciones de Scala, como el método isEmpty, el nonEmpty, el length... En siguientes vídeos os hablaré de las funciones importantes a ritmo de un vídeo por una o dos por episodio.

7:36

17. El map (es sensacional)

Con el map podemos aplicar una función anónima lambda pasada como parámetro a cada uno de los elementos de una lista de entrada, y recopilarlos en otra lista que es devuelta como parámetro.

8:53

18. Flatten y flatMap

El flatten permite aplastar los elementos de una lista de listas para crear una lista única. Por otra parte, con flatMap podemos combinar un map y un flatten: primero aplicamos map a los elementos de una colección de entrada y luego le hacemos un flatMap.

7:48

19. Sets, parte 1 de 3: Set

El Set es un tipo de colección en el que no pueden haber elementos duplicados. Podemos usarlo cuando queramos asegurarnos no tener repetidos en los elementos que lo conforman. Aquí os cuento las operaciones habituales que tiene un Set.

4:18

20. Sets, parte 2 de 3: Sets mutables

Los sets mutables tienen operaciones pensadas para insertar y eliminar elementos del conjunto además de retain, para filtrar los elementos que hay en un conjunto y eliminar el resto.

5:53

21. Sets, parte 3 de 3: SortedSet

SortedSet y en general cómo disponer conjuntos ordenados en Scala. Por naturaleza un Set no garantiza orden y los elementos pueden incorporarse en un orden inesperado. Pero con los conjuntos ordenados podemos establecer un criterio de orden que nos diga cuáles deben ir antes y cuáles después.

8:30

22. Mapas (parte 1 de 2): Creando mapas

Con la operación Map uno puede crear mapas, en los cuales se asocian claves K con valores V. No puedes repetir dos veces una misma clave K para un mapa pero sí puede haber dos claves K1, K2 que apunten al mismo V.

7:54

23. Mapas (parte 2 de 2): Operaciones

Sí amigos, aquí también hay de eso. Operaciones que podemos llevar a cabo tanto con mapas como con mapas mutables. Principalmente concatenar cosas en mapas y retirar cosas de mapas. Para todo lo demás: el ScalaDoc de la clase Map: http://www.scala-lang.org/api/2.10.3/index.html#scala.collection.Map. Y el ScalaDoc del mutable.Map: http://www.scala-lang.org/api/2.10.3/#scala.collection.mutable.Map

8:17

24. foreach y for

Con foreach podemos iterar sobre los elementos de una colección. Además, mediante la construcción for también podemos iterar sobre los elementos de una colección, y hacer otras cosas interesantes de una forma más concisa.