Привет!
Предложу один подход, может быть он для кого-то очевиден, но мне бы в своё время такое помогло. При этом надо понимать, что выбор может иметь разную цель - либо вам нужно выбрать язык для конкретного проекта или применения, либо вы выбираете язык для изучения, чтобы пополнить свои навыки программиста.
Неправильно выбирать язык по таким критериям как: самый популярный на TIOBE, самый быстрый, самый простой в освоении, самый высокооплачиваемый, самый "правильный ООП", самый "без побочных эффектов" и т.д. Игнорировать эти вещи тоже не стоит, но уже после основного критерия.
Самое главное, по-моему, не столько свойства самого языка в вакууме, сколько реальный продукт, который можно с его помощью выпустить. Поэтому очень смешно смотреть видео типа "Возвращаюсь к Go! Rust оказался медленнее!" Давайте разберём пару примеров.
Вот есть PHP. Что на нём можно делать? Сервера. Больше ничего. Если это именно то, что вы хотите, то вперёд. При этом можно также рассмотреть его прямых конкурентов в этой области и выбрать более подходящий язык по другим критериям - Go, например, или Python, или там Java, и остановиться на каком-то из них. Но сравнивать их с PHP нужно будет именно с позиции написания сервера. Т.е. если вы выбираете язык для того, чтобы писать сервер, вам никак не поможет тот факт, что в Python есть много готовых библиотек для научных вычислений. Если сравнивать абстрактно, то это будет преимуществом Python перед PHP, а если применительно к написанию сервера - не будет иметь вообще никакого значения.
Теперь другая задача. Допустим, вы хотите прокачаться как программист. Вы уже знаете какой-то из "скриптовых" языков (JS, Python, Ruby, etc) и хотите разобраться с "правильным" ООП и освоить язык со строгой типизацией. У вас есть несколько популярных вариантов - Java, C# , Dart, Kotlin. И здесь я бы тоже не упирался именно в правильность ООП и другие свойства собственно языка. Потому что отличия, конечно, есть, и какой-то из этих языков в чём-то лучше, а в чём-то хуже, но разница, на самом деле, почти незаметна. А вот в том, для чего эти языки применяются, различия довольно большие. И здесь нужно выбрать, что вам реально полезнее - умение писать сервера и нативные Android-приложения на Java (Kotlin туда же), либо те же сервера и уже кросплатформенные (но не нативные) приложения для мобильных устройств и GUI-приложения для Windows на C# , либо полная кроссплатформенность Dart с использованием Flutter, но никаких серверов (теоретически никто не мешает, но пока что на вас будут странно смотреть, это ещё не в тренде).
Скриптовые языки тоже, на самом деле, не так уж сильно отличаются друг от друга, чтобы на основе каких-нибудь более правильных лямбда-функций делать выбор. Хочешь заниматься машинным обучением - бери Python, хочешь писать GUI под Web и под любую другую платформу (да, "ненативно", штош) - бери JS. Потому что они для этого просто лучше подходят, у них есть подходящие api, библиотеки и т.п. И тот факт, что у одного скобочки, а у другого отступы, этого не изменит.
Про Хаскель ничего не буду говорить, и не просите.