beduin01: Библиотека обычно расширяет язык программирования, добавляя новые функции, реализуя некие алгоритмы, или делая удобные обертки над существующим функционалом, как в случае с jQuery. Но не диктует программисту как он должен строить свое приложение.
Фреймворк же наоборот, не расширяет язык (хотя может добавлять новые функции), но дает программисту некий каркас и заготовку для приложения, диктуя определенный подход в разработке.
beduin01: Бывают фреймворки в которых все включено, в том чсле работа с DOM и AJAX. Например ExtJS, Dojo, YUI. Но Angular использует облегченную версию jQuery для работы с DOM.
beduin01: Ну представьте себе, что Вам нужно написать приложение для риэлторов какой-нибудь компании. Приложение должно максимально напоминать настольное, поэтому пишем SPA. Перед Вами встает 2 варианта:
а) Запилить все на старом добром jQuery, с кучей костылей и велосипедов. Через месяц компания нанимает второго программиста и увидев сие творение он увольняется на следующий день )
б) Запилить это на AngularJS. Через месяц компания находит второго специалиста по Angular и читая код он хотя бы понимает 50% от его объема )
beduin01: на jQuery не пишут проекты, а работают в DOM.
К примеру нужно показать поле поиска при клике на иконку с лупой. На jQuery это делается в 1 строку и будет работать во всех браузерах. А angular для этого слишком избыточен.
beduin01: а вот если у тебя десятки объектов (к примеру корзина, сообщения, лайки на товарах), и все они должны между собой взаимодействовать, то на jquery придется писать очень много кода, по сравнению с angular