- Бібліотеки
На зорі розвитку ІТ кожен програміст був змушений писати код з нуля, але з часом з’являлося все більше функцій, покритих кодом. Програмісти зрозуміли, що немає сенсу кожен раз писати заново одне і теж, і вирішили зібрати однотипні шматки коду у відкритому доступі, щоб ними могли користуватися і інші програмісти. Так з’явилися бібліотеки програмування, в яких зібрані якісь потрібні функції (наприклад, робота з рядками, файлами, пам’яттю та ін.). І інший програміст місце того, щоб заново вигадувати велосипед, брав бібліотеку, підключав до свого коду і починав використовувати. Для кожної мови існують свої бібліотеки.
- Фреймворки
Програмування продовжувало розвиватися далі і в якийсь момент стало зрозуміло, що всі програми складаються з однакових частин, мають приблизно однакову архітектуру. Відмінності можуть стосуватися частин з бізнес логікою, зображеннями, запитами до бази даних, а вся інша обв’язка однакова. Якщо раніше робота виглядала як написання коду, який викликав потрібні бібліотеки, то тепер основну роботу виконує вже написаний, добре протестований код. Програмістам залишається лише дописати шматочки бізнес логіки, які відрізняються. Це і є framework. Такий собі каркас.
У framework йде основне виконання, а ваш код тільки підключається до нього як маленькі функції, які цей framework викликатиме. Виходить, що ви вже не пишіть основну програму – вона вже написана, ви пишіть тільки маленькі відповідні частини: ось на цій сторінці вивести ось-то, ось тут такий шматочок бізнес-логіки і т.д.
- Стеки фреймворків
Але і на цьому все не зупинилося. Компанії, які розробляли фреймворки, зрозуміли, що в додатках повторюються великі глобальні шматки, які можна між собою з’єднувати, тобто з’єднати один фреймворк з другим, з третім і поставити поруч четвертий фреймворк, який буде ними керувати. Так з’явилися стеки фреймворків, типу Spring.