Scala es un lenguaje de programación de propósito general, diseñado para programar utilizando patrones de una forma concisa, elegante y utilizando tipos. De la misma forma, integra principios de orientación a objetos y programación funcional, permitiendo a los programadores ser más productivo. Scala se desarrolló en el 2001 en los laboratorios de École Polytechnique Fédérale de Lausanne, e hizo su debut en el 2004 trabajando sobre la plataforma de la JVM y meses después trabajando sobre la plataforma de .Net.
1. Scala como un lenguaje 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
2. Scala como un lenguaje 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 estados y el cambio de los valores. Java 8 ya soporta programación funcional con las expresiones Lambda.
3. Scala como un lenguaje multi paradigma
Scala es un lenguaje multi paradigma pues soporta la programación orientada a objetos y la programación funcional, y es el primero en realizarlo en la JVM. La pregunta sería por que se requiere más de un paradigma de programación.
El objetivo de tener más de un paradigma es tener más de una forma de resolver un problema, con lo cual el programador puede elegir cuál de ellas utilizar.
4. Scala como un lenguaje escalable y extensible
Uno de los objetivos de scala es tener un lenguaje que puede 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.
Scala también permite agregar nuevos mecanismos y nuevos constructores del lenguaje como librerías. También puede agregar métodos como operadores infix o postfix. Esto permite a los programadores definir nuevos constructores.
5. Scala se ejecuta en la JVM
Lo mejor de Java, además del lenguaje, es la JVM. La JVM es una maquinaria bastante afinada y el equipo detrás la viene mejorando constantemente. Al ser un lenguaje de la JVM, Scala se integra bien con Java y el ecosistema de Java, incluyendo herramientas, librerías e IDEs. Actualmente la mayoría de IDEs, con un plug-in adecuado soporta programar con Scala.
Este artículo es una presentación de Scala y de sus principales características, a fin de que pueda ser tomado en cuenta al momento de evaluar lenguajes de programación e iniciar un nuevo proyecto. Lo mencionado en este artículo esta basado en el libro Scala in Action.