Creo que es importante ampliar un poco más esta depuración "inversa" o "histórica". Creo que comprender sistemas y comportamientos complejos en ellos, reproducir "eventos" que hacen explícito el estado es absolutamente crucial.
Lo que quiero expresar es que no está solo preguntándose por qué esta técnica no se aplica tanto hoy o por qué los problemas relacionados rara vez se discuten claramente.
Así que enfaticemos dos conceptos muy importantes aquí:
1. Para comprender un sistema de programación es útil hacer explícito el estado
2.Para comprender aún más un sistema de programación que reproduzca secuencias de estado (eventos) puede ayudar mucho.
Aquí hay algunas fuentes que abordaron el problema y propusieron o diseñaron soluciones para el problema (que trata el estado en sistemas complejos):
- Fuera del bit de alquitrán, papel: http://shaffner.us/cs/papers/tarpit.pdf
Ideas principales: evitar, aislar o hacer explícito el estado
-CQRS
http://www.cqrs.nu/
Esta es una combinación de dos conceptos: segmentación de consultas de comandos y aprovisionamiento de eventos. Existen diferentes implementaciones (Java, C #, Scala). La reproducción de secuencias de Tate y la evolución de un modelo de dominio son las partes cruciales aquí.
Si realmente alejas y ves la imagen muy amplia, ya puedes ver que con el "aumento" de la programación funcional, la gente ya está ((inconscientemente) atraída por fp porque hace que el estado sea explícito. Pero eso solo trata con el punto uno, para abordar el segundo necesita otro concepto que podría describirse "libremente" como programación funcional reactiva.
Entonces, podría decir todo bien, pero ¿quién usa realmente CQRS y FRP? Yo diría (IMO porque no tengo números concretos) en realidad muchas compañías es solo que no saben que el trabajo que hacen tiene esta terminología. Tal vez buscas un poco en Google y escuchas de empresas que usan CQRS, ya hay algunas historias de éxito. FRP también está aumentando lentamente como ejemplo que podría darle a Netflix: http://techblog.netflix.com/2013/02/rxjava-netflix-api.html
que acaba de lanzar una implementación de RX que en realidad está basada en .NET (pero tiene una implementación de Javascript también). Entonces, la gente ya está usando estas técnicas hoy, EN GRANDE, para comprender sistemas complejos y mejorarlos aún más. Por eso utilizan técnicas de depuración inversa.