Dev talk: why and when to use frameworks
Especially in web dev frameworks are commonly used with many programming languages at the majority of projects. If that is smart should not only be a dev evaluation.
However not all frameworks are created equal, as the function scope and long term maintenance from their developers often varies and can be severely influenced by the community interest in a certain framework and programming language.
What is a framework?
A framework in the context of software development is generally a collection of features and functions, that are commonly used for project scopes that the framework in question covers.
As such a framework aims to provide a convenient abstraction of things like database integrations, user authentication and other components, that allow developers to build atop of them without needing to implement basics themselves every time again.
Where does a framework add value?
A framework may add value in a lot of individual ways, depending on your project needs. If we look at standard digital platform it will often consist of components like a website with content management, login, account management functions and underlying database integrations.
Suitable frameworks may come with some or multiple of these features already implemented, and allow your developers to concentrate only on the individual components of your project.
Other frameworks may include UI components like forms, cards or boxes that enable a quick development of new pages or remodelling of layouts.
What are common frameworks?
All of the widely used programming languages for web development have one or more frameworks that cover general or specific scopes.
Often used for Python based projects are for example Django and Flask, the latter of which is even natively supported by Google Cloud to allow quick and easy deployment of code.
PHP, a language that millions of websites are build on and that was one of the very first web focused platforms, boasts a huge selection of frameworks. Some famous ones are Laravel, Symfony and CodeIgnitor. But there is a grand variety of others, some with a special focus, like the Slim Framework that provides a very small and performant base for projects.
Other languages like Ruby are so heavily dependent on frameworks that they are rarely ever used on their own. In Rubys case it basically never comes without the biggest framework of the language: Ruby on Rails.
What is the cost of using a framework?
The frameworks for popular web development languages almost never cost anything to use, as they are vastly part of the open source community. However there are still distinct costs associated with using these frameworks.
Some obvious factors that influence the cost of operating a specific framework is the runtime it needs, Not all programming languages are executable in the same contexts and may require different servers or additional administration efforts.
Also a framework, while often enabling speedy development, does add a lot of overhead as there is your application code and the framework code that needs to be executed. That needs to be accounted for when commissioning the environment of your application.
For that reason small projects with limited scope often are better off without using a big framework, as they can't leverage on the many features that would go unused. Special frameworks like PHPs Slim Framework try to address this by providing a stripped down experience that only covers the basics.
Lastly how widely used a given framework is often has a direct impact on the cost and availability of talent to develop and maintain a project with that framework.
Business considerations when using frameworks
Often the decision whether to use a framework is left to the development team, or an outsourced agency for web development. This approach is very hands-off for the client but comes with issues that can be a problem down the road.
Especially when planing a new project choosing infrastructure and framework should be decided with business interests in mind, as changing to a different environment will be costly later on.
Some of the questions that need to be evaluated irregardless of whether the development is in-house or external are:
- Is the framework covering the scope of the project? Too often big global frameworks are chosen by default, even-though they add little benefit to the individual task at hand
- Does a framework give sufficient advantage to warrant its cost in maintenance and operation?
- Is the framework future proof? Will there be enough talent available for years to come to ensure the possibility of extensions and maintenance?
- Will the framework be compatible with the infrastructure, e.g. cloud platform?
There are multiple other factors to consider at this important step of starting a new development, this decision is crucial and will stick with the project for pretty much all time.
If you are interested to learn more about the purpose and benefits you can gain from using frameworks or not using frameworks in your business case, then check with our dev consultants for free via the form below or email to firstname.lastname@example.org!