Scala (lenguaje de programaci贸n).
馃挜El equipo alfa buena maravilla onda dinamita escuadr贸n lobo馃挜
Sus creadores han sabido agregar caracter铆sticas atractivas para los programadores, como la facilidad de uso y de implementar en distintos proyectos, as铆 como nuevos frameworks de Scala en constante evoluci贸n.
¿Que es Scala?
Scala es un lenguaje de programaci贸n multi-paradigma dise帽ado para expresar patrones comunes de programaci贸n en forma concisa, elegante y con tipos seguros. Integra sutilmente caracter铆sticas de lenguajes funcionales y orientados a objetos. La implementaci贸n actual se ejecututa en la m谩quina virtual de Java y es compatible con las aplicaciones Java existentes.
Caracter铆sticas
Orientaci贸n a objetos
Scala es un lenguaje de programaci贸n puro orientado a objetos, en el sentido de que cada valor es un objeto. El tipo y comportamiento de los objetos se describe por medio de clases y traits. La abstracci贸n de clases se realiza extendiendo otras clases y usando un mecanismo de composici贸n basado en mixins como un reemplazo limpio de la herencia m煤ltiple.
Lenguaje funcional
Scala tambi茅n posee caracter铆sticas propias de los lenguajes funcionales. Por ejemplo, las funciones son valores de primera clase, soportando funciones an贸nimas, orden superior, funciones anidadas y currificaci贸n, viene integrado de f谩brica con la t茅cnica de pattern matching para modelar tipos algebraicos usados en muchos lenguajes funcionales.
Tipificado est谩tico
Scala est谩 equipado con un sistema de tipos expresivo que refuerza a que las abstracciones de tipos se usen en forma coherente y segura.
Extensibilidad
Scala se dise帽贸 teniendo en mente el hecho de que en la pr谩ctica el desarrollo de aplicaciones requiere a menudo de extensiones espec铆ficas del lenguaje. Para ello, se proporcionan una combinaci贸n 煤nica de mecanismos que facilitan agregar construcciones nuevas al lenguaje en forma de biblioteca.
Ejemplo
N贸tese lo similar a un programa Java. La diferencia es que no declaramos nada est谩tico o un retorno vac铆o; la palabra reservada object nos devuelve un objeto Singleton que nos libera de realizar por nosotros mismos tales construcciones.
Cuando el programa se almacena en el archivo HelloWorld.scala, el usuario lo compila con el comando:
Y se ejecuta con:
Esto es an谩logo al proceso de compilaci贸n y ejecuci贸n de c贸digo Java. De hecho, el proceso de compilaci贸n y ejecuci贸n de Scala es id茅ntico al de Java, haci茅ndolo compatible con herramientas como Apache Ant.
Una versi贸n m谩s corta del "Hola mundo" en Scala es:
Scala incluye un shell interactivo y soporte de scripting incorporado. Guardado en un archivo llamado HelloWorld2.scala, el cual puede ser ejecutado como script sin prioridad de compilaci贸n usando:
Los comandos tambi茅n pueden ser ingresados en el int茅rprete de Scala, usando la opci贸n -e:
Las expresiones pueden ser ingresadas en el REPL:
¿Para qu茅 se usa Scala?
En los 煤ltimos a帽os, la tecnolog铆a de Scala viene experimentado un crecimiento espectacular y ha pasado a convertirse en un est谩ndar para muchas empresas, startups y universidades de todo el mundo.
Adem谩s, no solo se utiliza Scala para crear nuevos proyectos, sino tambi茅n para otras herramientas de gran impacto en el mercado como los frameworks. A continuaci贸n, mencionamos algunos de los ejemplos m谩s destacados.
- Play Framework: un framework de alta velocidad para el desarrollo con Java y Scala.
- Apache Spark: Motor de an谩lisis para el procesamiento de datos a gran escala.
- Akka: framework para aplicaciones reactivas, concurrentes y distribuidas con mayor facilidad.
- Apache Kafka: herramienta para construir canalizaciones de datos y aplicaciones de transmisi贸n en tiempo real.
- Asimismo, tambi茅n existen grandes librer铆as que promueven y hacen que sea m谩s f谩cil la programaci贸n funcional, destacan:
- Cats: librer铆a ligera, modular y extensible para programaci贸n funcional.
- Scalaz: conjunto de estructuras puramente funcionales para complementar las de Scala.
- Magnolia: una Macro gen茅rica para la materializaci贸n autom谩tica de clases de tipos para tipos de datos compuestos.
- ZIO: este 煤ltimo creando un amplio y potente ecosistema que va a hacer en mi opini贸n m谩s interesante Scala en el futuro.
Un ejemplo simple de qu茅 es en realidad Scala y c贸mo funciona esta tecnolog铆a ser铆a el t铆pico «Hola mundo» que se realiza al iniciarte en programaci贸n:
1 Object HolaMundo {
2 def main(args: Array [String]): Unit = {
3 println("¡Hola, mundo!")
4 }
5 }Hay que destacar que el software Scala tambi茅n se utiliza en muchos proyectos open source para acceso a datos y comunicaci贸n entre APIs.
Hemos expuesto qu茅 es Scala y los distintos frameworks donde se ha utilizado este lenguaje de programaci贸n para desarrollarlos.
- Cuenta con una gran cantidad de c贸digos para programar.
- Ofrece a los desarrolladores gran diversidad de herramientas, servicios para el mantenimiento, formaci贸n y consultas para las empresas.
- Es un lenguaje de programaci贸n recomendado por empresas globales como Twitter.
- Es un lenguaje ideal para aquellos programadores que van comenzando en la programaci贸n orientada a objetos
- Es un lenguaje escalable y de mantenimiento y actualizaciones constantes.
- Es un lenguaje muy similar a Java, por lo tanto, es mucho m谩s sencillo de aprender para aquellos que tengan conocimientos previos en dicho lenguaje.
Conclusiones
Scala le permite:
- Crear c贸digo altamente escalable.
- Aprovecha la arquitecturas paralelas de hardware (como CPUs multi-core).
- Creaci贸n de Lenguaje de Dominio Especifico (DSL)
- Scala compila a bytecode de Java, se ejecuta en la JVM. Se basa en principios funcionales de Haskell y Meta.
- Lenguaje. Hace uso intensivo de inferencia de tipos.
- El compilador analiza el c贸digo profundamente para determinar de que tipo es un valor en particular, sin intervenci贸n del programador.
- El lenguaje sScala no fue desarrollado por capricho, y no ser谩 Cuso.






Comentarios
Publicar un comentario