English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Introducción a Scala

Scala es la abreviatura de Scalable Language, y es un lenguaje de programación de múltiples paradigmas

Martin Odersky del Instituto Federal Suizo de Tecnología en Lausana (EPFL) en2001Año, el trabajo basado en Funnel comenzó a diseñar Scala.

Funnel es un lenguaje de programación que combina ideas de programación funcional con Petri nets.

El trabajo anterior de Odersky fue Generic Java y javac (compilador de Java de Sun). Scala para la plataforma Java se lanzó en2003Final del año/2004Principios del año, la versión de Scala para la plataforma .NET se lanzó en2004Año6Mes. La segunda versión del lenguaje, v2.0, lanzado en2006Año3Mes.

Hasta2009Año9El mes, la versión más reciente es la versión2.7.6 Scala 2.8Las características esperadas incluyen la reescritura de la biblioteca de clases Scala (Scala collections library), los parámetros de nombre de los métodos y los parámetros por defecto, los objetos de paquete (package object), y Continuation.

2009Año4En el mes, Twitter anunció que ya han migrado la mayoría de sus programas de backend de Ruby a Scala, y el resto también están planeando hacerlo. Además, Wattzon ha declarado públicamente que toda su plataforma está escrita en infraestructura Scala.

Características de Scala

Características orientadas a objetos

Scala es un lenguaje orientado a objetos puro, en el que cada valor es un objeto. El tipo de datos y el comportamiento de los objetos se describen por clases y traits.

Hay dos formas de extender el mecanismo de abstracción de clases: una es la herencia de subclases, y la otra es el mecanismo flexible de mezcla. Ambas formas pueden evitar los problemas de la herencia múltiple.

Programación funcional

Scala es también un lenguaje funcional, y sus funciones pueden ser utilizadas como valores. Scala proporciona una sintaxis ligera para definir funciones anónimas, admite funciones de orden superior, permite la nesting de múltiples funciones y soporta currying. La case class de Scala y su coincidencia de patrones integrado son equivalentes a los tipos algebraicos comunes en los lenguajes de programación funcionales.

Además, los programadores pueden utilizar la coincidencia de patrones de Scala para escribir código similar a expresiones regulares para procesar datos XML.

Tipos estáticos

Scala tiene un sistema de tipos, que asegura la seguridad y la consistencia del código a través de la verificación en tiempo de compilación. El sistema de tipos admite las siguientes características específicas:

  • Clases genéricas

  • Contravariante y covariante

  • Anotaciones

  • Restricciones de límites de parámetros de tipo

  • Clases y tipos abstractos como miembros de objeto

  • Tipos compuestos

  • Se especifica explícitamente el tipo al referirse a sí mismo

  • Vista

  • Métodos polimórficos

Extensibilidad

El diseño de Scala sigue un hecho, es decir, en la práctica, el desarrollo de aplicaciones específicas de un dominio a menudo requiere extensiones de lenguaje específicas del dominio. Scala proporciona muchos mecanismos únicos de lenguaje que se pueden agregar fácilmente y sin problemas como bibliotecas nuevas estructuras de lenguaje:

  • Cualquier método se puede usar como operador prefijo o sufijo

  • Se pueden construir closures automáticamente según el tipo esperado.

Concurrencia

Scala utiliza Actor como su modelo de concurrencia, Actor es una entidad similar a un hilo, que envía y recibe mensajes a través de correo electrónico. Los Actor pueden reutilizar hilos, por lo que se pueden usar millones de Actor en un programa, mientras que los hilos solo pueden crear miles. En2.10En las versiones posteriores, utilizará Akka como su implementación de Actor predeterminada.

Quién usa Scala

  • 2009Año4Mes, Twitter anunció que ya ha migrado la mayoría de sus programas de backend de Ruby a Scala, y el resto también planea hacerlo.

  • Además, Wattzon ha declarado públicamente que toda su plataforma ya está escrita en infraestructura Scala.

  • El grupo UBS utiliza Scala en sus productos generales.

  • Coursera utiliza Scala como lenguaje de servidor.

Marco de Web de Scala

A continuación se enumeran3Las siguientes son algunas de las aplicaciones web más populares de Scala en la actualidad: