Как не существует универсальных ответов на все вопросы, универсальных инструментов, рецептов здоровья или успеха, так и не существует универсальных языков программирования.
С точки зрения обычной жизни, язык программирования - это инструмент, подходящий или не подходящий для решения конкретных задач.
Как бы ни был хорош или удобен тот или иной язык программирования, всегда найдется круг задач, для решения которых он не подходит.
Вот вам несколько тезисов, которые я постарался изложить простым языком без сложных технических деталей:
Python, как интерпретируемый язык, совершенно не подходит для задач, где критически важна производительность: ни один интерпретатор не сможет обогнать по скорости нативный код, созданный для выполнения на конкретной платформе. Интерпретатор - это переводчик в реальном времени: послушайте, как иногда смешно тормозят переводчики-синхронисты, когда переводят речь иностранцев на русский. Им тяжело!
Python изначально создан быть кросс-платформенным языком. А это значит, что его интерпретатор еще хуже оптимизирован, в нём еще больше прослоек и уровней, через которые вашему коду приходится "пробиваться" до целевой архитектуры. Представьте, что переводчик-синхронист переводит в уме с английского на китайский, с китайского на диалект португальского, а потом уже с него - на русский. И всё это в реальном времени!
Python не может напрямую работать с оперативной памятью и устройствами ввода-вывода, а это значит, что на нём совершенно невозможно написать ничего, что могло бы быть драйвером аппаратного устройства, кодировщиком аудио/видео потоков, быстрым алгоритмом шифрования или чего-то подобного. А если ваша целевая архитектура содержит какую-нибудь вкусную "фичу", вроде расширенных инструкций MMX/SSE на Intel, то про её использование можете смело забыть: это так не работает.
В конце концов, Python, будучи вынужденным платить за универсальность производительностью, так и не стал популярным языком, на котором бы успешно разрабатывались игры и другие приложения, работа которых связана с графической подсистемой и 3D.
Тем не менее, Python хорош тем, что прост в освоении, вполне универсален для своего круга задач, и поддерживается огромным комьюнити вокруг себя. Думаю, у него большое будущее!
Да, все так и с моей точки зрения
Язык программирования (ЯП) нужно выбирать исходя из задач. Не стоит использовать один ЯП - как универсальное решение всех проблем. В каждой предметной области есть свои тонкости.