¿Qué tecnología / plataforma / herramienta necesitan los desarrolladores?

Dónde empiezo. Creo que cualquiera que construya algo en cualquier campo necesita ver y comprender lo que está construyendo. Obviamente, tendría que haber una correlación bastante directa entre la capacidad de comprensión y la capacidad de mejora. Esto es algo que nunca he podido lograr en la programación. Por ejemplo, al mirar dentro de una biblioteca, puede llevar horas entender cómo funcionan. Las mejores herramientas que conozco sobre este propósito le permiten recorrer el código (por ejemplo, “herramientas de desarrollo de Chrome”), pero esa es una forma de muy bajo nivel para mirar el código y solo marginalmente mejor que ejecutarlo en su cabeza.

Creo que sería genial poder grabar una sección de código de ejecución en detalle y recorrerla hacia adelante y hacia atrás y ver cómo cambian los datos de un vistazo (Tenga en cuenta que esto no requeriría puntos de interrupción, solo la capacidad de navegar por todos los valores que se generaron dentro de la ejecución de su programa). Luego compare esta ejecución con otra con datos de entrada diferentes. Bret Victor tiene muchas ideas sobre este espacio.

Cualquiera que sea la herramienta que le permita hacer esto, puede parecer que será bastante complicado de construir. Sin embargo, sabemos con certeza que será necesario saber qué hace su código. Por lo tanto, una buena herramienta de inicio podría ser un registrador. Un programa que puede ejecutar cualquier código que le dé y generar una secuencia de resultados para cada declaración en el código. Esto sería similar a la función `eval` que proporcionan la mayoría de los lenguajes, excepto que devolvería una representación JSON (o et al) de lo que hizo la computadora.