Reseña: Lisp Hackers

3 minutos de lectura

Lisp Hackers es un libro sobre las entrevistas que Vsevolod Domkin hizo a varios programadores de Lisp, acerca de sus proyectos, por qué usan Lisp y qué han logrado con él.

Portada de Lisp Hackers

Lo que respondieron no lo podrás creer…

Acerca del libro

El libro consiste de 14 entrevistas a programadores que el autor llama “programadores 100x”, es decir, programadores muy productivos. Estos hablan acerca de sus creaciones, lo que han logrado, sus setups de trabajo, las herramientas que les facilitan la vida, etc.

Las características que los definían es principalmente haber contribuido a la comunidad de Lisp, al Open Source y haber trabajado con Lisp en un proyecto o compañía exitoso.

Síntesis del libro

Este libro para disfrutarlo tienes que leerlo, ya que son muchas pláticas personales y anecdóticas, pero intentaré resumir algunas de las cosas que me parecieron comunes entre los programadores de Lisp que entrevisto.

  1. Todos valoran la flexibilidad de LIsp y la capacidad de poder crear tus propias herramientas con él. Dicen que lo puedes usar para ser el más flexible lenguaje de scripting o el más eficiente sistema compilado estático en producción.
  2. Muchos modificaban los entornos de trabajo como su editor de preferencia (generalmente emacs) para trabajar a la perfección con Lisp
  3. Lisp es perfecto para crear tu propio DSL (Domain-specific Language) por su poderoso sistema de macros
  4. La composición funcional puede ayudarte a crear sistemas muy poderosos
  5. Crea tus propias herramientas que te permitan eliminar tareas aburridas de tu trabajo diario. Lisp puede servir para esto
  6. Invierte tiempo en dominar tu editor/IDE/entorno para ser lo más productivo posible
  7. Aprender meta-programación (programas que hagan programas) te puede llevar muy lejos
  8. Puedes usar Lisp para prototipar y otro lenguaje con más usuarios para el sistema en producción
  9. Tener programas que funcionan rápidamente puede darte energía para producir más:

    A lot of momentum and motivation comes from having a working program in front of me.

  10. Evita la optimización prematura.
  11. Prototipa, prueba y entiende tus conceptos antes de cualquier otro avance.
  12. Descompón lo problemas en la parte más pequeña que puedas, para que puedas resolverlos paso a paso completamente concentrado.

A continuación dejo algunas citas que me parecen notables:

It won’t make the slightest bit of difference if you’re pointing your talents in a direction that isn’t useful to other people. - Slava Akhmechet

explaining what you’re doing is something I heartily recommend to anyone who’s writing software, possibly as a required step before you declare your software complete; it really forces you to get the concepts straight, the API clean, and the tests passing. - François-René (Faré) Rideau

Finally, tests. Lots of them. Automatically run. All the time. Proofs can do, too, though they are usually more expensive… - François-René (Faré) Rideau

Never bother with low-level optimization until the very end; but bother about high-level optimization early enough, by making sure you choose proper data structures. - François-René (Faré) Rideau

“when stuck, do the stupidest thing possible” - Vladimir Sedach

For difficult problems, it’s always better to step back from the keyboard and just think about your code. - Vladimir Sedach

La conclusión del libro es: si no sabes Lisp, aprenderlo te hará un mejor programador aunque no lo uses inmediatamente.

Accionables

¿Qué cosas puedo poner en práctica?

  1. Aprender Lisp
  2. Aprender Emacs
  3. Mejorar el manejo de mi IDE actual: VSCode
  4. Prototipar una solución antes de crear el programa que irá a producción

Opinión

Me gustó mucho leer de la experiencia de programadores experimentados, su forma de trabajo, los problemas de los que hablan (como la falta de un liderazgo fuerte) y las formas creativas en las que usan Lisp.

Leí sobre varios nombres que ya conocía que no sabía que estaban relacionados con Lisp. Leer ceomo es que este lenguaje influyó en su forma de trabajo creo que es un buen incentivo para aprenderlo.

Además, como ya mencioné, no sólo habla de Lisp sino de un montón de temas relacionados con el trabajo como programador. Si puedes darle una lectura a este libro lo recomiendo mucho.

Actualizado:

Comentar