Acompáñanos en este breve repaso a algunas de las herramientas útiles para cualquier SysAdmin que desarrolle scripts, que en esta primera entrega dedicaremos a revisar los editores de código más eficientes para el desarrollo de scripts.
Si bien vamos a hablar de muchos editores, nos vamos a aproximar mucho más al desarrollo de PowerShell, ya que la mayoría de las cosas las realizaremos sobre dicho lenguaje de scripting.
Este es uno de esos temas peliagudos, en los que se suele empezar con una conversación distendida hablando sobre funcionalidades de cada editor y termina en una agria polémica sobre que editor es mejor, peor o directamente es una absoluta basura.
Para aquellos que no hayan sufrido una de estas discusiones, dejamos a continuación un fragmento de la serie Silicon Valley en la que, si bien no discuten directamente sobre editores de código (salvo esa pequeña referencia a Vi y Emacs), discuten sobre Espacios vs tabulaciones, que es otra de esas discusiones típicas de desarrolladores.
En este caso, vamos a listar algunos editores, dejando para el futuro el hablar sobre herramientas adicionales que hacen la vida más fácil a los administradores de sistemas que además tienen que hacer las veces de desarrolladores de Scripts.
Empezaremos por los editores de código más típicos, para ir entrando en algunos con funcionalidades avanzadas, o más vinculados a la edición de código en sí.
Los editores de código más eficientes para desarrollar scripts:
Vi (y su familia):
Comenzamos por un viejo conocido de los que venimos del mundo UNIX (o GNU/Linux), Vi (Visual), el editor de texto por excelencia y sus versiones gráficas mejoradas, como GVim.
Vi es un editor de texto realmente longevo ya que fue lanzado hace 46 años, en 1976 por Billy Joy, desarrollado en código C, uno de los lenguajes más usados en el mundo, sobre todo en aquella época, y liberado bajo licencia BSD.
GVim es una versión gráfica con un montón de utilidades desarrollada para el escritorio de Windows (y otras plataformas) que podemos descargar desde la web del proyecto GVim.
Este editor de texto permite hacer búsquedas, sustituciones, resaltado sintáctico (también llamada coloreado) y muchas otras cosas, incluyendo salvapantallas personalizables con motivos diversos.
Aquellos que quieran aprender a manejarlo, podrán visitar la siguiente web, conde podrán ver los comandos necesarios en sus distintos modos.
Personalmente, he usado este editor por más de 15 años y la gran ventaja que tenemos con su uso es que podemos trabajar de la misma manera sobre cualquier plataforma.
Emacs:
¡El editor de texto que hace que tus dedos jueguen al Twister! Con una fama de hueso duro de roer, acostumbrarse a trabajar con el suele ser una tarea ardua en su comienzo, aunque brinda grandes ventajas para aquellos que se acostumbran a trabajar con él.
Aún recuerdo lo traumático que fue la primera vez que utilicé Emacs, ¡y de eso hace más de 20 años!
Emacs fue desarrollado por Richard Stallman, padre del proyecto GNU, del que cuelgan grandes proyectos como GNU/Linux, Apache, etc., en el año 76 del siglo pasado y se encuentra publicado bajo licencia GPL (Licencia Pública General).
La gran ventaja que tiene Emacs es básicamente la misma que tiene Vi (gVim), la posibilidad de trabajar de la misma manera en cualquier plataforma. Por el contrario, si Vi puede ser un poco complicado al principio, Emacs es directamente un infierno.
Los primeros accesos al programa suelen ir acompañados de la desorientación absoluta y no saber que se puede hacer, pero, por el contrario, una vez aprendido, es el editor más potente con diferencia.
Para descargar el programa en plataforma Microsoft Windows se puede acceder a la página del Proyecto GNU Emacs donde encontraremos los enlaces y la forma de instalarlo en distintas versiones de sistemas operativos como GNU/Linux, BSD, MacOS y por supuesto Windows, además de una recopilación de documentación de su uso.
Nano:
Otra opción para aquellos que quieran mantener su editor preferido del mundo GNU/Linux o UNIX es Nano. Nano es un editor de texto de los que podríamos llamar tradicionales, pero mucho más sencillo de usar que Vi y por supuesto que Emacs.
Nano es un editor programado en C y basado en Pico, que vio la luz en 1999 con licencia GPL y que ha sido adoptado por infinidad de administradores del mundo del software libre por su sencillez de uso.
El software no presenta muchas de las ventajas que podemos observar en Vi y en Emacs, pero permite una edición rápida y flexible.
Aquellos que quieran probarlo o ya lo conozcan y quieran usarlo también en Windows, pueden obtener la versión de Microsoft Windows a través del enlace del Proyecto Editor Nano.
De igual manera que pasaba en GVim o Emacs, podemos obtener mucho más del editor usando los Atajos para Nano por lo que los dejamos para su consulta.
Notepad++:
Y por fin llegamos a un editor de textos que no viene del mundo UNIX, aunque sí que fue desarrollado como código libre (opensource) y está amparado bajo licencia GPL. Desarrollado en C++ y liberado en 2003, se desarrolló para ser usado en Windows como editor de texto con resaltado de sintaxis para código fuente.
A diferencia de los anteriores, Notepad++ no puede ser usado sobre GNU/Linux de manera nativa, sino que hay que instalar primero WINE, una capa intermedia para la ejecución en GNU/Linux de aplicaciones diseñadas para Windows y MS-DOS.
Para descargar el instalable de Notepad++ se debe ir a la zona de descargas de la página del Proyecto Notepad++.
La gran ventaja de Notepad++ respecto a los anteriores es su simplicidad; si bien hay modos especiales y combinaciones de teclas que pueden ayudarnos a optimizar nuestra forma de trabajar, no son necesarias y se pueden obviar por completo, después de todo, existe una maravillosa barra de menús desde la que podremos hacer mil tareas.
Lo más maravilloso de este editor, al menos para mí, es que permite abrir infinidad de pestañas en las que podemos ir dejando todo lo que vayamos necesitando, y si se reinicia el equipo o cerramos el aplicativo por error, todo estará ahí cuando arranquemos de nuevo.
PowerShell ISE:
PowerShell ISE o (Integrated Scripting Environment) es una aplicación nativa de Windows en todas sus configuraciones actuales que fue diseñada para la ejecución y el desarrollo de PowerShell.
Permite varias formas de trabajo:
- Por un lado, permite la clásica ejecución de comandos de PowerShell, como si trabajáramos en una consola normal.
- Por otro lado, permite trabajar de la manera en la que trabajaríamos tradicionalmente con un IDE.
Cuando decimos la manera tradicional en que trabajaremos con un IDE, nos referimos a que iríamos escribiendo código, la aplicación iría mostrándonos opciones de autocompletado, marcándonos o incluso corrigiendo errores de sintaxis y nos permitiría probar el código por secciones.
En este sentido, esta sería la primera de las opciones que nos proporciona todas estas funcionalidades. Esto es lógico que sea así, ya que es nativo de Microsoft para PowerShell.
Las opciones de optimización, autocompletar, etc. nos ayudan de manera notable y podremos mejorar nuestro rendimiento en cuanto nos acostumbremos al entorno, que por supuesto tiene una curva de aprendizaje mínima.
Al ser una aplicación nativa no hace falta ni descargarla ni instalada, y bastará con invocarla, o bien lanzando el comando PowerShell_ISE que lo que hace es lanzar el aplicativo desde su ubicación, o bien acceder a “c:\windows\system32\” y localizarla y lanzar la aplicación manualmente (%windir%\system32\WindowsPowerShell\v1.0\PowerShell_ISE.exe).
Sapien PowerShell Studio:
PowerShell Studio es un IDE desarrollado por Sapien Technologies Inc. y cuya última versión es la 2023 y trae soporte para todas las versiones de PowerShell.
PowerShell Studio es bastante completo y trae todas las funcionalidades típicas de un IDE, como puede ser el marcado de sintaxis con coloreados, la propuesta de comandos, la corrección de errores, ejecución por pasos, etc.
Además, trae muchas otras funcionalidades típicas como la preparación de paquetes, la integración con Git y una funcionalidad de prevención de perdida de datos mediante la recuperación de ficheros.
En general es una muy buena opción con un gran pero; lo que no me gusta de este editor es que sea de pago, con una suscripción mensual (25$), anual (250$) o perpetua (450$), ya que cuando hablamos de IDE de pago tengo una clarísima preferencia, que es Visual Code.
En caso de desear descargar el IDE en su versión de prueba o incluso adquirirlo se debe acceder al siguiente enlace PowerShell Studio.
Así mismo, si se desea aprender más sobre este editor se puede leer el siguiente Manual de PowerShell Studio.
Visual Studio Code:
Visual Studio Code es un editor gratuito y de código abierto (licencia MIT) desarrollado por Microsoft y liberado en 2015 que goza con una gran popularidad entre los desarrolladores de todo tipo, incluyendo cómo no a los desarrolladores de scripts de PowerShell.
Entre sus grandes ventajas se encuentra por supuesto que sea gratuito, de código abierto y con una fuerte comunidad detrás, cosa que pasa con casi todos los editores que hemos revisado previamente, además de contar con gran cantidad de extensiones, sin olvidar por supuesto que está especialmente desarrollado para integrarse perfectamente con Git.
Cuenta con un gran volumen de lenguajes soportados para los que se despliegan muchas ayudas como el marcado de sintaxis, autocompletar comandos o corregir el código (no disponible para todos los lenguajes).
Otro punto que me parece muy interesante es que es ampliamente usado en formaciones, tanto oficiales de Microsoft como en centros de estudios en formación profesional, estudios universitarios de grado o de posgrado, por lo que es posible que ya lo conozcan por este motivo.
El instalable se puede descargar de la Web de Visual Studio Code donde también podremos encontrar documentación, foros, extensiones, etc.
Esta es sin duda, la mejor opción que podemos tomar si queremos un buen editor que soporte gran cantidad de lenguajes, que sea potente, flexible y sin coste alguno.
Visual Studio Professional:
Visual Studio Professional es la opción profesional de Visual Studio Code. Cuenta con versión para Windows y macOS y fue desarrollado por Microsoft sobre C++ y C# liberando su primera versión en 1997 en formato propietario.
NOTA: Existe versión de Visual Studio Professional para macOS y Windows, pero en GNU/Linux solo puede optarse por Visual Studio Code.
Este cuenta con todas las opciones que proporciona Code más una gran cantidad de mejoras, funcionalidades como crédito de Azure y soporte para Azure DevOps.
Aquí ya hablamos de otro nivel, tanto en funcionalidades como en el coste, que es realmente elevado.
La licencia de uso mensual es de 45$ por la suscripción profesional y de 250$ por la suscripción Enterprise, contando ambos con el plan básico de Azure DevOps pero contando Enterprise con el plan de pruebas incluido. En el siguiente enlace, pueden revisarse las condiciones del contrato Enterprise.
Conclusiones:
Tal como hemos visto, disponemos de múltiples opciones cuando queremos seleccionar un entorno sobre el que desarrollar nuestros scripts, y estos nos proveen de más o menos funcionalidades en función de lo que estemos buscando.
Es posible que un administrador simplemente busque un editor que le permita trabajar con múltiples tipos de código, con detección de sintaxis y no necesite más, mientras que otro quiera tener todo integrado en un solo interfaz y le permita editar, compilar, etc., con múltiples lenguajes para no tener que estar saltando continuamente entre las distintas herramientas.
Personalmente, siempre abogaría por el uso de un editor como Vi o Emacs que permiten tener la misma experiencia a través de distintos sistemas, pero he de reconocer que es mucho más simple usar un Notepad++ o incluso un IDE como el ISE de Microsoft, y eso sin entrar en la potencia de PowerShell Studio o Visual Studio.
Sea cual sea tu elección, te agradecemos que nos hayas acompañado en este breve repaso que seguramente se amplíe con otras utilidades y herramientas en próximos artículos. Mientras tanto, puedes leer los que ya tenemos colgados en nuestro blog.
¡Gracias por leernos!