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:
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":
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.
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.
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.
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.
Con estas 4 alternativas estaremos preparados para empezar a ver algo de código.
Les dejo una posible instalación del ambiente usando Devcontainers y Visual Studio Code Scala con vscode
Link muerto ☠
En el siguiente enlace dejo una (posible) instalacion de Scala desde Choco
Y todos los plugins vienen incluidos si se instala metals para visual studio code?
Hola.
Los plugins que mencioné allí son específicamente para IntelliJ IDEA.
Para el caso de Metals, como en realidad Metals es solo un "language server" que se integra con distintos editores, ya dependerá del editor con el que te integres, si viene con soporte para Scala o no. Para el caso de VSCode, este viene con la sintaxis de Scala, pero tendrías que hacer la búsqueda de otros Plugins en la medida que te hagan falta, aunque allí la variedad es más amplia y depende de los gustos personales cuál instalar o no :)
Buen día. Una pregunta, porque cuando ejecuto javac -version no lo reconoce la maquina y cuando ejecuto java -version si me da respuesta, el jdk lo descargue desde Oracle. les agradezco su apoyo.
Tienes que configurar las variables de entorno para que el cmd o el powershell las encuentren, yo seguí este mini-tutorial para la configuración:
El único plugin que no encontré fue Scalafmt, al buscar en la documentación encontré que ya no se encuentra disponible, porque ya está contenido dentro del Plugin de Scala, por lo que ya no haría falta instalarlo.
Les dejo el link de la documentación de Scalafmt: Installation · Scalafmt (scalameta.org)
Les presento una alternativa al sitio oficial para descargar AdoptOpenJDK, ahí pueden encontrar la versión que más se ajuste al proyecto desde la versión 8 https://adoptium.net/
La pagina principal ya redirige a adoptium porque la anterior parece estar deprecated
Para Intellij Idea en la última versión indica que no es compatible el plugin de Play Routes, ¿Hay alguno similar que sea compatible?
Yo instalé uno que se llama Play2Routes y es del mismo creador, ojalá que nos sirva jaja
Ya instalé JDK8, puedo verlo en java de mis aplicaciones en MAC Sierra. Pero en terminal, escribo java -version y javac -version y me sale que la version instalada en java 11. Qué configuración me esta faltando?
Esto es porque en sistemas como linux y mac, estos permiten usar y alternar entre varias versiones de distintos programas, esto por supuesto aplica para java pero hay otros lenguajes donde también se puede aplicar.
Entonces, la manera de solventar esto, es usar la herramienta que proporcione el sistema para escoger la alternativa por defecto de java y/o javac.
En el caso de Mac, como no tengo uno a la mano en este momento voy tener que confiar en la respuesta de StackOverflow, pero te agradecería que después cuando lo hagas y si te funciona, nos escribas la manera que usaste para hacerlo :D
(Para el caso de sistemas basados en Debian, la cosa es similar)