Я думаю, что важно немного углубиться в эту «обратную» или «историческую» отладку. Я думаю, что понять сложные системы и поведение в них, воспроизвести «события», которые делают состояние явным, абсолютно необходимо.
Что я хочу выразить, так это то, что вы не одиноки, когда задаетесь вопросом, почему этот метод не так широко применяется сегодня или почему связанные проблемы редко обсуждаются четко.
Итак, давайте подчеркнем две очень важные концепции здесь:
1. Для понимания системы программирования полезно сделать явное состояние
2. Чтобы еще лучше понять систему программирования, воспроизведение последовательности состояний (событий) может очень помочь.
Вот некоторые источники, которые занимались проблемой и предлагали или разрабатывали решения для этой проблемы (работа с состоянием в сложных системах):
-Вне смолки, бумага: http://shaffner.us/cs/papers/tarpit.pdf
Основные идеи: избегать, изолировать или сделать состояние явным
-CQRS
http://www.cqrs.nu/
Это сочетание двух концепций: сегрегация командных запросов и источников событий. Существуют разные реализации (Java, C #, Scala). Воспроизведение последовательностей Тейта и развитие модели предметной области являются решающими частями здесь.
Если вы действительно уменьшаете масштаб и видите очень широкую картину, вы уже можете видеть, что с «ростом» функционального программирования люди уже ((не) сознательно) притягиваются к fp, потому что это делает состояние явным! Но это относится только к первому пункту: для решения второго нужен еще один концепт, который можно «свободно» описать как функциональное реактивное программирование.
Таким образом, вы можете сказать все хорошо, но кто на самом деле использует CQRS и FRP? Я бы сказал (IMO, потому что у меня нет конкретных цифр), на самом деле, многие компании просто не знают, какая у них работа, эта терминология. Может быть, вы немного погуглили и узнали от предприятий, которые используют CQRS, уже есть истории успеха. FRP тоже медленно растет в качестве примера, который я мог бы привести Netflix: http://techblog.netflix.com/2013/02/rxjava-netflix-api.html,
который только что выпустил реализацию RX, которая на самом деле основана на .NET (но имеет реализация Javascript тоже). Таким образом, люди уже сегодня используют эти методы, БОЛЬШОЙ, чтобы понять сложные системы и сделать их еще лучше. Вот почему они используют методы обратной отладки.