Языки программирования это просто синтаксический сахар к бинарному коду. Ну вот лень им набивать строчки типа 1101 0101 0100 0010 0001 1111 0101 0102, выдумывают всякие сокращения.
А некоторые настолько ленивы, что даже ленятся осведомиться о том, не изобрёл ли кто уже такой набор сокращений и пишет свои!
Сказка ложь, да в ней намёк (олсо, это заговор нибирийцев).
Это глупо, что-то уровня «молоток скоро убьёт все остальные инструменты, используй молоток, что бы закручивать шурупы, пилить доски, перерезать провода, etc. и живи счастливо».
Кто-то когда-то написал какой-нибудь язык Х. Потом прошло 10 лет, до всех дошло что тот язык крив и сложен. Решили написать что-то получше. И так оно повторяется много раз.
Во-вторых, ориентированность на специфику использования. К примеру Перл имеет самое близкое отношение к работе с регулярными выражениями.
В третьих различия в преимуществах, вытекающие из различий в архитектурах. Есть например С++, а есть Java. Первый позволяет писать более быстрые, легковесные вещи, но второй зато позволяет писать более надежно при равном количестве затраченных усилий.
Ну и легаси. Веб может быть и был бы рад спрыгнуть с JS на что-нибудь другое, но на него уже многое завязано.
Специалист из меня примерно нулевой, но постарался объяснить простым языком. Скорее всего есть некоторые неточности.
Потом прошло 10 лет, до всех дошло что тот язык крив и сложен.
Да нет. Язык сразу был кривой, потому что писался на коленке в спешке. А потом на нём уже понаписали кучу всего, его самого облепили костылями, и оставили кучу атавизмов ради обратной совместимости (которые стали фичами).
В двух словах простой пример, есть языки компилируемые наподобие Си, а есть некомпилируемые наподобие Шелл скриптов\Баш скриптов или Пайтона. Первые работают быстрее и эффективнее, но сложны в отладке и написании, вторые могут работать на лету их быстрее писать и они более гибкие.
Например написать некий обработчик текста и парсер чего-либо, можно за час на пайтоне привлекая библиотеки работы аля фреймворки с определенными вещами типа сайтов и апи, либо на баше используя curl, wget, grep и так далее.
Писать же на Си подобную вещь гораздо дольше и сложнее и бессмысленнее, хотя если речь идет об очень крупном проекте с множеством строк кода и функций и классов, то написав его на Си он будет работать эффективнее, быстрее и производительнее. Так же можно написать на еще более низкоуровневом языке, то можно получить еще больше производительности и эффективности, хотя и сложнее в отладке и написании и компилировании.
под каждую задачу свой инструмент, казалось бы зачем изобретать кучу БД если можно написать идеальную ФС и хранить все данные в одном текстовом файле... потом ты захочешь это дело оптимизировать, закэшировать запросы, потом начнёшь писать свой язык запросов, изобретёшь фреймворк, а потом когда тебя бросит девушка, чтобы забыться, ты с головой погрузишься в написание своего ЯП. и пошло, поехало...
мотивы у людей разные. начинается всё с любопытства и just4fun. просто тебе это не интересно и не нужно. а другим нужно.
зачем я изобретаю свой пека-роутер, если можно взять готовый кирпичик за тыщу деревянных? мне важно знать как оно устроено изнутри, чтобы там стояла «прошивка» которой я могу доверить свои данные и свой интернет-трафик. но я не стану изобретать какой-нибудь pfSense, а кто-то же изобрёл, хотя мог бы просто взять роутер за 15 баксов. угу?
Вот я думал, что spoofing уже не тот. Процессоры покупает в качестве сувениров, а не хранит единственный в антистатическом пакете. Несколько мониторов использует.
Но потом - в первом абзаце про ЯП «бросит девушка», и понимаешь, что не все ещё потеряно.
Это штуки сложные, у каждого языка есть ворох преимуществ и недостатков для каждой конкретной задачи. И у каждого языка есть свои ниши задач. Например, писать сайт на C - глупая затея. Такая же глупая, как пытатся программировать микроконтроллеры на PHP.
Со временем стеки технологией становятся неоспоримой базой в своих нишах. Потому что они уже хорошо протестированы, обкатаны, много лет используются бизнесом и все знают, что с ними точно всё нормально. Это создаёт инерцию как для прихода в нишу новых технологий, так и новых языков. Просто потому что для бизнеса это риски и рискуют только самые смелые, в основном всякие стартаперы.
У некоторых языков нет ниши и нет серьёзной причины появления. В чём-то они лучше других и на них можно писать, почему нет. Просто авторы решили сделать что-то полезное.
Язык - это инструмент. Поэтому закономерно, что появилось много разных инструментов под разные задачи.