The Framework Fanatic

20 Feb 2024
the paroady of frameworks

Why Bother?

Why bother to wield a tool, when the hands alone can shape and create? Why bother only on the hands, when tools can achieve precision and complexity beyond the reach of fingers? Why bother to seek the path of the wheel technology, when the legs alone can carry us? Why bother to limit oneself to the bounds of natural ability, when tools can unlock new realms of efficiency? So,

Why bother with anything less than a framework like Bootstrap 5?

As you can generalize, we alone design tools for efficiency. Bootstrap 5, is no different than a tool that replaces the hands alone to which create and shape. Thinking beyond the realm of software frameworks, tools are what defines what makes us humans. We are, of course, a species that designs and crafts tools to our advantage. Even though, there exist animals that have inherent such abilities, what makes us more unique - is the ability to create advanced tools - such as, but not limited too, software frameworks.

Let’s rethink our quote once more - “Why bother to wield a tool when the hands alone can shape and create?” In the context of software engineering within the web domains, pure HTML and CSS can be analogized to our pure hands. Indeed, such tools are merely principles or atoms that we can potentially utilize to design our web-based projects. However, despite their foundational status, they are often the least efficient in isolation due to their unrefined nature. They are not mere embellishments but powerful extensions that enhance the capabilities of HTML and CSS. These frameworks empower developers with a broader range of features and improved accessibility, much like tools that extend the reach of our natural hands.

We engineer frameworks to enhance productivity, incorporating proven implementations before the primary development phase of a project. This approach is a consolidation of pre-existing technical solutions, enabling future developers to efficiently integrate this collective wisdom into their projects. By doing so, they can bypass the need to create foundational elements from scratch, streamlining the development process.

The use of these frameworks means that developers are not starting from a ‘tabula rosa’ state, or an empty state - in this particular scenario, an empty directory that will soon be populated with dozens of code files. Instead, we are at the point of technological progress, such that, we have a disposal a wealth of pre-built modules, standardized code, and best practices ready for our disposal. This reservoir of resources serves as a springboard, propelling development forward at a pace that would be unattainable if everything had to be built from the ground up!

They enable software engineers to construct more complex, responsive, and user-friendly web interfaces efficiently. In essence, while our ‘hands’ (HTML and CSS) lay the groundwork, frameworks amplify our creative potential, allowing us to build with greater sophistication and finesse, while also having a universal coding convention on how to design such sites efficiently and optimally.

What’s fascinating is that these particular frameworks are generally open source, meaning that, such framework also fosters a culture of learning and knowledge-sharing, as each project contributes back to the framework, enriching it for future use. One fascinating concept that open source software projects enables for developer enrichment. I did my fair share of small contributions for a small framework involving game development! I added some additional features involving camera shaking for game aesthetics

The Framework Fanatic

Software engineering benefits greatly from UI frameworks. Any frameworks in any domain from any community, within the open source or closed source communities, benefit greatly from these foundational technologies. Frameworks are everywhere and are respectable approaches when building a software project. Whether it’s a web app, a game, an AI system, or even - meta tools like frameworks for programming languages or software optimization - frameworks are the heartbeat for many technical projects. One day, you might design a framework yourself given a project of any nature of technical project - beyond just web development.

There was a time when I wanted to build my very framework for a game. My key reasoning is that many games comprise the same features and functionalities, both game systems and game engine aspects. If I could build a framework to rapidly produce games, then this would enhance greatly the main objective of the project, which is to test and validate game genres and themes from player feedback! This particular framework was designed to help me build games faster and adhere to coding standards, much akin to Bootstrap 5 and web development.

However, frameworks can also have a downside. An increase in complexity. Both in terms of performance and developer productivity. Usually, frameworks are going to be a core aspect of your development, and there will be times when frameworks don’t usually solve that particular problem or feature you want to incorporate. Hence, an uptick amount of development time to design a working solution that aligns with your framework, either designing your version of the framework or implementing a way to bridge between different frameworks. Either way, frameworks can also effect the performance of software, which is usually not an ideal behavior in all kinds of software we build. Especially if it compounds, such as a framework within a framework within a framework, etc.

Naturally, the only way to determine if a framework is compatible with your project is to do in-depth research about the context current state, and vision of your software project. No framework works with all kinds of software. And there are no right or ‘best’ ones, either. It all depends on the team, the nature of the project, and how it can empower your development cycle in your projects.