Introducción a Scala

Scala es un lenguaje de programación multiparadigma, de alto nivel y de propósito general. Es un lenguaje de programación puro orientado a objetos que también brinda soporte al enfoque de programación funcional. No existe el concepto de datos primitivos ya que todo es un objeto en Scala. Está diseñado para expresar los patrones generales de programación de una manera refinada, sucinta y segura. Los programas de Scala se pueden convertir a bytecodes y se pueden ejecutar en la JVM (Java Virtual Machine) . Scala significa lenguaje escalable . También proporciona los tiempos de ejecución de Javascript . Scala está muy influenciado por Java y algunos otros lenguajes de programación como Lisp, Haskell, Pizza, etc.

Evolución de Scala:
Scala fue diseñado por Martin Odersky , profesor de métodos de programación en École Polytechnique Fédérale de Lausanne (EPFL) en Suiza y científico informático alemán. Martin Odersky también es co-creador de javac (Java Compiler) , Generic Java y el lenguaje de programación Funnel de EPFL . Comenzó a diseñar Scala en 2001. Scala se lanzó públicamente por primera vez en 2004 en la plataforma Java como su primera versión. En junio de 2004 , Scala se modificó para .Net Framework . Pronto fue seguido por la segunda versión, es decir (v2.0 ) en 2006. En JavaOneconferencia en 2012, Scala fue premiada como ganadora del concurso ScriptBowl. Desde junio de 2012, Scala no brinda soporte para .Net Framework . La última versión de Scala es 2.12.6, que se lanzó el 27 de abril de 2018.

¿Por qué Scala?

Scala tiene muchas razones para ser popular entre los programadores. Algunas de las razones son:  

  • Fácil de comenzar: Scala es un lenguaje de alto nivel, por lo que está más cerca de otros lenguajes de programación populares como Java, C, C++. Por lo tanto, se vuelve muy fácil aprender Scala para cualquier persona. Para los programadores de Java, Scala es más fácil de aprender.
  • Contiene las mejores funciones: Scala contiene las funciones de diferentes lenguajes como C, C++, Java, etc., lo que lo hace más útil, escalable y productivo.
  • Estrecha integración con Java: El código fuente de Scala está diseñado de tal manera que su compilador puede interpretar las clases de Java. Además, su compilador puede utilizar los marcos, las bibliotecas Java y las herramientas, etc. Después de la compilación, los programas Scala pueden ejecutarse en JVM.
  • Desarrollo de aplicaciones de escritorio y basadas en la web: para las aplicaciones web, proporciona soporte mediante la compilación en JavaScript. De manera similar, para las aplicaciones de escritorio, se puede compilar en el código de bytes JVM.
  • Utilizado por grandes empresas: la mayoría de las empresas populares como Apple, Twitter, Walmart, Google, etc. mueven la mayoría de los códigos a Scala desde otros idiomas. La razón es que es altamente escalable y se puede usar en operaciones de back-end.

Nota: La gente siempre piensa que Scala es una extensión de Java . Pero no es cierto. Es completamente interoperable con Java. Los programas de Scala se convierten en un archivo .class que contiene el código de bytes de Java después de la compilación exitosa y luego se pueden ejecutar en JVM (Java Virtual Machine). 

Comenzando con la programación en Scala

Encontrar un compilador: hay varios IDE en línea, como GeeksforGeeks IDE , Scala Fiddle IDE , etc., que se pueden usar para ejecutar programas Scala sin instalar.

Programación en Scala: dado que Scala es muy similar sintácticamente a otros lenguajes ampliamente utilizados, es más fácil codificar y aprender en Scala. Los programas se pueden escribir en Scala en cualquiera de los editores de texto ampliamente utilizados como Notepad++ , gedit , etc. o en cualquiera de los editores de texto. Después de escribir el programa, guarde el archivo con la extensión .sc o .scala

Para Windows y Linux: Antes de instalar Scala en Windows o Linux, debe tener instalado el Kit de desarrollo de Java (JDK) 1.8 o superior en su sistema. Porque Scala siempre se ejecuta en Java 1.8 o superior. 
En este artículo, discutiremos cómo ejecutar los programas Scala en IDE en línea. 

Ejemplo: Un programa simple para imprimir Hello Geeks! utilizando un enfoque orientado a objetos.

Scala

// Scala program to print Hello, Geeks!
// by using object-oriented approach
 
// creating object
object Geeks {
 
// Main method
def main(args: Array[String])
{
     
    // prints Hello, Geeks!
    println("Hello, Geeks!")
}
}

Producción: 

Hello, Geeks!

Comentarios: los comentarios se utilizan para explicar el código y se utilizan de forma similar a Java, C o C++. Los compiladores ignoran las entradas de comentarios y no las ejecutan. Los comentarios pueden ser de una sola línea o de varias líneas. 

  • Comentarios de una sola línea:  
    Sintaxis:
// Single line comment
  • Comentarios de varias líneas:
    Sintaxis: 
/* Multi-line comments
   syntax */

frikis de objetos: objeto es la palabra clave que se utiliza para crear los objetos. Aquí “ Geeks ” es el nombre del objeto.
def main(args: Array[String]): def es la palabra clave en Scala que se usa para definir la función y “main” es el nombre del método principal. args: Array[String] se utilizan para los argumentos de la línea de comandos.
println(“¡Hola, Geeks!”): println es un método en Scala que se usa para mostrar la string en la consola.

Nota: También hay un enfoque funcional que se puede usar en los programas de Scala. Algunos IDE en línea no brindan soporte para ello. Hablaremos de ello en próximos artículos.

caracteristicas de scala

Hay muchas características que lo hacen diferente de otros idiomas. 

  • Orientado a objetos: cada valor en Scala es un objeto, por lo que es un lenguaje de programación puramente orientado a objetos. El comportamiento y el tipo de objetos están representados por las clases y rasgos en Scala.
  • Funcional: también es un lenguaje de programación funcional ya que cada función es un valor y cada valor es un objeto. Proporciona soporte para funciones de alto orden, funciones anidadas, funciones anónimas, etc.
  • Estáticamente tipificado: el proceso de verificar y hacer cumplir las restricciones de los tipos se realiza en tiempo de compilación en Scala. A diferencia de otros lenguajes de programación tipificados estáticamente como C++, C , etc., Scala no espera la información de tipo redundante del usuario. En la mayoría de los casos, el usuario no necesita especificar un tipo.
  • Extensible: se pueden agregar nuevas construcciones de lenguaje a Scala en forma de bibliotecas. Scala está diseñado para interpolar con JRE (Java Runtime Environment) .
  • Procesamiento concurrente y sincronizado: Scala permite al usuario escribir los códigos de una manera inmutable que facilita la aplicación del paralelismo (sincronización) y la concurrencia.
  • Ejecutar en JVM y puede ejecutar código Java: Java y Scala tienen un entorno de tiempo de ejecución común. Así, el usuario puede pasar fácilmente de Java a Scala. El compilador de Scala compila el programa en un archivo .class , que contiene el código de bytes que puede ejecutar JVM . Todas las clases de Java SDK pueden ser utilizadas por Scala. Con la ayuda de Scala, el usuario puede personalizar las clases de Java.

ventajas:  

  • Las funciones complejas de Scala proporcionaron una mejor codificación y eficiencia en el rendimiento.
  • Tuplas, macros y funciones son los avances en Scala.
  • Incorpora la programación funcional y orientada a objetos que a su vez lo convierten en un lenguaje poderoso.
  • Es altamente escalable y, por lo tanto, brinda un mejor soporte para las operaciones de back-end.
  • Reduce el riesgo asociado con la seguridad de subprocesos, que es mayor en Java.
  • Debido al enfoque funcional, generalmente, un usuario termina con menos líneas de códigos y errores, lo que resulta en una mayor productividad y calidad.
  • Debido al cálculo perezoso, Scala calcula las expresiones solo cuando son necesarias en el programa.
  • No hay métodos estáticos ni variables en Scala. Utiliza el objeto singleton (clase con un objeto en el archivo fuente).
  • También proporciona el concepto Traits. Los rasgos son la colección de métodos abstractos y no abstractos que se pueden compilar en las interfaces de Java.

Desventajas:  

  • A veces, dos enfoques hacen que la Scala sea difícil de entender.
  • Hay un número limitado de desarrolladores de Scala disponibles en comparación con los desarrolladores de Java.
  • No tiene optimización recursiva de cola verdadera ya que se ejecuta en JVM.
  • Siempre gira en torno al concepto orientado a objetos porque cada función es un valor y cada valor es un objeto en Scala.

Aplicaciones: 

  • Se utiliza sobre todo en el análisis de datos con la chispa.
  • Se utiliza para desarrollar las aplicaciones web y la API.
  • Proporciona la facilidad para desarrollar los marcos y las bibliotecas.
  • Se prefiere usar en operaciones de back-end para mejorar la productividad de los desarrolladores.
  • El procesamiento por lotes en paralelo se puede realizar con Scala.

Publicación traducida automáticamente

Artículo escrito por Aks_Aggarwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *