Мой ответ, вероятно, не слишком расширит существующие ответы, но я чувствую, что мои два цента могут быть полезны.
Прежде всего; да, для модульности вы обычно отказываетесь от некоторого уровня времени выполнения. Написание всего на ассемблере даст вам лучшую скорость. Это сказал ...
Вы знаете YouTube? Скорее всего, это сайт с самой высокой пропускной способностью или второй после Netflix? Они пишут большую часть своего кода на Python, который является высокомодульным языком, не совсем созданным для первоклассной производительности.
Дело в том, что когда что-то идет не так, и пользователи жалуются на медленную загрузку видео, существует не так много сценариев, в которых эта медлительность в конечном итоге объясняется медленной скоростью выполнения Python. Однако быстрая перекомпиляция Python и его модульная возможность пробовать новые вещи без проверки типов, вероятно, позволят инженерам довольно быстро отладить то, что идет не так («Вау. Наш новый стажер написал цикл, который выполняет новый подзапрос SQL для КАЖДОГО результата. ") или (" О, Firefox устарел, этот старый формат кэширования заголовка; и они создали библиотеку Python для легкой установки нового ")
В этом смысле, даже с точки зрения времени выполнения, модульный язык можно считать более быстрым, потому что, как только вы обнаружите свои узкие места, вам, вероятно, станет легче реорганизовать код, чтобы он работал наилучшим образом. Так много инженеров скажут вам, что хиты с высокой производительностью были не там, где они думали, что будут (и на самом деле то, что они ДЕЙСТВИТЕЛЬНО оптимизировали, вряд ли было нужно, или даже не работало так, как они ожидали!)