Choosing a framework

For whom are you developing?

Sometimes trying something new isn’t the right way

Sometimes you shouldn’t try out new frameworks. Developing an enterprise solution or other sizable project will need a solid foundation. Not being familiar with a framework will limit your problem-solving ability. Working with a new framework will make you look up things more often. This will lead to frustration, especially with a deadline on the horizon.

 

To be fair, it’s fine to integrate some new libraries to speed up your development.

 

Will you maintain it?

The duration of the project can depend on different factors. One of them is developing for an enterprise. Most enterprises will have you support the project for longer periods.  If you don't depend on a feature in the latest release, consider using an LTS-Release. Using LTS-Release lets you do updates without worrying about breaking changes on every update.

 

Does it need to be secure?

If you have security concerns, choose a framework you can put your trust in. A framework with 100 Stars on GitHub with an update interval of 3 months may not be the right choice if you want to be sure to get updates for the next years. It’s worth to check for companies that use the framework, this may be an indicator that others are interested in supporting it over a longer period.

 

Target Platform

Deploy everywhere?

This is the way I think most of us, myself included, would think when they start out with a new project. Why would you not want to deploy your application on the web, mobile, or even a toaster?

Deploying on multi-platform comes with the cost of added complexity or performance limitations. It’s not wrong to choose a framework that allows you to deploy on multiple platforms. But often you have the option of another framework that makes developing your core functions a breeze at the cost of choosing a platform.

Also, does your application need to be a mobile app if it could be a webpage? Keep in mind that a smartphone can also access web pages.

 

Performance / Integration

Sometimes you need to have access to certain native functions, this will force you to use frameworks that allow you to access them. It’s worth checking out other frameworks or technologies that offer the same functionality and allow you to deploy platform-independent.

 

Working in a team

Design patterns

Working with a new framework as a team means, no one knows how to work with it. So you have to figure out guidelines and best practices by yourself. Having a framework will enforce some restrictions for your team. This will make the organization of the project more clear. Besides, many design patterns are valid across frameworks and programming languages. So having them will get you started on the right track.

 

Linter and other quality of life improvements

Having linters and other tools to streamline your work, will help you and your coworkers keeping the code clean? Having guidelines and the same toolset will also help other developers understanding your code.