В большинстве других объектно-ориентированных языков. было бы святотатством, чтобы каждая функция получала единый ассоциативный массив объектов, а не перечисляла каждый в сигнатуре метода. Почему же это приемлемо и обычно используется в большинстве популярных фреймворков для обоих этих языков?
Есть ли какое-то обоснование, не требующее кратких сигнатур методов?
Я вижу в этом преимущество: API может оставаться неизменным по мере добавления новых дополнительных параметров. Но Javascript и PHP уже допускают дополнительные параметры в своих сигнатурах метода. Во всяком случае, похоже, что Java или другой язык OO выиграют от этого больше... и все же я редко вижу этот шаблон там.
Что дает?