Мой вопрос больше ориентирован на Python, но также может касаться JavaScript или других языков сценариев.
Я обычно разрабатываю со статически типизированными языками (Java, C++, ActionScript, ...).
Мне нравится время от времени использовать Python, и мне также иногда нужно использовать JavaScript. Это языки с динамической типизацией. В этом нет ничего плохого, но обычно у меня много головной боли, чтобы понять, какие параметры нужны в функции или в методе. Это происходит, даже если это мой собственный код с некоторыми строками документации! Может быть, потому что глаз должен смотреть куда-то еще, кроме определения функции.
Конечно, ответ должен быть в документации. Но иногда это вообще неясно, или из-за использования утиной печати документацию может быть трудно написать ("первый параметр - это функция, которая должна иметь метод quack() и перья (arg) метод, где arg — строка"). Чего бы мне очень хотелось, так это своего рода описания аргументов внутри самого языка (даже если бы оно было необязательным, как в ActionScript).
Каковы ваши наилучшие методы однозначного описания аргументов функции/метода?
Как насчет создания специального декоратора (при использовании Python), целью которого будет проверка типа данных, когда мы их используем (но поскольку он будет использоваться во время выполнения, а не во время записи, в любом случае, какой в этом смысл)?
Как вы думаете, это не должно быть проблемой? Что выполнение большего, чем текущая строка документации, может сбить с толку разработчика, или что мой разум слишком ориентирован на статическую типизацию?