Я веб-разработчик, работаю 5 лет, и за это время успел решить много разных задач и создать множество разных решений. Я использовал для этого 3 основных языка: PHP, JavaScript и Python. Раньше я думал, что нужно выбрать только одну… лучшую… и совершенствовать свои навыки в ней. Но со временем я понял, что эти 3 языка действительно хороши. И не нужно выбирать только один, потому что эти 3 языка хороши в своей области и я понял все плюсы и минусы каждого языка. И теперь я понимаю, какую проблему каждый язык решает лучше. Это просто мой опыт и мои мысли. Я не думаю, что это абсолютно правильно. Это именно то, что я нашел для себя, и для меня это прекрасно работает. Это не сравнение классическим способом, это не разговор о производительности или архитектуре языка, это просто разговор о том, что я предпочитаю и что мне нравится при использовании этих языков на бэкенде для моих приложений.

ООП.
Когда вы создаете большое приложение, в котором много компонентов и множество взаимосвязей между ними — ООП — отличный способ сделать его понятным и простым. ООП помогает сделать красивый и очень удобный код, когда простой функциональный подход превратит его в нечитаемый ад. Когда я понимаю, что мне нужно создать такое приложение, я всегда выбираю PHP. Там база ООП идеальна… правда. Все эти абстрактные классы, трейты, защищенные/приватные свойства. Вы можете без проблем реализовать все шаблоны проектирования и все возможные архитектурные решения. ООП в PHP очень гибкий и удобный. У меня нет таких ощущений, когда я работаю с JS, и я не чувствую ничего подобного, когда работаю с Python. У них обоих есть ООП, но это что-то «пластмассовое».

Синтаксис.
А… здесь я могу сказать, что если кто-то спросит меня, какой лучший синтаксис я когда-либо видел, я отвечу — Python. С этой стороны он действительно идеален. Синтаксис циклов for и списков — вершина мастерства! Кроме того, вы можете проверить, есть ли элемент в массиве, просто используя синтаксис `if value in array:`, для этого не нужно вызывать функцию. Все операции, которые вы используете очень часто, вы можете сделать с помощью стандартной функции синтаксиса. Это действительно очень удобно. Чтобы инициировать переменную, вы пишете: new_variable = ‘некоторое значение’. Не нужно использовать `$`, `var`, `let`, `;`… ничего. Нет `{}`, меньше `()`. Так что здесь Python абсолютно номер один.

Работа с ОС.
В Python есть все возможные инструменты для работы с функциями операционной системы. Я думаю, что Python — это новый Bash. Вы можете легко запустить команду, работать с процессами, средами, файлами, PIPE и всем, что возможно. Все функции ОС доступны в Python. Я пытался использовать PHP для этих целей — это было ужасно =D

Настройка и запуск.
«npm init» + «npm start» + несколько строк кода — и вот уже рабочий сервер, готовый обработать все, что вы попросите. Можете ли вы найти что-нибудь проще? =D Так что в этой категории я отдам приоритет JavaScript (Node.js). Вам не нужно устанавливать Apache/Nginx. И это здорово. Также есть готовый модуль для Node.js для любой существующей проблемы. Так что вам не нужно писать тонны кода. Просто установите и используйте. Вы можете собрать свое приложение из готовых модулей, как пазл. Конечно, можно сделать то же самое и для PHP и для Python, но это не так просто, как для Node.js

3d side библиотеки
В Python и PHP , вы можете легко написать все, используя только основные библиотеки и функции. В JS все сообщество использует эту стратегию: для каждой задачи — есть готовый модуль и не надо создавать свой. Иногда создание JS-приложения выглядит как создание вещей из Lego. И вы не всегда можете управлять и видеть все, что происходит в вашем приложении… это не очень хорошо для больших проектов.

Асинхронность.
Если вам нужно создать интерактивные веб-приложения, которые будут делать несколько вещей одновременно или будут иметь обработчик событий в реальном времени — Node.js будет очень хорошим выбором для этого. Он позволяет создавать асинхронный код из коробки и работает очень просто. Вам просто нужно понять, что для `async…await` работают обещания и обратные вызовы, и все. Это отличная, уникальная особенность, отличающая его от других языков.

Краткое содержание... или как я их использую.

Каждый из этих языков может решить любую проблему. Но насколько я понимаю некоторые задачи с одним языком решаются гораздо быстрее и проще, чем с другим. Итак, вот несколько основных ситуаций, в которых я использую свои любимые языки:
-Системные утилиты, серверные скрипты и разные скрипты, которые работают с ОС или внешними приложениями — полностью Python и только Python;
- Большое веб-приложение, которое имеет много компонентов и нуждается в управлении связью между ними - PHP, из-за отличной системы ООП, которую я люблю;
- API, быстрые небольшие приложения или прототипы, много сервера — Node.js. Очень быстрый в разработке и простой в обслуживании.

Я понимаю, что все сказанное это мое субъективное мнение и оно очень поверхностно, но это то, чему научились и чем пользуемся сейчас. И это понимание иногда очень помогает мне в работе. Надеюсь, вы найдете его полезным.