Scala (lenguaje de programación)
- Este artículo es acerca del Lenguaje de Programación. Para otros usos, ver Scala.
| Scala | ||
|---|---|---|
| Desarrollador(es) | ||
| Laboratorio de métodos de programación de la EPFL www.scala-lang.org |
||
| Información general | ||
| Paradigma | funcional, orientado a objetos | |
| Apareció en | 2003 | |
| Diseñado por | Martin Odersky | |
| Última versión estable | 2.12.1 (5 de diciembre de 2016 (7 meses y 5 días)) | |
| Sistema de tipos | estático, fuerte | |
| Influido por | Smalltalk, Java, Haskell, Standard ML, OCaml | |
| Licencia | BSD | |
| [editar datos en Wikidata] | ||
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 corre en la máquina virtual de Java y es compatible con las aplicaciones Java existentes.
Índice
Características[editar]
Orientación a objetos[editar]
Scala es un lenguaje de programación orientado a objetos puro, 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[editar]
Scala también posee características propias de los lenguajes funcionales. En Scala las funciones son valores de primera clase, soportando funciones anónimas, orden superior, funciones anidadas y currificación. Scala viene integrado de fábrica con la técnica de pattern matching para modelar tipos algebraicos usados en muchos lenguajes funcionales.
Tipificado estático[editar]
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[editar]
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, Scala proporciona una combinación única de mecanismos que hacen fácil y sin problemas agregar construcciones nuevas al lenguaje en forma de bibliotecas.
Hola Mundo[editar]
Hola Mundo escrito en Scala:
object HolaMundo {
def main(args: Array[String]) {
println("Hola mundo")
}
}
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.