Максим, всё описанное ниже я пишу исходя из личного опыта, с некоторыми моими утверждениями можно поспорить :)
Так или иначе, но самая ресурсоёмкая задача, почти всегда, это работа с базой.
Несколько лет назад я делал бенчмарки Python, PHP, Node, Go.
Для меня были важны две вещи:
1 - скорость ответа сервера/кол-во запросов в секунду
2 - объём сервиса в памяти, т.к. от этого зависит стоимость ресурсов
На тесте, где сервисы не делали запросы в базу - из всех четверых лучше всего отработал Go с приличным отрывом, цифры, к сожалению, уже не помню.
Но вся эта разница сошла на нет, как только добавился всего один простой SQL запрос в базу, в таблицу с 10 строками. И на этом фоне разница по скорости ответа была меньше 10%.
Иными словами если ваш сервис работает с базой - критической разницы по скорости работы между Go/Rust/PHP/Node/Java, увы, не будет.
Но другое дело если для нас важно сколько памяти "съедает" каждый сервис.
Например у вас пошли нагрузки и вам нужно горизонтально масштабирватся, т.е. запустить, скажем 100-10000 эксемпляров вашего сервиса.
Вот тут уже становится интереснее :)
Один экземпляр Go занимал в памяти порядка 6мб, при том, что Pytho+Django порядка 60мб.
Node уже не помню сколько, но что-то близкое к Python'у.
Вот тут уже, когда серверов у вас будет много - количество серверов с Go у вас будет в 10 раз меньше :)
Знаю случаи, когда с почти 40 серверов с API на Node перешли на 2 сервера с Go.
От части по этому и еще по ряду причин, последние несколько лет я использую Go и Python.
Лично я просто в мега восторге от Go :)
Еще Go идеально подходит для написания сетевых сервисов, CLI утилит и т.д.
Например Docker, Kubernetes и еще куча всего написаны на Go.
Я делал подобные вещи на разных языках, и ни на чём, как на Go не получался такой красивый и понятный код, который при этом работает достаточно хорошо.
Про PHP, если знаете его, можете писать на нём, если не знаете - учить не советую, как минимум потому, что есть Python, на нём код куда более читабельный получается, возможностей, вакансий с нормальной з\п больше.
На C# писать не довелось, сказать о нём ничего не могу.
Писал на Java несколько лет, но она мне очень не нравится :) Особенно, когда есть Go :)
Если будете учить Java - готовьтесь к тому, что вы будете обслуживать Legacy код, или скорее ...нокод :)
Но вакансий с хорошей з/п по Java тоже много. Как минимум без денег не останетесь точно.
Rust имеет смысл использовать, когда у вас очень большая нагрузка и для вас критична latency.
Например для показа рекламы нужно ответить за 100мс иначе вашу рекламу просто не покажут.
Вот тут Rust выиагает у Go за счёт того, что у Go будут периодические "провалы" во время сборки мусора.
В остальном, по моему мнению, Rust проиграет за счёт большего времени по разработке, худшей читаемости кода.
С другой стороны, если у вас есть рабочий сервис на Node, то вместо перехода на Rust, явно буде лучше сделать просто модуль на C/C++ для Node и всё будет летать + полный контроль выделения и освобождения памяти.
Я такую схему с модулями на C/С++ не раз использовал на Perl'е.
Очень помогало особенно там, где нужно было чётко освобождать память, чтобы скрипты со временем не пухли.
Надеюсь вам это как то поможет определиться :)