Насправді ці терміни можуть означати дуже багато різних речей залежно від контексту, в якому вони використовуються.
Наприклад, на Mac OS X рамки - це просто бібліотеки, упаковані в комплект. У комплекті ви знайдете фактичну динамічну бібліотеку (libWwhat.dylib). Різниця між голою бібліотекою та основою на Mac полягає в тому, що рамка може містити кілька різних версій бібліотеки. Він може містити додаткові ресурси (зображення, локалізовані рядки, файли даних XML, об’єкти інтерфейсу тощо), і якщо рамка не випущена для загального користування, вона зазвичай містить необхідні .h файли, необхідні для використання бібліотеки.
Таким чином, у вас є все, що знаходиться в одному пакеті, вам потрібно використовувати бібліотеку у вашій програмі (бібліотека C / C ++ / Objective-C без .h файлів є досить марною, якщо ви не пишете їх самостійно відповідно до деякої бібліотечної документації), а не купа файлів для переміщення (пакет Mac - це лише каталог на рівні Unix, але інтерфейс інтерфейсу розглядає його як єдиний файл, майже так, як у вас є файли JAR на Java, і коли ви клацаєте по ньому, ви зазвичай не бачите що знаходиться всередині, якщо ви чітко не вибрали для показу вмісту).
Вікіпедія називає рамки "казковим словом". Він визначає програмне забезпечення як
Програмне забезпечення - це повторно використовувана конструкція для програмної системи (або підсистеми). Програма програмного забезпечення може включати програми підтримки, бібліотеки кодів, мову сценаріїв або інше програмне забезпечення, яке допоможе розробити і склеїти різні компоненти програмного проекту. Різні частини структури можуть бути відкриті через API.
Тож я б сказав, що бібліотека - це саме те, що "бібліотека". Це сукупність об'єктів / функцій / методів (залежно від вашої мови) і ваша програма "пов'язує" проти неї і, таким чином, може використовувати об'єкти / функції / методи. Це в основному файл, що містить код, який можна повторно використовувати, і який зазвичай можна ділитися між декількома додатками (вам не потрібно писати один і той же код знову і знову).
Рамкою може бути все, що ви використовуєте в розробці додатків. Це може бути бібліотека, колекція багатьох бібліотек, колекція сценаріїв або будь-який фрагмент програмного забезпечення, необхідний для створення вашої програми. Рамка - це дуже неясний термін.
Ось стаття про якогось хлопця щодо теми " Бібліотека проти рамки ". Я особисто вважаю, що ця стаття є дуже суперечливою. Неправильно, що він там говорить, однак він просто вибирає одне з декількох визначень фреймворку і порівнює це з класичним визначенням бібліотеки. Наприклад, він каже, що вам потрібна основа для підкласифікації. Дійсно? У мене може бути визначений об'єкт у бібліотеці, я можу зв’язатись із ним та підклас його у своєму коді. Я не бачу, як мені потрібні «рамки» для цього. Деяким чином він швидше пояснює, як сьогодні використовується термін фреймворк. Це просто перекручене слово, як я вже говорив раніше. Деякі компанії випускають просто звичайну бібліотеку (у будь-якому сенсі класичної бібліотеки) і називають її "рамкою", тому що це звучить більш фантазії.