What is a framework?

Developers often use the term “framework”. But what does it mean in programming and what is it used for?

In simple terms, a programming framework is a software foundation. It never changes regardless of configurations and contains elements with a variable part attached to them. A framework defines the overall architecture for conceptual models, software systems and applications. It forms a default behavior, a framework that can later be extended or modified to meet the requirements of the task.

This is where it differs from a library, which consists of programs with similar functionality that do not affect the architecture of the software product under development.

Simple Example

A simple example will help you quickly understand the essence of frameworks. Let’s say you plan to build a house. In this case, you have two options: to develop your project from scratch or use a ready-made one. The latter allows you to customize the project by experimenting with the layout, but without touching bearing walls.

The main difference between your own and a ready-made project is that in the latter everything has already been taken into account: utility system, wall insulation, best options for pouring concrete for a foundation and many other important details, that professional architects usually deal with. Having a pre-created and well-thought-out basis, you will get a cozy and original house built within the framework of an initially created ready-made project.

This example shows pretty well what a framework is and what its role in programming is. Programmers use it as a ready-made software skeleton which can be filled with any code. As a result, they lose in variability, but their software environment functions more stably.