Herramientas Esenciales para Programar en Scala

Clase 4 de 36Curso de Scala básico

Una vez tengas una instalación funcional del JDK8, ya sea usando OracleJDK o la distribución de OpenJDK provista por AdoptOpenJDK, vas a tener varias alternativas de herramientas para probar el código que vas a escribir durante el curso.

Paso a paso para instalar las herramientas

Antes que nada, para comprobar que todo está en orden antes de empezar, prueba que puedas llamar los comandos java -version y javac -version, te debe salir algo similar a lo siguiente:

Untitled.png

Si llegas a tener algún problema con este tema, dejanos saber en los comentarios.

REPL

Read-Eval-Print-Loop, mejor conocido como la consola de Scala, es el interprete del lenguaje que vamos a usar en muchas de las clases. Te permitirá experimentar rápidamente las posibilidades y locuras que se te ocurran durante tu proceso de aprendizaje del lenguaje.

El REPL viene con la instalación del compilador de Scala. Este lo podremos encontrar en la página de descargas del lenguaje, https://www.scala-lang.org/download/, existen varios métodos, en la sección "Other ways to install Scala" puedes encontrarlos (por ejemplo, cómo instalarlo en Mac usando Homebrew), aunque también puedes descargar uno de los instaladores según tu sistema en la sección "Other resources":

Untitled 1 (1).png

ScalaFiddle

https://scalafiddle.io/ es un editor de código Scala en la web. Este es un método bastante práctico para probar código en Scala, ya que solo requiere un navegador para ser usado. La manera como funciona es incluso bastante curiosa, ya que el código que escribamos ¡se va a ejecutar en el propio navegador!

Al darle al botón Run, nuestro código es enviado a un servidor que lo compila a JavaScript mediante el compilador de Scala.js, y devuelve el resultado a nuestro navegador donde es finalmente ejecutado.

Untitled 2 (2).png

Su único inconveniente es que solo funciona con las versiones 2.11 y 2.12 de Scala. En el curso usaremos varias características de la versión 2.13, entonces en algunos casos (muy pocos) no podremos usarlo.

Metals

https://scalameta.org/metals/ es una implementación del Language Server Protocol (LSP) para el lenguaje Scala. Si no lo habías escuchado antes, un Language Server es lo que permite que cualquier editor de texto funcione como un IDE completo. Es decir, que podrías usar muchas de las funcionalidades que son normales en un IDE como son el autocompletado de código o la navegación entre funciones, ¡pero en tu editor de código favorito!

Metals puede funcionar en VisualStudioCode, SublimeText o Atom, incluso en Vim o Emacs!

Esta es una alternativa que aún está en activo desarrollo, por lo que hay casos donde puede quedarse corto aún, pero poco a poco se está consolidando como la mejor manera de codificar en Scala.

Puedes encontrar cómo instalarlo y configurarlo en tu editor, en la documentación del proyecto: https://scalameta.org/metals/docs/editors/overview.html

IntelliJ IDEA

El editor insignia de la compañía JetBrains, es por el momento el IDE más completo para programar proyectos serios en Scala, por lo menos hasta que Metals madure un poco más.

Se ofrece en una versión de pago (Ultimate), y una versión gratuita (Community): https://www.jetbrains.com/idea/download/

En este curso usaremos la versión Community. La versión Ultimate también puede obtenerse gratis para propósitos educativos, pero para el uso que le daremos de este curso, con la versión comunitaria es más que suficiente.

Para programar cómodamente en Scala debes instalar varios plugins (si no los agregas en el momento después de la instalación inicial del IDE, puedes hacerlo después desde el menú File/Settings/Plugins):

  • Scala: Es el plugin principal. Sin este plugin el IDE no soportará código en Scala.
  • Scalafmt: Es un plugin que formateará el código que escribas. Escribir código en un estilo consistente es importante pero es también algo difícil de mantener. Este plugin nos ahorrará esas preocupaciones.
  • HOCON: Es un formato para escribir archivos de configuración, nos será útil en la parte final del curso.
  • Play Routes: Al igual que el plugin anterior, lo usaremos para la parte final del curso, cuando estemos programando nuestro proyecto.

Untitled 3.png

Con estas 4 alternativas estaremos preparados para empezar a ver algo de código.

¡Te espero en la próxima clase!