На таком языке, как (поскольку я сейчас на нем работаю) PHP, который поддерживает процедурные и объектно-ориентированные парадигмы.
Есть ли хорошее эмпирическое правило для определения, какая парадигма лучше всего подходит для нового проекта? Если нет, как вы можете принять решение?
Все зависит от проблемы, которую вы пытаетесь решить. Очевидно, что вы можете решить любую проблему в любом стиле (процедурном или OO), но обычно вы можете выяснить на этапах планирования, прежде чем приступить к написанию кода, какой стиль вам больше подходит.
Некоторым людям нравится писать варианты использования, и если они видят множество одних и тех же существительных, появляющихся снова и снова (например, человек снимает деньги из банка), то они идут по маршруту OO и используют существительные в качестве своих объектов. И наоборот, если вы не видите много существительных и на самом деле происходит больше глаголов, то процедурным или функциональным может быть путь.
У Стива Йегге есть отличный, но длинный пост, как обычно, который затрагивает эту тему с другой точки зрения, что также может оказаться полезным.
Если вы делаете что-то для себя, или просто делаете прототип, или тестируете идею ... используйте свободный стиль, который вам предлагают языки сценариев.
После этого: всегда думайте об объектах, постарайтесь организовать свою работу вокруг ОО-парадигмы, даже если вы пишете процедурные вещи. Затем выполните рефакторизацию, рефакторизацию, рефакторизацию.