Хороший наброс на тайп-хинты недавно запостили на реддите. Про проблемы и сложности, а не про восхваление, как я обычно люблю. Да, покрывать тайп-хинтами старый код, написанный с расчётом на утиную типизацию, действительно может быть нетривиальным упражнением.
Когда первый раз увидел, как в typeshed
зааннотировали встроенную функцию pow()
(это возведение числа в степень), то до вечера потом ходил под впечатлением. Там описали 30 разных вариантов этой функции, и это всё ещё покрывает не все возможные кейсы. Ну что за жесть. Система типов не может нормально выразить просто гигантский пласт возможностей языка. А потом как-то подумал, что системе типов не обязательно быть идеальной, чтобы быть полезной, и полегчало. Ладно, большую часть проблем ловит. Я не так часто замечаю эти места, где система типов даёт слабину, зато тайп-чекинг каждый день спасает меня от кучи глупых ошибок. Practicality beats purity, короче. Нет, всё-таки не могу не похвалить тайп-чекинг. Полезная штука, обязательно пользуйтесь.
>>Click here to continue<<
