Я работаю над крупным коммерческим продуктом, сделанным на Python.Я даю очень приблизительную оценку в 5000 файлов по 500 строк в каждом.Это около 2,5 миллионов строк Python.Имейте в виду, что сложность этого проекта, вероятно, эквивалентна 10 млн. + Строк кода на других языках.Я не слышал ни об одном инженере / архитектуре / менеджере, который жаловался бы на то, что код Python не поддерживается.Из того, что я видел из нашего баг-трекера, я не вижу никаких системных проблем, которых можно было бы избежать при статической проверке типов.На самом деле очень мало ошибок возникает из-за неправильного использования типа объекта.
Я думаю, что это очень хороший академический предмет для эмпирического изучения того, почему язык, основанный на статических классах, не кажется столь критичным, как можно было быдумаю.
А насчет расширяемости.Мы только что добавили базу данных 2 поверх базы 1 в нашем продукте, оба они не-SQL.Нет проблем, связанных с проверкой типов.Прежде всего, мы разработали API, достаточно гибкий, чтобы предвидеть различную базовую реализацию.Я думаю, что динамический язык - это скорее помощь, чем помеха.Когда мы приступили к тестированию и исправлению ошибок, мы работали над ошибками, с которыми сталкиваются люди, работающие на любом языке.Например, проблемы использования памяти, проблемы согласованности и ссылочной целостности, проблемы обработки ошибок.Я не вижу, чтобы статическая проверка типов оказала большую помощь в решении этих проблем.С другой стороны, благодаря динамическому языку мы получили большую выгоду благодаря возможности вставлять код в середине полета или после простого исправления.И мы можем проверить нашу гипотезу и быстро продемонстрировать наши исправления.
Можно с уверенностью сказать, что большинство наших 100+ инженеров довольны и продуктивны, используя Python.Для нас, вероятно, немыслимо создать один и тот же продукт с использованием языка статической типизации за то же время и с тем же качеством.