Фреймворк это готовая стандартизированная среда разработки, которая решает конкретные задачи.
Почему их много? Это странный вопрос, тк как фреймворки созданы для автоматизации, ускорения разработки, стандартизации.
В какой-то момент развития интернета компания "О-О" имеющая около 100 разработчиков и делающая однотипные действия решила что нужно это всё упорядочить да и задокументировать, зачем каждый раз писать велосипед.
Люди приходят и уходят, продукт растёт, поддержка становится всё сложнее и сложнее.
"0-0" Решила, а сделаем ка из наработок структурированные готовые решения ( У каждой компании есть множество наработок и готовых решений раскиданных по проектом ). Сделала, Добавила возможность к более гибким изменениям. Всё.
Получили готовый продукт. Который решает задачи, быстро.
Зачем тогда его делать публичным?
Как говорилось разработчики уходят и приходят. И если нужно каждого обучать как только он приходит в компанию, уф, затратыы... Компании это не любят.
Выкидывают свою эдакую в свет и просят чтобы все кто хочет устроится смотрели шо да как в этой эдакой работает.
А дальше называется естественный отбор.
"0-0" была не 1 такая умная, кто создал свой фреймворк да и выкатил в свет.
Люди потрогали. Посмотрели. И путём эволюции отобрали то что удовлетворяет требованиям.
- Легко в обучении
- Быстро в написании
- Модернизируемо
Послесловие:
Фреймворк это логичная ступенька эволюции разработчика который хочет повысить свою производительность.
Блокнот->Текстовый редактор->IDE
HTML(Сначала верстаем всё ручками) ->emmet(О какая штука оказывается)->Препроцессоры.
....