Scala (pronunciado como «skah-lah») es un lenguaje de programación de propósito general diseñado por Martin Odersky. El diseño de Scala comenzó en 2001 en EPFL, Lausana, Suiza. Scala se lanzó públicamente en 2004 en la plataforma Java. Scala está diseñado para ser conciso y aborda las críticas a Java. El código fuente de Scala se compila en el código de bytes de Java y el código ejecutable resultante se ejecuta en una máquina virtual de Java. La última versión de Scala es 2.12.8.
- Nombre : Scala es la abreviatura de Scalable Language.
- Un lenguaje híbrido : Scala es una fusión de programación orientada a objetos (POO) y programación funcional. OOP es un paradigma de programación basado en el concepto de «objetos», que son estructuras de datos que contienen datos en forma de campos y código en forma de procedimientos o métodos. Por otro lado, la programación funcional es un paradigma de programación, los programas de computadora se construyen mediante una estructura y elementos. que la evaluación de funciones matemáticas se trata como computación y evita datos mutables y también evita cambios de estado. Estos dos paradigmas diferencian a Scala de otros lenguajes de programación.
- Inferencia automática: Scala infiere automáticamente la información de tipo. El usuario proporciona la información de tipo solo si es necesario.
- Variables mutables e inmutables : Scala nos permite convertir cualquier variable en mutable o inmutable en el momento de la declaración. La palabra clave var define cualquier variable como mutable mientras que la palabra clave val define una variable como inmutable.
- Sin punto y coma : el punto y coma actúa como un separador en la mayoría de los lenguajes de programación modernos (C, C++, Java, etc.) y es un carácter obligatorio que debe escribirse después de cada declaración. Sin embargo, Scala no necesita un punto y coma después de cada declaración. Las sentencias de Scala se pueden separar con un carácter de nueva línea.
- Declaraciones de importación : no es necesario escribir todas las declaraciones de importación al comienzo del programa. La importación de clases en Scala se puede realizar en cualquier momento.
- Funciones de Scala : además de todas las funciones de programación orientada a objetos de Java, Scala tiene características de lenguajes de programación funcionales como Scheme, Standard ML y Haskell, que incluyen curry, inferencia de tipos, inmutabilidad, evaluación diferida y coincidencia de patrones.
- Funciones y procedimientos : en Scala, las funciones y los procedimientos son dos entidades diferentes y no se usan indistintamente. La función puede devolver cualquier tipo y contiene = firmar en su prototipo. El procedimiento, por otro lado, no tiene el signo = y tiene el tipo de retorno Unit() en todos los casos. Las declaraciones de impresión generalmente no se recomiendan en la definición de funciones.
Ejemplo:def func1():Int = { //this is a function //returns Int } def proc1() { //this is a procedure //returns void(Unit()) }
- Funciones de orden superior : en Scala, podemos pasar una función como argumento a otra función. Estas funciones se denominan funciones de orden superior.
Ejemplo:val l = List(1, 2, 3) l.foreach(println) // println passed as an argument to foreach function
Además, el valor de retorno de una función puede ser otra función.
Ejemplo:def square(x:Float) = { pow(x, 2) }
- Admite funciones anidadas : podemos definir una función dentro de otra función y hacer uso de ella según el requisito. La función anidada se puede llamar desde cualquier punto dentro del alcance de la función externa.
- Industria de Big Data : Apache Spark es un marco de computación en clúster de código abierto y es una tecnología ampliamente utilizada para el procesamiento de big data. Los programas Spark están escritos en Scala debido a su escalabilidad en JVM. Scala es el lenguaje más utilizado por los desarrolladores de big data para trabajar en proyectos Spark. Casos de uso de Spark con Scala- Alibaba, Netflix, Pinterest, etc.
Publicación traducida automáticamente
Artículo escrito por MohammadKhalid y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA