Хотя вы, безусловно, можете улучшить масштабирование на локальном уровне, удалив состояние, где это возможно, просто сказать «избавиться от состояния» мало что решает.Пользователь ожидает (и в основном нуждается) в том, чтобы все было в состоянии.
Эффективное масштабирование редко является вопросом избавления от состояния - это вопрос управления состоянием.Особенно в случае распределенных вычислений, это становится главным вопросом выяснения того, какое состояние должно быть реплицировано, на каких машинах они должны выполнять определенные части работы.
В этом отношении код ОО (по крайней мере,если это разумно хорошо спроектировано), это действительно очень хорошая вещь - достаточно четко определенный объект определяет практически все состояния, которые должны быть реплицированы для того, чтобы этот тип объектов работал на этой машине.
Вопреки распространенному мнению, функциональное программирование не обязательно является серьезным улучшением.Во-первых, FP не устраняет состояние (вообще).Это делает отдельные части состояния неизменяемыми, но это также не обязательно является существенным улучшением, поскольку может привести к простому удалению одной части состояния и замене ее чем-то «новым», имеющим то же имя, но другое значение.,В таких случаях неизменное состояние может быть различием без разницы.
В тех случаях, когда ОО имеет довольно существенное отличие, делается в том, чтобы сделать состояние достаточно явным, чтобы конструктор (почти) был вынужден думать о состоянии, необходимомданный объект.Это имеет тенденцию косвенно поощрять минимизацию этого состояния в значительной степени.Я должен также упомянуть, что в этом отношении слишком большое удобство может быть плохой вещью - язык, который (например) делает тривиальным генерирование кода для сериализации независимо от количества состояния в объекте, делает его намного проще дляобъект, чтобы включить больше государства.Когда / если работа программиста пропорциональна (по крайней мере частично) количеству состояний, это дает ему хотя бы небольшую поддержку для минимизации состояния.
В любом случае объекты разбиваются на довольно маленькиеидентифицируемые куски, которыми обычно довольно легко управлять.Отнюдь не усложняя распараллеливание и (особенно) распространение, это на самом деле делает это проще, если только код просто не 1013 * действительно плохо спроектирован.Конечно, ни один язык, парадигма, методология или многое другое не могут предотвратить плохой дизайн, но ОО предоставляет дизайнеру инструменты для хорошей работы и помогает существенно повысить практичность распределения и масштабирования.