Framework VS Library

Basically, both the library and the Framework are reusable pieces of code written by developers to solve common occurring complicated problems. The difference comes when you understand “Who calls whom” or “who uses whom”.

Library

A library is a collection of pre-written codes that can be used to simplify tasks. For example, we use jQuery (a JavaScript library) instead of vanilla JavaScript to manipulate DOM more easily and efficiently (writing fewer lines of code).

Technically, it is a set of pre-defined functions and classes that developers can use to simplify their work and speed up the development process.

So by using libraries, developers do not require to write a large number of codes to accomplish some specific functionalities.

Some examples of libraries are React js, jQuery, animate on scroll (AOS), anime.js, swiper js, etc.

Mostly, libraries do not have a large size and we can also alter/change the codes according to our use case.

It is basically used to tackle specific problems. For example, if you need a slider or carousel on your webpage, then you have two options:

  1. Write codes to create your own
  2. Use a library (like swiper js or owl carousel)

If you choose option 1 then you need to write the whole HTML, CSS, and JS functionalities (considering the responsive behavior) on your own.

OR

If you choose option 2, then you only need to import or use the library (maybe by using CDN links) and just write a few lines of code (like initializing or calling library functions) and your slider will be ready. The complete logic or functionality will be in the library and you can also customize it according to your use case by changing a few codes.

It is easy to replace a library with another library. For example, if you are using the jQuery date-picker library, you can replace it easily with another date-picker library like bootstrap date-picker.

You can also build your own library also. As less code is required to build libraries, that is why they have faster loading time and better performance.

A library cannot contain a framework.

You can integrate libraries into existing projects to add additional functionalities. It means your code or application uses the library.


Framework

A framework is like a “foundation” on which developers build applications.

It means a framework provides us an eco-system or structure along with reusable pieces of code to deal with complex development challenges easily.

A framework provides its own environment around which we work and if we need some extra functionality then we provide our own code. It means our code is surrounded by the framework.

Some examples of frameworks are Angular JS, Laravel, Next.js, Django, etc.

As it serves developers as a foundation, the benefit is that we do not need to start building an application entirely from scratch.

For example, if we are creating an application using Next.js or Laravel, then we work within their infrastructure i.e., we cannot put a file anywhere as we want or change anything as we wish. They provide us ways to manage routing, do authentication, manipulate databases, and folders to put our public files (HTML, CSS, JS, static assets like images), etc.

The framework works on a specific design pattern (like MVC or MVT) that we too have to follow. Following a design pattern, leads to clean and proper implementation of codes with fewer bugs & boosts performance.

Frameworks consist of a lot of APIs, compilers, toolsets, support programs, libraries, etc., i.e., A framework may contain libraries.

Frameworks are used to develop complex and scalable applications and also we cannot easily alter the framework codes as it can result in improper functionality in the whole application.

Frameworks are difficult to replace. For example, if we are using AngularJS to build a product, then you cannot simply replace it with another framework. It will require you to rewrite the entire codebase.

Frameworks should be used when starting a new project because it is impossible to incorporate them into an existing project.


Inversion of control (Key Difference)

The main difference between a framework and a library lies in a term called ”inversion of control”.

When you use a library, you are in charge of the flow of the application. You are choosing when and where to call the library.

But when you use a framework, the framework is in charge of the flow. It provides some places for you to put your code, and it will call your code when required.

That is it! Thank you for your time, hope you find it useful!

Let us learn – React is a library or framework!

Share