Д
я возможно заблуждаюсь, но предполагал что написание такого описания сродни написанию сначала интерфейсов в ооп парадигме. вероятно это не является прототипированием.
наавсчет второго
когда я был новичком, идешные подсказки в статических языках мне очень сильно помогали разобраться в том что я пишу правильно, а что нет, в отличии от гиганских ошибок в динамических языках, которые вгоняли в ступор.