HeadlinesBriefing favicon HeadlinesBriefing.com

Cascarrabias prueba servidor de lenguaje

Hacker News •
×

Escribo código más o menos de la misma manera que hace diez años: hago ediciones en mi editor de texto, cambio a una terminal y ejecuto un comando para compilar y ejecutar. Miro el resultado, luego vuelvo a mi editor. Si no estoy seguro, agrego impresiones de seguimiento o reinicio en un depurador. Si una excepción bloquea mi programa, lo arreglo y reinicio.

Envidio lo que hacen los programadores de Lisp. El desarrollo en Lisp ocurre escribiendo código directamente en el repl para agregar, eliminar y reemplazar partes del sistema vivo y en ejecución. Un programador de Lisp no necesita "cambiar" porque ya está dentro del proceso de su programa. Nunca "compilan y ejecutan" porque el código ya está corriendo, y editan mediante intercambio en caliente. No reinician en un depurador porque pueden inspeccionar cualquier cosa. No reinician en excepciones porque el sistema de condiciones permite reanudar desde cualquier lugar.

Una consecuencia es que al inicio de un proyecto Lisp, puede que no haya código fuente; la definición en evolución existe solo en la imagen de memoria. Esto es como la gente trata las bases de datos relacionales al principio: el esquema existe solo en la base de datos en ejecución. Eventualmente, se vuelca a un archivo bajo control de versiones.

No soy un desarrollador de Lisp, así que seguiré envidiando. Pero me di cuenta de que no he intentado acercarme. En Haskell, hay victorias parciales: el sistema de tipos reduce excepciones, y el servidor de lenguaje Haskell (hls) con Eglot de Emacs da mejor introspección. ghcid observa cambios y recompila rápidamente.