GUILE - El lenguaje oficial de extensiones del proyecto GNU

En este post hablaré un poco más sobre este lenguaje tan importante para el proyecto GNU.


GUILE, o GNU Ubiquitous Intelligent Language for Extensions si prefieres el nombre completo, es una implementación del lenguaje de programación Scheme, un dialecto de Lisp, del mismo corte que Emacs.

Como dialecto de Lisp es un lenguaje con un paradigma funcional, aunque tambien es posible recurrir a prácticas de la programación imperativa y la orientada a objetos, ademas, soporta macros.

GUILE nace como un lenguaje de scripting, que puede ejecutarse tanto en un interprete (como Python), como en una maquina virtual (similar a lo que hace Java).

En un principio su interprete da soporte a ECMAScript y ELisp y promete soporte futuro para Lua, pero funciona cuando quiere, una ves esto funcione de manera consistente las aplicaciones desarrolladas en GUILE podrán hacer uso de estos otros lenguajes para extender sus funcionalidades.


Como un lenguaje oficial del proyecto GNU, y a pesar de no ser tan popular como por ejemplo Python, ya se usa varios proyectos, muchos parte de GNU:

  • GUIX - Del que se habló en mi post anterior, un gestor de paquetes para entornos altamente reproducibles. En este caso se usa en la configuración de paquetes y del sistema.
  • Sheperd - El administrador de servicios que no hace mucho alcanzó su primera version estable. Aquí los archivos de configuración para los demonios se escribe con GUILE.
  • GDB puede usar scripts para automatizar tareas.
  • GNUCash lo usa tambien para scripts de automatización o para extender sus funcionalidades si el usuario así lo requiere.

Se usa en otros lugares pero me parece que con esto se entiende el alcance que puede llegar a tener.


Como mención especial, en un principio GUILE iba a reemplazar a ELisp como lenguaje principal para Emacs, pero por la cantidad de desarrollos que ya usaban ELisp esto se pospuso y ahora la idea esta medio abandonada, pero creo que esto ejemplifica las pretensiones que tiene el proyecto GNU para con GUILE.


Ya para ir terminando, un pequeño ejemplo de como se ve un hola mundo en este lenguaje.

(display "Hello world!\n")

Muy simple, ¿verdad?

Y para que se vea que sí funciona…


PD: se va a hacer o no se va a hacer el curso de Scheme/GUILE?

3 Me gusta

Muy interesante le he estado echando un vistazo y es bastante curioso, lo del curso estaría bien yo empecé uno de Elisp pero no lo hice de la mejor manera porque mi base de conocimientos no era tanta de hecho a lo mejor hago como un Apéndice o algo donde comentare alguna cosa mas elemental por lo que si alguien que sepa mejor lo que hace se anima por mi genial

Es increíble como uno aprende cosas en este foro.
Cada día más orgulloso de nuestra comunidad.