> Архитектура JavaScript позволяет перееопределять
> объекты в реальном времени, а не втискиваться в узкие рамки типизации. Для больших приложений это минус. Как сделать контракт между подсистемами, развиваемыми в разных командах или даже компаниях? Как проверить, что вызывающий код прислал объект правильного типа?
А никак - только рантайм проверки, что требуемые переменные заданы в рамках пришедшего объекта. Только эта проверка очень прожорлива. Можно, конечно, положиться на авось, но обычно это выстреливает багами в самый не подходящий момент.
PS java не идеал, но динамические языки имеют еще больше минусов.