Для выполнения каких задач какой язык программирования подходит?
==================================================================

 Извиняюсь за не очень хорошо сформулированный вопрос, но все же, часто слышу мнение, что каждый язык сделан под свою группу задач. С другой стороны слышал, что якобы можно программировать все и на всем, различие только в простоте и лаконичности метода выполнения задачи.  

Объясните пожалуйста, как на самом деле воспринимать языки программирования-как инструмент выполнения определенных задач, или как наоборот, как универсальный инструмент, и приведите примеры пары-тройки ЯП с их основными функциями. 

> каждый язык сделан под свою группу задач

так и есть.  

> якобы можно программировать все и на всем, различие только в простоте и лаконичности метода выполнения задачи.

Это так, но с некоторыми оговорками.   
  

Компьютер понимает один язык - машинные коды.  

Человеку этот язык крайне неудобен поэтому для удобства делаются языки более-менее понятные человеку после чего программа переводится в машинный код понятный компьютеру.  
  

Например самый низкоуровневый - ассемблер.  

Минимум абстракции близок к машинным кодам - язык очень гибкий и сделать на нем можно что угодно, но написать на нем обычный текстовый редактор вроде блокнота - это куча кода и месяцы работы.  

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

А вот всякие C#, пайтон - это уже языки более высокого уровня - писать гораздо быстрее, не надо думать о выделении памяти, и вообще пофиг что там и как под капотом. Десяток строк кода и у вас уже работает нейросеть. Но драйвер для устройства на них уже не получится написать.  
  

Ну и есть специализации - например php это язык для серверного бэкэнда для этого он разрабатывался и неплохо себя в этом показывает. Написать на нем обычное десктопное приложение затруднительно, хотя и можно, но это будет набор костылей.  

Пайтон - универсальный, подходит для написания бэкэнда, для скриптов администратора, для научных расчетов, на нем можно и десктопные приложения писать.  

C# заточен для работы в майкрософтовской инфраструктуре - если нужно написать десктопное приложение идеальный язык.  

Java - корпоративный язык.  

JS - скрипты администратора, фронтэнд. 

 bash, sql, html, mathLab - языки заточенные под определенные задачи, мало подходящие для других задач.   

Популярные языки типа python, js, java, scala, с++ -> подходят для любых задач (но с определенными сложностями, необходимы библиотеки, обертки, нужно писать много лишнего кода)  
  

вот например в баше чтоб получить список файлов - нужно ввести ls   

чтоб сделать тоже самое на JAVA - необходимо целую программу написать, строк на 10), потом ее скомпилировать, а потом запусить джава машину и передать ей этот код. Довольно геморройное занятие для такой задачи.   

----  

но нужно понимать что в томже баше простота для простых задач (типа обработки файлов и текстов), выливается чудовищную сложность для более сложных задач.   

П. С.   

если работаешь только с одним типом задач - то тебе выгодно использовать заточенный под эту задачу язык.   

Если работаешь большим количеством разнообразных задач в разных сферах, то лучше освоить и использовать один инструмент (язык) общего назначения но на высоком уровне - чем 10 специализированных инструментов на посредственном уровне.  

Я например на scala - пишу фронтэнд, бэкенд, работаю с БД, пишу скрипты вместо баша, создаю быстрые наброски прототипы (вместо питона), и запускаю теже самые прототипы в продакшен где требуется высокая производительность и многопоточная обработка данных.   

Нигде не касаюсь вообще никаких других языков. 

 js: веб (фуллстек, как в браузере, так и в качестве бекенда), если не важна производительность - десктоп ("лишняя" зависимость в виде браузера для рендеринга gui).  

C#: десктоп, сервисы (например, веб-бекенд)  

С/С++: сервисы, десктоп, системные задачи (драйверы, ОС).  
  

Сколько бы вы не хотели, но, например, на яваскрипте не написать драйвер под windows... 

 java - easy to learn hard to master  

c++ - hard to learn impossible to master  

лично я сейчас предпочитаю lua для отработки концепций, таблицы самый мощный инструмент, который я когда либо видел 

 Я думаю тебе стоит углубиться по лучше в эту тему поскольку тебе говорят довольно стандартные вещи по типу html для веб(капитан очевидность).  

Когда ты начнёшь учиться программировать ты будешь очень много гуглить (мало сказано) и понятие о языках придёт само. Поэтому стоит просто попробовать)