5. Editores
En este curso haré uso de Emacs con Spacemacs por ser el más utilizado en el desarrollo con Clojure [^6], además de ser totalmente Opensource, estar programado en un lenguaje funcional vivo (Common Lisp), ser Emacs un exponente de la programación funcional, por un flujo constante de actualizaciones y por su fantástica integración con atajos de Vim (no sé vivir sin ellos, ¡socorro!). Sinceramente no encuentro qué más puedo pedir a una herramienta para desarrollar software funcional. ¿Qué pueda jugar al Tetris o me haga de terapeuta? Pues también es posible en Emacs ejecutando tetris o doctor.
Ello no significa que no puedas utilizar otros editores, aconsejable si eres nuevo en estas tierras, que centren tus energías en el código y no tanto en "¿cómo se usa este editor tan raro?". Por ello voy a dejar una lista de los más populares para que encuentres cuál encaja en estos momentos contigo.
Emacs (con Cider)
Ventajas
-
Altamente configurable.
-
Muy maduro.
-
Compatible con casi cualquier sistema operativo y arquitectura.
-
Preparado para la programación funcional.
Contras
-
Gran inversión de tiempo en aprendizaje y configuración.
-
No apto para todos los perfiles, sobre todo si estás iniciándote.
Recomendado si…
-
Necesitas un entorno de trabajo personalizado.
-
Te gusta construir tu propio editor.
-
Quieres ampliar el potencial del editor con otras herramientas.
-
Deseas programar con Lisp.
-
Te gustan los retos.
Vim/Neovim + Fireplace
Ventajas
-
Altamente configurable.
-
Grandísima comunidad.
-
Compatible con casi cualquier sistema operativo y arquitectura.
-
Sensación de alta productividad con sus miles de atajos de teclado.
Contras
-
Gran curva de dificultad. Pasará tiempo hasta que realices los atajos de forma natural.
-
Instalación de multitud de plugins. Es un editor no un IDE, deberás buscar e instalar todas las extensiones que creas necesario hasta que funcione como una herramienta preparada para su uso diario: compatibilidad con lenguajes, autocompletador, árbol de directorios, linter…
-
Clojure es tratado como un lenguaje cualquiera dentro de sus herramientas.
Recomendado si…
-
Trabajas con el terminal.
-
Buscas un entorno de gran productividad.
-
Dispones de una larga experiencia como desarrollador.
-
Tu equipo no tiene muchos recursos.
Light Table
Ventajas
-
Original y muy bien diseñado para Clojure.
-
Previsualizador de cambios en el propio editor.
-
Comandos rápidos.
-
Sistema de plugins variados para cualquier desarrollo.
-
Interfaz minimalista con un diseño práctico.
Contras
-
La última gran actualización vino de 2016… y aunque el creador quiere actualizar algunos paquetes, parece ser que el desarrollo está estancado.
-
No existe instalador oficial para Linux. También añado que he encontrado problemas al ejecutar en Ubuntu.
Recomendado si…
-
No quieres complicarte para trabajar con Clojure.
-
Quieres tener una vista en vivo sin recurrir a herramientas externas.
-
Si apoyas los proyectos de Kickstarter, fue una de las iniciativas que más ruido causaron en su momento.
Nightcode
Ventajas
-
Minimalista.
-
Muestra en vivo el contenido de tus variables.
-
Fácil de utilizar.
-
Construido en Clojure para programar en Clojure…
Contras
-
…y nada más. Olvídate de hacer un HTML o cualquier otro lenguaje.
-
Sin extensiones.
Recomendado si…
-
Te estás iniciando en Clojure.
-
Buscas un debug potente.
-
Quieres sencillez.
Sublime Text + SublimeREPL + Enhanced Clojure
Ventajas
-
Sencillo de utilizar.
-
Plugins para hacerlo compatible con casi cualquier herramienta.
-
Eficiente. Cuando más lo notas es con archivos grandes.
-
Rápido de instalar y abrir.
Contras
-
Es gratuito, pero no libre.
-
Las actualizaciones no aportan nuevas características, se centran en la estabilidad. La filosofía es que lo extiendas por medio de plugins.
-
Los plugins para Clojure son buenos, pero no excelentes.
Recomendado si…
-
No te vas a centrar solo en el desarrollo de Clojure.
-
Quieres una herramienta estable.
-
No quieres invertir tiempo en aprender a usar un editor.
Atom + Proto REPL + Paredit + Parinfer
Ventajas
-
Creado y mantenido por GitHub.
-
Buena integración con GitHub.
-
Visualmente precioso.
-
Plugins destacables.
Contras
-
No aporta realmente nada al desarrollo de Clojure, hay que instalar 3 plugins independientes.
-
Las diferencias entre VSCode y Sublime Text son anecdóticas.
Recomendado si…
-
Buscas un editor enriquecido similar a VSCode o Sublime Text.
-
Quieres un editor equilibrado, no muy grande pero tampoco minimalista.
IntelliJ IDEA Community + Cursive
Ventajas
-
Si buscas la IDE más completa del mercado, lo acabas de encontrar: integraciones, atajos, paleta de comandos, lenguajes, snippets, autocompletador excelente… y todo en grandes cantidades.
-
Fácil de instalar y utilizar.
-
Muy estable.
Contras
-
No soporta oficialmente Clojure, debes instalar el plugin Cursive.
-
Es gratuito pero no libre, tanto el editor como la extensión Cursive.
-
No está preparado para desarrollar web. Hay que dar el salto a su versión de pago Ultimate Edition o WebStorm.
-
Sin duda, el más pesado de la lista.
Recomendado si…
-
Buscas una herramienta profesional ya equipada, instalar y usar.
-
Usas un equipo que puede soportar un software exigente.
-
No tienes problemas de hacer un desembolso económico si fuera necesario.
Visual Studio Code + Calva
Ventajas
-
Editor más popular.
-
Soporte a cargo de Microsoft con todo lo que conlleva: estabilidad, soporte para TypeScript, Azure…
-
Una biblioteca interminable de plugins, y además bastantes actualizados.
-
Sentirás que no te falta de nada: integración con git, test, debug, lanzador de builders, terminal…
-
Estéticamente muy parecido a Sublime Text o Atom.
Contras
-
No apto para un equipo con pocos recursos.
-
La conexión con REPL puede darte algún dolor de cabeza.
-
Calva está muy desarrollado y funcional, pero no terminado.
Recomendado si…
-
Buscas una navaja suiza para tus proyectos.
-
Quieres una alternativa gratuita de IntelliJ y Sublime Text.
-
Usas JavaScript.
Spacemacs
Ventajas
-
Posiblemente el editor más equipado para trabajar con programación funcional.
-
Automatización: se instala una capa para usar Clojure a las mil maravillas sin tocar nada. Es un editor que no es necesario configurarlo, todo es autoinstalado según las necesidades. Es increíble.
-
Todas las herramientas que puedes necesitar para usar REPL.
-
Compatible con todos los atajos de Neovim/Vim de forma nativa.
-
Lo mejor de 2 mundos: la productividad de Neovim/Vim y las herramientas de Emacs.
Contras
-
Necesitarás instalar previamente Emacs.
-
Su dificultad de uso radica en que es totalmente diferente al resto. Los atajos son llamados nemotécnicamente a partir de la barra espaciadora.
-
Está orientado a desarrolladores con una buena experiencia que quieran dar un salto.
Recomendado si…
-
Quieres trabajar con otros lenguajes de programación funcional.
-
No quieres gastar muchos recursos.
-
Buscas trabajar con atajos de Neovim/Vim.
Consejo que nadie me dijo: Si quieres allanar la curva de dificultad, y no has tocado antes Emacs o Vim, ve directo a IntelliJ IDEA Community o VSCode sin dudarlo. Bastante dramático es el cambio de objetos a funcional para encima pelearte con una herramienta que debería ayudarte.
Resumen
-
IntelliJ IDEA Community o VSCode son alternativas fantásticas y rápidas, tan solo hay que instalar el plugin adecuado. Ideal para nuevos desarrolladores.
-
El editor más utilizado es Emacs con el Framework Spacemacs y el módulo de Clojure activo. No obstante está recomendado para desarrolladores con cierta experiencia.
Ejercicios
-
Instala un solo editor, configúralo y especialízate.
-
Aprende a conectar con un servidor de REPL levantado por ti.
This work is under a Attribution-NonCommercial-NoDerivatives 4.0 International license.
Support me on Ko-fi