Guía para principiantes de Scala

Introducción

Scala fue diseñada por Martin Odersky, profesor en la École Polytechnique Fédérale de Lausanne (EPFL) en Suiza y un científico informático alemán. Martin comenzó a trabajar en la creación de Scala en 2001, y fue liberada por primera vez en 2004.

Scala significa Scalable Language. Es un lenguaje de propósito general, orientado a objetos, que comparte algunas características comunes con el lenguaje de programación Java. Proporciona soporte para programación funcional. Muchas de las decisiones de diseño de Scala fueron dirigidas a corregir los desventajas del lenguaje de programación Java.

Algunas características que ofrece Scala son:

  • El código fuente de Scala puede compilarse a bytecode Java y, por lo tanto, es ejecutable en una Máquina Virtual Java (JVM).

  • Proporciona interoperabilidad de lenguaje con Java, de manera que las bibliotecas escritas en cualquiera de los lenguajes pueden ser referenciadas en Scala o en la base de código de Java.

  • Como Java, Scala también utiliza una sintaxis con llaves.

  • Tiene muchas características de los lenguajes de programación funcionales como Scheme, Standard Machine Learning y Haskell, incluyendo currying, inferencia de tipos, inmutabilidad, evaluación lazy y coincidencia de patrones.

  • Soporte para aplicaciones Web usando JavaScript.

  • A diferencia de Java, Scala también soporta sobrecarga de operadores, parámetros opcionales, parámetros nombrados y cadenas en bruto.

Un hecho interesante sobre Scala es que es ampliamente utilizado por empresas como Apple, Twitter, Walmart y Google debido a su escalabilidad y la capacidad de ser utilizado en operaciones de backend.

Configuración de Scala en Jupyter Notebook

El Jupyter Notebook es la herramienta más ampliamente utilizada en informática, especialmente en el ámbito de la ciencia de datos. También tiene soporte para el desarrollo en Scala con la ayuda de spylon-kernel.

Nota: Para aquellos que son nuevos en el Jupyter Notebook, no dude en consultar este tutorial comprehensivo.

Configurar el entorno de Scala en Jupyter Notebook no es una ciencia exacta. Así que, vamos a configurarlo rápidamente en solo unos pocos pasos.

  • Primero, instalarás el spylon-kernel.

    pip install spylon-kernel (Python 2)
    pip3 install spylon-kernel (Python 3)

  • A continuación, crearás una especificación de núcleo que te permitirá seleccionar el scala-kernel en el cuaderno de Jupyter.

    python -m spylon_kernel install (Python 2)
    python3 -m spylon_kernel install (Python 3)

  • Entonces, como paso importante, instalarás pyspark y findspark ya que spylon-kernel también instala algunos componentes de spark.

    pip install pyspark findspark (Python 2)
    pip3 install pyspark findspark (Python 3)

  • Finalmente, inicia tu cuaderno jupyter y elige el núcleo como spylon-kernel y ya estás listo!

  • Vamos a ejecutar un pequeño fragmento de código para probar si el núcleo de Scala ha sido configurado correctamente o no.
val x = 2 val y = 3 x*y
x: Int = 2 y: Int = 3 res1: Int = 6

¡Excelente! Entonces, como puedes observar en la salida anterior, tuviste éxito en configurar el entorno de Scala en el cuaderno jupyter.

Sintaxis Básica

Vamos a empezar imprimiendo Hello, World! en Scala.

print("Hello, World!")
Hello, World!

Como puedes ver, fue tan simple, solo un comando print seguido del input como un argumento.

Ahora, echemos un vistazo a algunos detalles de sintaxis relacionados en Scala:

  • Scala es case-sensitive, lo que significa que los identificadores DataCamp y dataCamp tendrían un significado diferente en Scala.

  • En Scala, todos los nombres de clase deben comenzar con mayúscula. Si se combinan varias palabras para formar el nombre de la clase, la primera letra de cada palabra separada debe ser mayúscula. Por ejemplo, class MyScalaDataCampTutorial.

  • Los nombres de métodos en Scala funcionan de forma ligeramente diferente con respecto a nombres de clase principalmente para distinguir los nombres de métodos de nombres de clase. Los nombres de los métodos deben comenzar con una letra minúscula (Source). Si se combinan varias palabras para formar el nombre del método, entonces la primera letra de cada palabra interna debe ser en mayúscula. Por ejemplo, def firstDatacampScalaTutorial()

  • En Scala, el nombre del archivo de programa debe coincidir exactamente con el nombre del objeto. Al guardar el archivo, necesitas guardarlo utilizando el nombre del objeto y añadir .scala al final del nombre. Por ejemplo, digamos que ScalaTutorial es el nombre del objeto. Entonces el archivo debe guardarse como ScalaTutorial.scala.

    Nota: Si el nombre del archivo y el nombre del objeto no coinciden, entonces tu programa ni siquiera compilará.

  • Finalmente, al igual que la mayoría de los lenguajes de programación, el procesamiento del programa de Scala también comienza con la función main(), que es una parte crucial de cada programa de Scala.

El siguiente diagrama muestra las palabras reservadas en Scala que no se pueden utilizar como constantes o variables o como cualquier otro identificador.

(Source)

Tipos de datos

Los tipos de datos en Scala son casi idénticos a muchos otros lenguajes de programación como C, C++, Java, Python, etc., con un uso similar de memoria y precisión.

Finalmente, echemos un vistazo a algunos de los tipos de datos que existen en Scala:

  • Int: Un valor de 32 bits firmado (puede tomar valores positivos y negativos) tiene un rango de $2^{-31}$ a $2^{31} – 1$

  • Byte: Un valor de 8 bits firmado tiene un rango de $2^{-7}$ a $2^{7} – 1$

  • Short: Un valor de 16 bits firmado tiene un rango de $2^{-15}$ a $2^{15} – 1$

  • Long: Un valor de 64 bits firmado tiene un rango de $2^{-63}$ a $2^{63} – 1$

  • Float: Tanto los de 32 bits (flotante de precisión simple) como los de 64 bits (flotante de precisión doble)

  • Char: Un carácter Unicode de 16 bits sin firmar (solo puede tomar valores positivos).

Algunos de los otros tipos de datos son Cadena, Lógico, Nulo.

Conclusión

Felicitaciones por finalizar este tutorial.

Es un buen punto de partida para principiantes interesados en aprender Scala.

Para aprender más, echa un vistazo a los tutoriales de Scala en DataCamp:

Funciones y Métodos Básicos en Scala

IF ELSE en Scala

Operadores en Scala

Listas en Scala

Queda un montón de información relacionada con Scala sin desvelar, como if/else, bucles for, varios operadores en Scala, etc., que se cubrirán en futuros tutoriales, así que ¡esté atento!

Referencias:

Por favor, siéntete libre de hacer cualquier pregunta relacionada con este tutorial en la sección de comentarios a continuación.

Source:
https://www.datacamp.com/tutorial/beginners-guide-to-scala