Pull to refresh

Comments 5

Очень правильная концепция — отделить то что нужно для работы самому компьютеру от того, что по сути нужно другим людям. Интерпретатор прекрасно отработает без всякой информации о типах. Отлично. Теперь сбоку прикручиваем инструмент, который дает всем этим удобно пользоваться людям. И это мне кажется куда как более грамотно, чем хватать программиста за руки.
Тут вопрос в надежности гарантий. Грубо говоря, если программа на С++ компилируется — вы уже знаете, что там не пытаются складывать числа со строками, или пихать неподходящие данные в словарь. Т.е. у вас уже есть гарантии до запуска программы. Конечно, эти гарантии не абсолютно надежные, из-за void* и dynamic_cast/reinterpret_cast. Но есть языки, где такие приведения типов исключены.

А в случае с динамическими языками — такую гарантию получить в принципе невозможно из-за проблемы остановки.

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

Если ожидается, что аргумент может быть одним из нескольких типов, то как эти типы указать в аннотациях?
Sign up to leave a comment.