Me harté de los editores de texto modernos y construí el mío propio

Fine, I'll build my own text editor

Me harté de los editores de texto modernos y construí el mío propio

David Bushell, harto de la calidad del software actual, decide construir su propio editor de texto. Tras descartar el renderizado en canvas por problemas de accesibilidad, experimenta con contenteditable y textarea, logrando un prototipo con resaltado de sintaxis. Comparte sus hallazgos sobre rendimiento, APIs como EditContext y la complejidad de manejar texto Unicode en JavaScript.

El software de hoy es basura. Eso me hizo pensar: ¡soy bueno construyendo basura! ¿Por qué no puedo construir mi propio editor de texto?
  1. tzs

    Alrededor de 1980-81 tuve un trabajo a tiempo parcial mientras estudiaba en la universidad, haciendo programación de sistemas y administración para el departamento de Física de Altas Energías de Caltech.

    Rob Pike fue el programador de sistemas y administrador antes que yo, cuando era estudiante de posgrado en física de altas energías, pero se fue a trabajar a Bell Labs.

    Un día, otro estudiante, Karl Heuer, y yo estábamos dedicados al pasatiempo común de los programadores de quejarnos de los editores de pantalla de la época y diciendo que podríamos escribir algo mejor.

    De alguna manera esto se convirtió en una competencia, y ambos pasamos toda la noche compitiendo entre nosotros para escribir nuestros editores. Estaba en silencio, excepto por el tecleo, interrumpido por el anuncio ocasional de alguna característica que ahora funcionaba, con la esperanza de desconcertar al otro.

    Por la mañana, el otro programador de sistemas y administrador, Norman Wilson, llegó y vio lo que Karl y yo habíamos estado haciendo.

    Norman mencionó esto en un correo electrónico a Rob Pike. Su respuesta fue algo así:

    > Todo el mundo escribe un editor de pantalla. Es fácil de hacer y los hace sentir importantes. Diles que trabajen en algo útil.

    Solo un par de años después, Rob Pike escribió un editor de pantalla. Me pregunto si lo hizo sentir importante :-)

  2. akersten

    Sí, ¿quién hubiera adivinado que el elemento <textarea>, diseñado específicamente para este caso de uso e integrado en los navegadores durante tres décadas, sería la forma más eficiente y consistente en comportamiento de implementar texto editable?

    Me entristece un poco que el autor dejara de eliminar complejidad innecesaria allí... todavía no estamos construyendo un editor de texto, estamos construyendo un sitio web con un campo de entrada elegante. Si queremos construir un editor de texto adecuado, también debemos evitar el exceso del navegador web.

  3. pmkary

    Los editores de texto son como los relojes mecánicos o las plumas estilográficas. Hay tanta belleza en la maquinaria que los compone. Para mí, apenas hay otros módulos que sean tan satisfactorios de ver construir. Cada vez que encuentro uno nuevo (uno bueno como este), con todo sobre cuerdas, renderizado y cálculos de colocación de la viga en I, y... se siente como un regalo de Navidad.

  4. krzyzanowskim

    La web es probablemente la plataforma más limitada hoy en día para construir un editor de texto personalizado, en términos de disposición del texto, interacción y todos los pequeños detalles que pueden importar. Todavía carece de una API adecuada para interactuar con el sistema de entrada del sistema operativo fuera de las capacidades de texto integradas del navegador. Es por eso que el enfoque de <canvas> es tan doloroso, y todo lo demás está "limitado" por los detalles de implementación de HTML y del navegador.

  5. dang

    Reciente y relacionado:

    Ya no hacen editores como Sublime Text - https://news.ycombinator.com/item?id=49209354 - Ago 2026 (13 comentarios)

  6. stillpointlab

    Literalmente acabo de conseguir que Fable me escribiera un editor de texto. Bueno, seré honesto, conseguí que envolviera la biblioteca KTextEditor de KDE, que es como el 90% de un editor de texto.

    Había estado usando Kate, que era lo que un LLM sugirió que era lo más parecido a Sublime Text en Fedora. Pero incluso Kate, que era genial, tenía demasiadas cosas.

    Así que le pedí a Fable que tomara la parte del editor de texto (KTextEditor) y la envolviera usando Rust con un servidor LSP. Tomó unos 2 días, pero tengo un pequeño editor rapidísimo. Uso Sway para gestionar cosas como pestañas, fuzzel sirve como búsqueda difusa de archivos, broot sirve como vista de explorador. Ya he añadido soporte de vista previa de Markdown. Puede que algún día haga una integración básica con git.

    Luego conseguí que convirtiera ese pequeño editor en una interfaz para tomar notas que he vinculado a una combinación de teclas Mod-m para mantener notas en ~/Notes.

    Vivimos tiempos salvajes. Espero que todos estén aprovechando mientras puedan.

  7. nottorp

    Realmente hay un contador de FPS ahí.

    ¿Está el experimento renderizando continuamente en un bucle?

  8. Jean-Philipe

    Fuera de tema, pero realmente me gusta el diseño de este sitio web. Es fresco, es divertido, pero sigue siendo fácil de leer. También me encanta la página de la política de IA.

Más de este día

2026-09-02