Вопрос некорректно поставлен, на уровне "кто лучше папа или мама". Все зависит от задач, которые предстоит решать. За свою долгую жизнь программиста я работал на десятке разных языков. Вот некоторые наблюдения.
1.
Хороший, разработанный лучшими умами язык программирования может проиграть в соревновании языку со многими шероховатостями. Так прекрасный язык Алгол проиграл Фортрану, сошел со сцены, а Фортран продолжает жить, поскольку это любимый язык физиков, на котором написана масса полезного для них кода.
Для начального обучения лучшим долгое время был язык Паскаль. Сейчас он уходит и школа переходит на язык Python. У языка Python с позиций надежного программирования есть серьезные недостатки, но для школьных задач он прекрасно подходит, позволяя писать простые, короткие, понятные программы. Python получил широкое распространение среди профессионалов, благодаря тому, что для Python написано огромное число пакетов для самых важных направлений ИТ. Хотя сами пакеты пишутся не на Python, но язык позволяет легко и просто "склеивать" все эти пакеты в единое целое.
- Для начального освоения ООП разумно выбрать язык Java или C#. Язык С++ для этих целей вряд ли подходит из-за своей сложности, но для профессионального программирования, когда требуется создавать сложные и эффективные проекты - это один из лучших языков.
4.
Настоящий программист является полиглотом, он готов работать на том языке программирования, который требуется в конкретных условиях. Хороший программист на любом языке программирования создаст достойный программный продукт. Плохой программист нна любом языке программирования создаст продукт низкого качества.
5
Самым важным языком для программиста верхнего уровня является естественный язык - язык, на котором он мыслит алгоритмически, проектируя соответствующие структуры данных и алгоритмы их обработки. На этом уровне не менее важно владение математическим языком.