DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’»

Hamza Tamenaoul
Hamza Tamenaoul

Posted on • Updated on

Framework vs library vs package vs module: The debate

This article was first published in my blog

As a software developer, this is one of the questions that is often asked, and one of a big source of confusion. In the debate about the difference between frameworks, libraries, packages and modules, what does each one of them represent.

Module

Is the smallest piece of software. A module is a set of methods or functions ready to be used somewhere else.

Package

Is a collection of modules. This may sound funny, but usually what a package does, is gather a number of modules holding in general the same functional purpose. Making it easier to include all the related modules at once.

Library

Well library at it's core, is a collections of packages. It's purpose is to offer a set of functionalities ready to use without worrying about the subsequent packages. So a library is what you include when you want to add some functionality to your code. It does not force any coding style on you either.

Framework

It's a set of libraries. But this time, the framework does not just offer functionalities, but it also provides an architecture for the development work. In other words you don't include a framework. You integrate you code into it. He is the wire frame of the project. That's why a framework forces its coding style on you.

I hope that this quick summary was enjoyable !

Top comments (4)

Collapse
richardvinu profile image
Richard_IT

A library is a piece of reusable code that provides some well-tested functionality through a well-defined interface. It can contain one or more modules.
u forgot add important point i.e Both library and package terms are used interchangeably in JavaScript community.

Collapse
curiouscoder profile image
Lenny Adams

This is a truly helpful explanation! Thank you for taking the time to explain these differences in a clear and concise manner. You've helped me to have a much clearer understanding of how these terminologies actually play out in Software Development. Well done!

Collapse
dimplejha profile image
jassica

thaank u soo much

Collapse
melanol profile image
Marsel Khisamutdinov

"He is the wire frame of the project."

🌚 Friends don't let friends browse without dark mode.

Sorry, it's true.