En este post, te comentaremos los fundamentos de Scala, un lenguaje de programación orientado a objetos muy usado en el Big Data. De esta manera, podrás iniciarte a programar en este lenguaje como principiante y conocerás los conceptos básicos para que empieces con tus proyectos de programación.
Características de Scala
Podemos resumir las características de Scala en las siguientes:
Orientado a objetos
Scala al igual que otros lenguajes soporta el paradigma de orientación a objetos, para muchos el paradigma debe contar con las siguientes características:
- Encapsulamiento.
- Herencia.
- Polimorfismo.
- Todos los tipos predefinidos son objetos.
- Las operaciones se realizan enviando mensajes a objetos.
- Todos los tipos definidos por usuarios son objetos.
Funcional
La programación funcional es un paradigma en el cual la evaluación es como una función matemática y evita el cambio de estados y el cambio de los valores.
Multiparadigma
Scala es un lenguaje multiparadigma pues soporta la programación orientada a objetos y la programación funcional, y es el primero en realizarlo en la JVM.
Escalable y extensible
Uno de los objetivos de Scala es tener un lenguaje que pueda crecer y escalar con la demanda. Scala es adecuado para utilizar como un lenguaje de script o para realizar aplicaciones empresariales. La abstracción de componentes, la sintaxis sucinta, y el soporte para los paradigmas de orientación a objetos y funcional, hacen al lenguaje escalable.
Se ejecuta en la JVM
Al ser un lenguaje de la JVM, Scala se integra bien con Java y el ecosistema de Java, incluyendo herramientas, librerías e IDEs.
Guía de iniciación
Var y Val
Scala tiene dos tipos de variables, var y val. Generalmente val se usa más. Y deben inicializarse antes de que puedan usarse, de lo contrario se informa de un error, que es diferente de Java.
El uso entre los dos es el mismo, la diferencia es que la variable definida por val no se puede cambiar, de manera similar a la variable modificada por final.
Las referencias a objetos modificados por var se pueden cambiar, pero las modificadas por val no se pueden modificar, pero sí se puede cambiar el estado del objeto, es decir, el objeto no se puede cambiar, pero el valor del campo de datos en el objeto sí se puede cambiar a menos que la variable en el objeto también sea val.
Veamos un ejemplo.
Aquí se intenta reasignar un valor a una constante llamada edad. Como vemos, nos da un error.
Para hacer un valor variable en Scala deberemos usar el modificador var. Reasignar valores de esta forma sí que está permitido.
Scala es un lenguaje en el que no necesitaremos especificar los tipos de nuestros valores. El compilador puede inferirse del valor que le asignamos. Aún así, también podemos especificarlo si deseamos que sea explícito, como en los ejemplos anteriores.
En este ejemplo, vemos que nos infiere directamente el tipo Int sin haberle especificado en el momento de creación ningún tipo de datos.
Lazy vals
¿En qué se diferencia un lazy val del val normal? La diferencia entre ellos es que a val se ejecuta cuando se define, mientras que a lazy val se ejecuta cuando se accede por primera vez.
A diferencia de un método definido con def, lazy val se ejecuta una sola vez y luego ya no. Esto puede ser útil cuando una operación tarda mucho en completarse y cuando no se está seguro de si se usará más tarde.
Hemos explicado las características principales y los fundamentos de Scala. Es el momento de que empieces a programar en este lenguaje que te ofrece una infinidad de posibilidades.
Ahora que conoces los fundamentos de Scala, inicia tu formación académica de la mejor manera a través de KeepCoding que te ofrece el Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp con el que dominarás todo el ecosistema de lenguajes y herramientas de Big Data. ¡Apúntate ahora!