Código inteligente y el inmortal Hulk

Publicado el 16 de marzo de 2021

Hace un tiempo leyendo The Immortal Hulk #34 por Al Ewing, me encontré con los siguientes paneles:

The Immortal Hulk #34

Traducción:

Esta es la entrada quién sabe cuánto del diario. Estamos de nuevo en la vieja máquina de escribir. No puedo hacer que nada más funcione. La grabadora de pensamiento, la sintetizadora de comida… ni siquiera la TV. El gamma desapareció y el viejo Sam Stern no recuerda cómo usar los aparatos lujosos del Líder. Porque la “mente más grande” no era lo suficientemente inteligente para hacerlos fáciles de usar. El Líder era demasiado inteligente para ser inteligente.

Me gusta encontrar cosas de un mundo en otro mundo. En este ejemplo, cosas de la programación en el mundo de los cómics. Que en mi cabeza vea estos temas como “mundos” y éstos encuentros como “crossovers” puede ser consecuencia de leer tantos cómics…

Encontré un paralelismo con código que es “inteligente” pero casi imposible de descifrar a primera vista. Un ejemplo bien práctico sería en Ruby encadenar uno o más bloques de código en una misma línea. Generalmente pasa con los métodos de Enumerable como map donde podemos escribir bloques encadenados uno después del otro. Nos ahorramos líneas y en lo que parece poco código hacemos un montón de cosas. Pero, ¿qué ventaja tiene esto?

Siempre intento escribir código “tonto”, lo más tonto posible. El Sam Sterns de estos paneles puede ser cualquier otra persona que llegue a mi código para querer hacer algún cambio o entenderlo. En la gran mayoría de los casos, esa persona voy a ser yo. Cuando me encuentro con código que yo mismo escribí y me cuesta entender, tengo esa misma reacción de “no fuiste lo suficientemente inteligente como para escribir esto de forma que lo vuelvas a entender”. Lo que sí, no me creo “demasiado inteligente” en nada 😆

Como dice el cómic, escribir código más simple es a veces más difícil que escribir el código que se nos ocurre para que “haga lo que tiene que hacer” (comparable con eso de que “no tuve tiempo de escribir algo corto, así que escribí algo largo”). Si no se me ocurre una forma más simple de escribir el mismo código, por lo menos dejo un comentario explicando lo que hace para poder verlo onda caja negra cuando tenga que entenderlo de nuevo. Pero la experiencia me ha llevado a encontrarme muchas veces con mis propias calamidades del código, así que me acostumbré a intentar de hacerle la vida más fácil a mi yo futuro. No tuve tiempo de ser un buen programador, así que terminé siendo ésto…

Otro pensamiento que me vino al encontrar esto escrito en el cómic y relacionarlo inmediatamente con la programación es que la programación no inventó nada. Es una extensión más de las habilidades de los humanos. Como tal, muestra patrones presentes en tantas otras extensiones de la capacidad humana. Porque al final del día es un invento nuestro, con nuestras capacidades y limitaciones, igual que todo lo demás. He pensado mucho en esto último recientemente, puede que en algún momento escriba más al respecto.

Por cierto recomiendo el cómic The Immortal Hulk. Ha sido consistentemente buena, tanto en arte como guión, desde el primer número. Es una de las series de Hulk que van a ser recordadas como legendarias. Incluye terror, acción y todo el aspecto psicológico que hacen de Hulk un personaje tan interesante.

No hay comentarios en este post

Feed de comentarios

Dejar un comentario

Notificarme los nuevos comentarios por correo electrónico. Tambien puedes suscribirte sin comentar.

Toasty!