In recent times we've seen the term "framework" garner more attention, at times eclipsing the term "programming languages" to the point that the average netizen probably thinks frameworks are no different from programming languages. Today we're going to examine the term "framework" as it relates to software programming, I'm going to do this using two examples in the hopes that we're familiar with one or both of them as they somewhat encapsulate what a framework is.
A RELATABLE EXPLANATION
The first example revolves around cars, if we've ever seen car tuneups that involve taking a car, swapping some parts and polishing up the car till it looks a lot different from what it was before and performs a lot better then you have an idea of what a framework is. Another example that you may be able to relate with is bodybuilding, we have competitions that more or less assess people's ability to consume steroids and exercise in ways that pushes their bodies to the limits of physical conditioning. A popular example is Arnold Schwarzenegger.
FRAMEWORKS MAKE DEVELOPMENT SOMEWHAT EASIER AND FASTER
Frameworks typically make it easier and faster for developers to write code that performs at scale. Frameworks are built on top of programming languages in the same way houses are built on a foundation. Popular examples of frameworks are Android (which is built on Kotlin, Java etc), .Net (which is built on C#, F#, etc), Angular (built on Javascript). I'm fairly certain that you're confused with all these terms that look weird or like something that came out of a music class as such I'll break it down even further.
POPULAR FRAMEWORKS AND THEIR LANGUAGES
Android applications (and our Android operating system) is a result of the android framework (Android is owned by Google), if you've ever used Windows operating system, you've enjoyed the products of the .Net framework (which is owned by Microsoft), if you have a Gmail account and have accessed it, you've enjoyed the product of the Angular framework (also owned by Google). While frameworks look shiny and all, it is important to note that they're not omnipotent, they are largely an extension of the power of the programming languages they're built on as such they must evolve as their programming languages evolve, there are also things they can't do because they're limited by the programming language they're built on.
FINALLY...
Developers are always encouraged to learn programming languages before their frameworks in order to understand core concepts in the framework that stems from the programming language. It's highly unlikely that one can tune up a Beatle car till it outperforms a Bugatti and this is because the tuneup is constrained to the shape, size and other aspects of the car. It's the same way even a human on steroids is highly unlikely to outperform a horse or an elephant in feats of strength. The next time you're in a conversation with a developer, ask them what languages and what frameworks they know, also note that React is not a framework, it's a library. Now I'm spontaneously deciding to write about Libraries tomorrow ๐ .