Я думаю, що важливо трохи розширити цю «зворотну» чи «історичну» налагодження. Я думаю, що розуміти складні системи та поведінку в них, відтворювати "події", які роблять стан явним, абсолютно важливо.
Я хочу висловити те, що ви не самотні задаєтесь питанням, чому ця методика не так сильно застосовується сьогодні або чому пов'язані проблеми рідко чітко обговорюються.
Отже, наголосимо тут на двох дуже важливих поняттях:
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 теж). Тож люди вже сьогодні використовують ці методи, ВЕЛИКІ, щоб зрозуміти складні системи та зробити їх ще кращими. Ось чому вони використовують методи зворотної налагодження.