- El autor, creador de Boo, un editor de código personal, explica por qué pausó temporalmente el proyecto para crear un nuevo lenguaje de programación
- Boo es un editor basado en Rust con navegación de teclado centrada en humanos y un sistema alternativo a LSP, pensado más para uso personal que para comercializarse
- Considera que un proceso de desarrollo repetitivo reduce la creatividad, y prioriza el placer de crear software que inspire
- Usa como ejemplos armar bloques LEGO y The Legend of Zelda: Breath of the Wild para resaltar la importancia de crear obras memorables
- En lugar de seguir fórmulas de éxito, mantiene una filosofía de desarrollo centrada en sus propios intereses y aprendizaje, y planea reescribir Boo en el futuro con el lenguaje que está creando
El proyecto Boo y la motivación de desarrollo
- Boo es un proyecto que el autor creó como editor de código para sí mismo, enfocado en la utilidad personal más que en el éxito masivo
- Boo incluye funciones de navegación humano-teclado y usa un sistema más rápido y menos pesado para el sistema operativo que LSP (Language Server Protocol)
- Actualmente funciona lo suficiente como para usarse en el trabajo diario, pero no hay planes de distribuirlo como código abierto
- Tanto Boo como Rio Terminal fueron escritos en Rust y comparten una estructura y un proceso de distribución similares
- Esa similitud empezó a sentirse como trabajo repetitivo y redujo el disfrute del desarrollo
La relación entre creación e inspiración
- Usando como ejemplo el juego con bloques LEGO, explica que la libertad de poder crear una forma distinta cada vez es lo que hace divertida la creación
- En lugar de usar siempre las mismas piezas de la misma manera, lo interesante está en añadir elementos externos para producir resultados nuevos
- Cuanto más repetitiva se vuelve la programación, menos probable es que surjan creaciones con efecto de "wow"
- Subraya que para crear software que inspire, uno también tiene que sentirse inspirado
Ejemplos de software memorable
- Pone como ejemplo The Legend of Zelda: Breath of the Wild, mencionando un nivel de acabado capaz de hacer que incluso personas que no jugaban compraran una consola
- Destaca la fuerza de una obra que deja una impresión duradera incluso después de haberla jugado
- Explica que el software creado con ese nivel de dedicación deja una impresión emocional en las personas
Pausa de Boo y desarrollo de un nuevo lenguaje
- Boo es un proyecto de hobby, no de negocio, así que no tiene metas de ingresos ni fechas límite
- No pretende crear un proyecto gigante como VS Code, ni avanzar a la fuerza
- Para retomarlo cuando vuelva la inspiración, puso Boo en pausa temporal y actualmente está desarrollando su propio lenguaje de programación
- A largo plazo, planea reescribir Boo usando ese lenguaje
Filosofía y actitud de desarrollo
- Desarrollar un nuevo lenguaje implica mucho trabajo, pero el autor lo ve como un proceso de aprendizaje disfrutable
- Está ampliando su comprensión de los binarios y compiladores, avanzando a su propio ritmo
- En lugar de seguir fórmulas de éxito o consejos externos, continúa desarrollando con base en su propia manera de pensar e intereses
- Este texto también fue escrito usando Boo
1 comentarios
Opiniones en Hacker News
Al leer que hoy se levantó, tomó café y tuvo la tarde libre porque su familia se quedó dormida, me quedé preguntándome cómo demonios tienen horarios tan distintos. Hasta me imaginé que tal vez es una familia que duerme en la tarde, o gente que se levanta en la noche para empezar el día
La frase “este editor existe para hacerme feliz” se siente refrescante. Hoy hay presión para que todo side project termine convirtiéndose en open source o SaaS, y muchas veces eso mata la creatividad. Proyectos experimentales como Boo o Rio parecen salir justamente de esa libertad
Eso de “lo hice para mí” es la forma de trabajar de muchos artistas. Tolkien también era así, y la mayoría crea primero para sí misma y luego se lo muestra al mundo. Pero casi siempre a nadie le importa, o recién recibe atención después de morir. Y no importa. Lo importante es el instinto humano de expresar la imaginación hacia afuera
Cuando programar se vuelve repetitivo, se pierde el factor ‘wow’. Pero proyectos como yt-dlp, que soportan muchos sitios distintos, son una excepción. Hacer un montón de parsers de datos es aburrido, pero al final transmite esa sensación de que “funciona en todas partes”
Yo hago software que hace sentir emociones a la gente — principalmente ira. Al final, solo hay dos clases de software: el que es ignorado y el que la gente usa lo suficiente como para quejarse
Emacs y Emacspeak me provocan emociones enormes. Todo se siente como un solo manual, y con solo presionar C-h m aparecen todos los comandos al instante. No hay nada oculto ni hace falta escarbar documentación HTML. Si algo no funciona, hasta lo arreglo con Codex para lograr lo que quiero
En el caso ideal, desarrollar software debería tratarse como un oficio (craft). Como la carpintería: puede ser útil y al mismo tiempo arte. Pero en muchos proyectos tratan a los desarrolladores como obreros de fábrica. El problema es una cultura que valora más la cantidad que la calidad.
Al mismo tiempo, ver el software solo como arte tampoco es práctico. El propósito del código no es ser contemplado, sino funcionar. Aun así, da pena que la expresión “software hecho con oficio” suene extraña
Incluso FAANG como Meta y Google ya hicieron software que hace sentir emociones a la gente — ira, depresión y a veces hasta alegría. Pero también muestran cómo una tecnología nacida con buenas intenciones puede distorsionarse. Como dice el dicho, “el camino al infierno está pavimentado de buenas intenciones”: muchas veces perseguir el bien termina produciendo mal.
Citando a Knuth, dejar que “miles de científicos de la computación hagan libremente lo que quieran” es lo que impulsa el progreso. Así era Bell Labs: lo importante es la libertad para explorar.
Hoy vivimos obsesionados con optimizar, pero flojos en matemáticas, y al final nos volvimos una sociedad que dejó de explorar. Por eso creo que el progreso se ha ralentizado
Es un hábito que aprendí de Casey Muratori y Jonathan Blow: a mí también me gusta construir mi propio pequeño mundo. Son proyectos donde yo soy el único usuario y el único destinatario. Un espacio de disfrute puro, sin deadlines, sin pedidos y sin runtime
Últimamente casi todo el software me provoca emociones intensas