When does a Framework become a "Framework"

Hello Fellow Campers,

I am not expecting a deep discussing on this question, but it seems like there are new frameworks invented everyday. The list goes on and on(react.js, vue.js, node.js, Mongo.db, etc).

This question is more a curiosity of mines. How and when does the naming and licensing for frameworks actually become a thing?


Hi Simon,

Usually the evolution goes like this:

  1. Program in a large complex project and have a problem that is hard to solve.
  2. Write a lot of code that solves that problem in a way that is very useful.
  3. Want to reuse that code you wrote in Project A in some other project like Project B
  4. The problem in Project B is just slightly different than Project A
  5. Generalize the code written to solve both problems into a “Library”
  6. Find that there are other problems you need to solve in more projects C, D, E, F …
  7. Collect all the code that solves the problems into a collection of “Libraries” which work well together
  8. Think up a creative name that doesn’t infringe on some “Big Corp” trademark and brand your framework
  9. Promote your framework in HackerNews, Medium, and Conferences
  10. Spend lots of your free time dealing with Github issues and pull requests for features you never intended

Wonderful. Thanks for detailed breakdown Joshua. :+1:

I know this sounds pedantic, but of the four examples you give, only Vue is actually a framework. React is a library, Node is a ‘runtime’ or execution environment and Mongo is a database.


I believe many in the React community will tell you otherwise. I don’t personally have an opinion on that but from all I read and hear many do consider it to be a framework. I guess it depends on your definition of framework. Vue.js is also just a library, however if you consider it to be a framework then by your definition React is also a framework.

You should let them know: https://reactjs.org/

“React - A JavaScript library for building user interfaces”

“The Progressive - JavaScript Framework”

Damn right I will. Hehe
You’re right, I should stick to what they call themselves. Is it possible Vue.js has changed? I swear it was just a library. You can certainly use it as such.
I do know that React is very often referred to as a framework (incorrectly). Vue.js does not define the entire application design.

Isn’t this just a case of all frameworks are libraries (or have libraries) but not all libraries are frameworks?

Exactly. All frameworks are composed of a collection of libraries. Few libraries are considered frameworks.

Frameworks are typically defined as a collection of libraries that are intended to be used together.

Examples could be Angular, Ember, or Backbone.

Every article on JavaScript “framework” comparisons I’ve read in the past year has included React, and many web dev podcasts refer to React as a framework (sometimes acknowledging that it’s a library). Maybe it depends on how you use a library. I think often they mean React/Redux used together, but they don’t always specify. And then you have people who call Vue.js a library, maybe due to the fact that it can easily be used progressively, which makes it non-frameworky.