Для выполнения каких задач какой язык программирования подходит?
bash, sql, html, mathLab - языки заточенные под определенные задачи, мало подходящие для других задач. 
Популярные языки типа python, js, java, scala, с++ -> подходят для любых задач (но с определенными сложностями, необходимы библиотеки, обертки, нужно писать много лишнего кода)
вот например в баше чтоб получить список файлов - нужно ввести ls 
чтоб сделать тоже самое на JAVA - необходимо целую программу написать, строк на 10), потом ее скомпилировать, а потом запусить джава машину и передать ей этот код. Довольно геморройное занятие для такой задачи. 
----
но нужно понимать что в томже баше простота для простых задач (типа обработки файлов и текстов), выливается чудовищную сложность для более сложных задач. 
П. С. 
если работаешь только с одним типом задач - то тебе выгодно использовать заточенный под эту задачу язык. 
Если работаешь большим количеством разнообразных задач в разных сферах, то лучше освоить и использовать один инструмент (язык) общего назначения но на высоком уровне - чем 10 специализированных инструментов на посредственном уровне.
Я например на scala - пишу фронтэнд, бэкенд, работаю с БД, пишу скрипты вместо баша, создаю быстрые наброски прототипы (вместо питона), и запускаю теже самые прототипы в продакшен где требуется высокая производительность и многопоточная обработка данных. 
Нигде не касаюсь вообще никаких других языков.
js: веб (фуллстек, как в браузере, так и в качестве бекенда), если не важна производительность - десктоп ("лишняя" зависимость в виде браузера для рендеринга gui).
C#: десктоп, сервисы (например, веб-бекенд)
С/С++: сервисы, десктоп, системные задачи (драйверы, ОС).
Сколько бы вы не хотели, но, например, на яваскрипте не написать драйвер под windows...