In software development, frameworks allow developers to deliver applications faster than usual while avoiding repetition.
Framework in the real world
We all know IKEA, right? That small startup out of Sweden. When you buy products from them, they usually come in one or multiple boxes. These boxes have everything needed to put together the furniture. These boxes are self-contained.
These boxes represent frameworks in the real world.
Prior to putting things into boxes, they've tried to assemble them once, twice and maybe 3 times before identifying all the elements needed to provide to their users a self-contained puzzle.
Imagine IKEA had only provided you with the frames for your furniture. And you had to buy yourself every single screw, handle, screwdrivers, spanner, and socket. Your experience would have been completely different.
Frameworks in software development
The idea is the same as in the real world. A framework is completed. It gives developers all the tools to build all kinds of applications.
They are frameworks for everything:
Mobile frameworks: Flutter, React Native, Xamarin, NativeScript
Web frameworks: Angular, Vue, Express, ASP.NET, Laravel, Rails
Frameworks of frameworks: .NET, .NET Core
Cloud frameworks: Microsoft Azure, AWS, Google Cloud Platform
Specialized frameworks: CRM, ERPs, CMS
The list is infinite and complex. The bottom line is every industry benefits from having frameworks that allow them to deliver value faster and consistently to their customers.
Takeaways
There is a tight relationship between a framework and a programming language. Often, someone or an organisation with expertise in a field uses a programming language to create a framework that makes it easy to build applications within that field.
For example, Google has expertise on the web. They used TypeScript to create Angular with the goal of enabling new types of web applications on the internet.
Microsoft did the same thing with C# and .NET. Although, .NET is a framework of frameworks. I'll cover that topic in another essay.
Frameworks ------ Languages
ASP.NET ------ C#
Django ------ Python
Express ------ JavaScript, TypeScript
Angular ------ TypeScript
Flutter ------ Dart
That was Frameworks, Don't repeat yourself!
I hope you've learned something from this essay. If so, please take this test to assess your progress.
Until next time!