Как любит один человек спрашивать и отвечать сам же на собеседованиях:
Разница между фреймворком и библиотекой в том, что библиотеке ты говоришь как делать, а фреймворку - что.
Как по мне, человеческими словами, фреймворк - это разросшаяся библиотека, которая начинает требовать и затачивать приложения под себя.
Обычно у нее много стандартных велосипедов, которые раньше писались ручками.
Берешь готовый велосипед и рассаживаешь на него своих личных пассажиров. Заодно немного тюнишь - педали меняешь, руль поднимаешь, через стандартные разъемы крепишь навесное какое-то. Естественно, фреймворк это все позволяет крепить и описывает как крепить.
В некоторые моменты фреймворк начинает быть тесным(или не той формы) и его начинают хачить, искривляя пространство под конкретную потребность )
В итоге, вместо того чтоб заниматься низкоуровневыми операциями, ты берешь нужную функциональность фреймворка и КОНФИГУРИРУЕШЬ его под себя. Вместо того чтоб писать код, который совершить какую-то операцию напрямую.
Added after 1 minutes:
Caballero:фреймворк - это типа когда умные люди уже съели собаку, и изобрели велосипед за тебя.
Ты ему просто говоришь "ехать, нах" и он едет.
Очень удобно, пока не понадобится "ехать боком" а он не умеет.
Вот сюка. Я тут пишу, аж уписываюсь... Отлучился, а тут уже
Если есть гриб «груздь», то должен быть и гриб «радоздь».