По хорошему любой нормальный язык программирования (ЯП) можно применять в любой сфере, однако каждый ЯП изначально создавался под определенные цели и задачи, которые он решает лучше, чем другие.
Именно по этому я опишу лишь изначальное предназначение того или иного ЯП:
1) для создания скриптов на странице в браузере (FRONTEND), на стороне клиента: JavaScript (собственно альтернатив нет, только различные компиляторы в него, даже WebAssembly, это всего лишь его условный "байт-код").
Раньше можно было еще подключать Java-аплеты и Flash(ActionScript), но эти технологии нынче мертвый груз. Еще был VBScript, но он работает сейчас разве что в IE, так что считайте его так же мертвой технологией.
Как альтернатива есть только экспериментальные разработки от google и firefox, но они не кроссбраузерные.
Еще есть различные прекомпиляторы, которые транслируют код на другом ЯП в JavaScript. Самые известные это TypeScript и CoffeeScript.
2) для генерации страниц (BACKEND) на стороне сервера:
- PHP (Либо в составе CMS-ки, либо в паре с фреймворками Laravel или Yii, на голом PHP сейчас никто не пишет)
- Node.js, по факту тот же JavaScript, только на стороне сервера, и с куцей дополнительного функционала, который не работает в обычном JS.
- Python + django (без этого фреймворка не используется в этом направлении)
- Ruby on Rails (на самом деле это самостоятельный фреймворк, который больше требует изучения того, как правильно написать команды генерации макетов, и дальнейшей их настройки, нежели программировать на Ruby)
- Asp.Net ( собственно, это стек технологий Framework .Net, т.е. программировать можно на любом компилируемым в .Net ЯП, наиболее известные это C#, F#, VB.NET, и другие)
- Java (но честно говоря не самый лучший вариант для Backend)
3) мододеланье для игр, или же подключаемые скриптовые ЯП в любое приложение:
- Lua (собственно он прочно занял эту нишу, альтернативы чаще всего менее удобны или менее производительны, и гораздо сложнее в освоении обычным игрокам)
- JavaScript (но куча мороки как с внедрением во внутрь, так и исправления возникающих багов)
- VisualBasic (отдельная сложность внедрения, но более стабильная работа, чем с JS)
Есть еще много различных экзотических вариантов, но они малоизвестны, потому кто ищет, тот их найдет.
4) Создание игр:
- Unity (C#)
- Unreal Engine (C++)
- C++
- Java
- Swift
- Lua (есть разработки в этом направлении с полноценным фреймворком схожим с Unity)
Выше указаны только наиболее популярные варианты, так как пишут на любом ЯП, для многих есть свои фреймворки и готовые инструменты, вопрос удобства, документации и функциональности, например есть малоизвестный движок Castle Game Engine (Lazarus/FreePascal).
5) Языки для прототипирования алгоритмов, написания различных утелит и быстрых скриптов:
6) Языки на которых чаще всего используют нейросети:
7) ЯП для сложной математики:
есть еще много других вариантов, но они малоприменимы
8) Оффисное скриптование (Word, Excel, Access, PowerPoint и др.):
VisualBasic (Других вроде нет)
9) Базы данных:
- FoxPro (Возможно на нем уже никто и не программирует)
- 1С (Ну это отдельный АД, но зато хорошо платят, но если цель не деньги, лучше в этот омут не нырять)
- SQL (Он не самостоятельный ЯП, но идет всегда в составе реляционных БД, и часто из других ЯП все запросы для получения данных пишутся на нем, исключение только NoSql БД, там чаще всего JS)
10) Для написания больших и сложных кроссплатформенных программ, с упором на скорость работы и уменьшения потребления памяти:
- C
- C++
- C# (и другие .Net ЯП)
- Java
- Go
- Delphi XE
- Lazarus/FreePascal
Есть еще Assembler (FAsm, Nasm), но это для тех кто хочет окунуться во все тяжкие.
Упомяну так же, что на любом ЯП из перечисленном выше можно написать все что угодно. Даже такие нелепые заявления как десктопное приложение на PHP не фантазия, другое дело удобство этого ЯП для этой задачи ставиться под вопрос. Еще пример из этой же оперы backend на assembler-е, есть даже статьи на хабре о реальной реализации такой связки.
Потому упомяну старую фразу "На языке X написать можно все, что угодно", но зачем заниматься сложностями, когда можно сразу выбрать более приспособленный для этой задачи ЯП?