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.10.1 |
| Tipo de dato | estático, fuerte |
| Influido por | Smalltalk, Java, Haskell, Standard ML, OCaml |
| Licencia | BSD |
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 abstraciones 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]
Este es el famoso 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.