Scala fue diseñada por Martin Odersky, profesor en la École Polytechnique Fédérale de Lausanne (EPFL) en Suiza y científico informático alemán. Martin empezó a trabajar en Scala en 2001 y se lanzó por primera vez en 2004.
\n
Scala significa Scalable Language. Es un lenguaje de propósito general, orientado a objetos, con varias similitudes con Java. Además, ofrece soporte para programación funcional. Muchas de las decisiones de diseño de Scala buscaban solucionar limitaciones del lenguaje Java.
\n
Algunas características que ofrece Scala:
\n
\n
\n
El código fuente de Scala puede compilarse a bytecode de Java y, por tanto, ejecutarse en una Java Virtual Machine (JVM).
\n
\n
\n
Interoperabilidad con Java: puedes usar bibliotecas escritas en cualquiera de los dos lenguajes desde código Scala o Java.
\n
\n
\n
Al igual que Java, Scala usa sintaxis con llaves.
\n
\n
\n
Incluye muchas características de lenguajes funcionales como Scheme, Standard ML y Haskell: currificación, inferencia de tipos, inmutabilidad, evaluación perezosa y pattern matching.
\n
\n
\n
Soporte para aplicaciones web con JavaScript.
\n
\n
\n
A diferencia de Java, Scala también admite sobrecarga de operadores, parámetros opcionales, parámetros con nombre y cadenas sin procesar.
\n
\n
\n
Un dato curioso sobre Scala: es muy utilizada por empresas como Apple, Twitter, Walmart y Google por su escalabilidad y su capacidad para usarse en operaciones de backend.
\n
Configurar Scala en Jupyter Notebook
\n
Jupyter Notebook es una de las herramientas más usadas en informática, especialmente en ciencia de datos. También puedes desarrollar en Scala gracias a spylon-kernel.
\n
Nota: si eres nuevo en Jupyter Notebook, echa un vistazo a este tutorial completo.
\n
Configurar el entorno de Scala en Jupyter Notebook no tiene misterio. Vamos a dejarlo listo en unos pocos pasos.
Como ves, es muy sencillo: un comando print seguido del texto como argumento.
\n
Ahora, veamos algunos detalles de sintaxis en Scala:
\n
\n
\n
Scala distingue entre mayúsculas y minúsculas (case-sensitive), por lo que los identificadores DataCamp y dataCamp tienen significados distintos.
\n
\n
\n
En Scala, los nombres de las clases deben empezar en Mayúscula. Si el nombre combina varias palabras, la primera letra de cada una va en mayúscula. Por ejemplo, class MyScalaDataCampTutorial.
\n
\n
\n
Los nombres de los métodos funcionan de forma ligeramente diferente a los de las clases para diferenciarlos. Deben empezar en minúscula (Fuente). Si el nombre combina varias palabras, la primera letra de cada palabra interna va en mayúscula. Por ejemplo, def firstDatacampScalaTutorial()
\n
\n
\n
En Scala, el nombre del archivo del programa debe coincidir exactamente con el nombre del objeto. Al guardar el archivo, usa el nombre del objeto y añade .scala al final. Por ejemplo, si el objeto se llama ScalaTutorial, el archivo debe guardarse como ScalaTutorial.scala.
\n
Nota: si el nombre del archivo y el del objeto no coinciden, el programa ni siquiera compilará.
\n
\n
\n
Por último, como en la mayoría de lenguajes, la ejecución de un programa en Scala comienza en el método main(), que es una parte clave de cualquier programa en Scala.
\n
\n
\n
La siguiente figura muestra las palabras reservadas de Scala, que no pueden usarse como constantes, variables ni como cualquier otro identificador.
Los tipos de datos en Scala son casi idénticos a los de muchos otros lenguajes como C, C++, Java o Python, con un uso de memoria y precisión similares.
\n
Veamos algunos de los tipos de datos que existen en Scala:
\n
\n
\n
Int: valor con signo de 32 bits (puede ser positivo o negativo), con rango de 2^{-31} a 2^{31} - 1
\n
\n
\n
Byte: valor con signo de 8 bits, con rango de 2^{-7} a 2^{7} - 1
\n
\n
\n
Short: valor con signo de 16 bits, con rango de 2^{-15} a 2^{15} - 1
\n
\n
\n
Long: valor con signo de 64 bits, con rango de 2^{-63} a 2^{63} - 1
\n
\n
\n
Float: tanto de 32 bits (precisión simple) como de 64 bits (precisión doble)
\n
\n
\n
Char: carácter Unicode sin signo de 16 bits (solo admite valores positivos).
\n
\n
\n
Otros tipos de datos habituales son String, Boolean y Null.
\n
Conclusión
\n
Enhorabuena por completar este tutorial.
\n
Es un buen punto de partida para quienes quieren aprender Scala desde cero.
\n
Para seguir aprendiendo, echa un vistazo a los tutoriales de Scala en DataCamp:
Hay muchísima información sobre Scala por descubrir —if/else, bucles for, distintos operadores, etc.— que cubriremos en próximos tutoriales. ¡Permanece atento!
Aprende qué es DAX y descubre la sintaxis y las funciones DAX fundamentales que necesitarás para llevar tus conocimientos de Power BI al siguiente nivel.
Introdúcete en las estructuras de datos de Python: aprende más sobre tipos de datos y estructuras de datos primitivas y no primitivas, como cadenas, listas, pilas, etc.
Introducción
\n![\"scala]()
\nScala fue diseñada por Martin Odersky, profesor en la École Polytechnique Fédérale de Lausanne (EPFL) en Suiza y científico informático alemán. Martin empezó a trabajar en Scala en 2001 y se lanzó por primera vez en 2004.
\nScala significa
\nScalable Language. Es un lenguaje de propósito general, orientado a objetos, con varias similitudes con Java. Además, ofrece soporte para programación funcional. Muchas de las decisiones de diseño de Scala buscaban solucionar limitaciones del lenguaje Java.Algunas características que ofrece Scala:
\n\n- \n
\n- \n
\n- \n
\n- \n
\n- \n
\n- \n
\n
\nEl código fuente de Scala puede compilarse a bytecode de Java y, por tanto, ejecutarse en una Java Virtual Machine (JVM).
\nInteroperabilidad con Java: puedes usar bibliotecas escritas en cualquiera de los dos lenguajes desde código Scala o Java.
\nAl igual que Java, Scala usa sintaxis con llaves.
\nIncluye muchas características de lenguajes funcionales como Scheme, Standard ML y Haskell: currificación, inferencia de tipos, inmutabilidad, evaluación perezosa y pattern matching.
\nSoporte para aplicaciones web con JavaScript.
\nA diferencia de Java, Scala también admite sobrecarga de operadores, parámetros opcionales, parámetros con nombre y cadenas sin procesar.
\nUn dato curioso sobre Scala: es muy utilizada por empresas como Apple, Twitter, Walmart y Google por su escalabilidad y su capacidad para usarse en operaciones de backend.
\nConfigurar Scala en Jupyter Notebook
\nJupyter Notebook es una de las herramientas más usadas en informática, especialmente en ciencia de datos. También puedes desarrollar en Scala gracias a
\nspylon-kernel.Nota: si eres nuevo en Jupyter Notebook, echa un vistazo a este tutorial completo.
\nConfigurar el entorno de Scala en Jupyter Notebook no tiene misterio. Vamos a dejarlo listo en unos pocos pasos.
\n\n- \n
\n- \n
\n- \n
\n- \n
\n
\nPrimero, instala
\nspylon-kernel.
\npip install spylon-kernel(Python 2)pip3 install spylon-kernel(Python 3)Después, crea la especificación del kernel para poder seleccionar
\nscala-kernelen Jupyter Notebook.
\npython -m spylon_kernel install(Python 2)python3 -m spylon_kernel install(Python 3)Luego, un paso importante: instala
\npysparkyfindspark, ya quespylon-kerneltambién instala algunos componentes despark.
\npip install pyspark findspark(Python 2)pip3 install pyspark findspark(Python 3)Por último, inicia tu Jupyter Notebook, elige el kernel
\nspylon-kernel¡y listo!![\"jupyter]()
\n\n- Ejecutemos un pequeño fragmento de código para comprobar si el kernel de Scala quedó bien configurado.
\n
\n\n\n¡Genial! Como ves en la salida anterior, has configurado correctamente el entorno de Scala en Jupyter Notebook.
\nSintaxis básica
\nEmpecemos imprimiendo
\n\n\nHello, World!en Scala.Como ves, es muy sencillo: un comando
\nprintseguido del texto como argumento.Ahora, veamos algunos detalles de sintaxis en Scala:
\n\n- \n
\n- \n
\n- \n
\n- \n
\n- \n
\n
\nScala distingue entre mayúsculas y minúsculas (case-sensitive), por lo que los identificadores
\nDataCampydataCamptienen significados distintos.En Scala, los nombres de las clases deben empezar en
\nMayúscula. Si el nombre combina varias palabras, la primera letra de cada una va en mayúscula. Por ejemplo,class MyScalaDataCampTutorial.Los nombres de los métodos funcionan de forma ligeramente diferente a los de las clases para diferenciarlos. Deben empezar en minúscula (Fuente). Si el nombre combina varias palabras, la primera letra de cada palabra interna va en mayúscula. Por ejemplo,
\ndef firstDatacampScalaTutorial()En Scala, el nombre del archivo del programa debe coincidir exactamente con el nombre del objeto. Al guardar el archivo, usa el nombre del objeto y añade
\n.scalaal final. Por ejemplo, si el objeto se llamaScalaTutorial, el archivo debe guardarse comoScalaTutorial.scala.Nota: si el nombre del archivo y el del objeto no coinciden, el programa ni siquiera compilará.
\nPor último, como en la mayoría de lenguajes, la ejecución de un programa en Scala comienza en el método
\nmain(), que es una parte clave de cualquier programa en Scala.La siguiente figura muestra las palabras reservadas de Scala, que no pueden usarse como constantes, variables ni como cualquier otro identificador.
\nTipos de datos
\nLos tipos de datos en Scala son casi idénticos a los de muchos otros lenguajes como C, C++, Java o Python, con un uso de memoria y precisión similares.
\nVeamos algunos de los tipos de datos que existen en Scala:
\n\n- \n
\n- \n
\n- \n
\n- \n
\n- \n
\n- \n
\n
\nInt: valor con signo de 32 bits (puede ser positivo o negativo), con rango de 2^{-31} a 2^{31} - 1
\nByte: valor con signo de 8 bits, con rango de 2^{-7} a 2^{7} - 1
\nShort: valor con signo de 16 bits, con rango de 2^{-15} a 2^{15} - 1
\nLong: valor con signo de 64 bits, con rango de 2^{-63} a 2^{63} - 1
\nFloat: tanto de 32 bits (precisión simple) como de 64 bits (precisión doble)
\nChar: carácter Unicode sin signo de 16 bits (solo admite valores positivos).
\nOtros tipos de datos habituales son String, Boolean y Null.
\nConclusión
\nEnhorabuena por completar este tutorial.
\nEs un buen punto de partida para quienes quieren aprender Scala desde cero.
\nPara seguir aprendiendo, echa un vistazo a los tutoriales de Scala en DataCamp:
\nConceptos básicos de funciones y métodos en Scala
\nIF ELSE en Scala
\nOperadores en Scala
\nListas en Scala
\nHay muchísima información sobre Scala por descubrir —if/else, bucles for, distintos operadores, etc.— que cubriremos en próximos tutoriales. ¡Permanece atento!
\nReferencias:
\n\n- \n
\n- \n
\n
\nScala (programming language)
\nScala Tutorial
\nSi tienes dudas sobre este tutorial, déjalas en los comentarios aquí abajo.