"Великие империи достигают своего расцвета и неизбежно обращаются в руины". Знаете, откуда цитата?



Думаете, что-то там по философии или истории? А вот и нет. Это из книги по шаблонам проектирования. О чем тут речь? Дело в том, что при создании программного продукта, обслуживающего бизнес, нужно планировать как именно рабочие процессы должны быть выделены в соответствующие сущности и абстракции, чтобы работа с моделями данных соответствовала интересам заказчика. Надо учитывать, что мир меняется, на уолл-стрит бардак и разрабатываемая система должна быть гибкой, способной реагировать и приспосабливаться. Когда разработчиков, работающих над одним и тем же приложением, станет много - все они будут ломать голову над тем, как им не мешать друг другу. И тогда вводятся сущности, которые невозможно реализовать на уровне кода, а только на уровне человеческих договоренностей - вводятся конвенции и соглашения.



Делается это для простоты, предсказуемости. Хорошо, разработали конвенции, переписали какие-то участки приложения. И вот все вроде как хорошо, приложение решает задачи, но одна проблема осталась - проблема версионности и ее следствие - ОБРАТНАЯ СОВМЕСТИМОСТЬ. Каждый последующий релиз, привносящий новые изменения, может поломать какую-то внутреннюю логику, порушить поведение, не лежащее на поверхности (этот абзац уже чересчур зануден, но по-другому не получается передать мысль).



А теперь представим, что наше приложение живет годы, дестятилетия. Пережит заказчик, его бизнес-империей правит сын, у него свое ВИДЕНИЕ. Поколение одних разработчиков сменяется другими, конвенции и соглашения забыты, новые молодые и дерзкие поколения разработчиков-нигилистов не видят смысла в этой архаике. Новые релизы несовместимы с грузом накопленных изменений и внутренних просчетов в архитектуре - что неудивительно, приложение писалось давно и задачи стояли другие. Кто виноват? Что делать?



Проблема обратной совместимости есть и в биологии. У некоторых рептилий код ДНК гораздо больше человеческого - он содержит кучу "некодирующей информации", которая досталась от предыдущих эволюционных экспериментов. Она просто лежит мертвым грузом (РНК ее игнорит при парсинге) - природа не умеет рефакторить. Но природа и не ставит перед собой задач, заказчик молчит. Как результат - 99.9% видов, что когда-либо существовали - вымерли. Проблема обратной совместимости не стоит потому что проблемы нет. Нет вида - нет и проблем.



Шпенглер в "Закате Европы" противопоставил КУЛЬТУРУ ЦИВЛИЗАЦИИ. Примерно так: в начале всего общины, проживающие на некоторой территории и имеющие общий язык и историю вступают в интенсивный обмен идеями, предметами материального и нематериального мира - и таким образом порождают КУЛЬТУРУ. Примеры КУЛЬТУР - египетская, вавилонская, индийская и.т.д. Потом эта КУЛЬТУРА достигает пика развития, сияет ярко - а потом стареет и умирает. Этот упадок Шпенглер называет ЦИВИЛИЗАЦИЕЙ - забронзовевший, окастенелый вариант КУЛЬТУРЫ. Проще говоря, КУЛЬТУРА - это пирамиды, это Гете, это Моцарт а ЦИВИЛИЗАЦИЯ - это когда "вилку держи в левой а нож в правой".



Почему культуры обречены превращаться в цивилизации?

Я думаю, это проблемы обратной совестимости. Между отцами и детьми.

Первые строят культуру. Конвенции и соглашения.

Потом расцвет. Потом упадок. Бронзовение. Культура мумифицируется. Возникают комические симулякры былого (за которые можно и умереть) которые агрессивно и по-глупому навязываются.