2019-12 Frontend frameworks research

Warning

this was writtend in 2019. the technology landscape was different, and it was written for a specific dev team and location in mind. the conclusion of this research probably does not apply anymore. i hope you pay attention to the process rather than the conclusion.

It was decided to use web technologies to build [the new] series of products in big part to have only 1 codebase (easier integration and code sharing between products) and partly to support many different devices (computer on board ships, computer on shore offices, etc). Since the codebase for [the new] series of products will likely not be a small codebase (probably in the order of 100K’s LOCs: [product-1] has ~50k LOCs and [product-2] has ~130k LOCs), we will most likely need a front-end framework to reduce boilerplate code for common web front-end development technical use cases.

Use cases

Popularity

There are many front-end frameworks. Since most of our use cases are common in web development, a quick way to filter most of the frameworks and find the few candidates that are most likely the best fit for our needs, is to look at frameworks that are used by big organization that do a lot of development using that framework and also look at frameworks that are used a lot by developers. Big organizations are more likely to take more time analyzing which framework to choose since choosing a framework versus another could have a bigger impact for them. Also, once they have chosen a framework and invested a lot of development into applications using that framework, they are likely to contribute to the framework by adding support for new use cases in the framework (and fix bugs). Also, they usually have more use cases than smaller organizations and potentially need to support new use cases before other organizations. When that is the case, they are likely to add support for those use cases to the framework they most invested in. Developers have an incentive to use frameworks that are easy to develop with and that supports their use cases. For that reason, frameworks that are used by many developers tend to also be interesting frameroks to choose. Additionally, the plan for the [new series of] products is to add many features and support them for the long term (5-10+ years). On that timeframe developers are very likely to change or quit working for an organization; and an organization developing software is likely to want to vary its expenses and development speed by hiring more developers (or hiring someone with expertise on a new use case). For those reasons, choosing a framework that a lot of developers knows is useful for hiring purposes.

List of front-end frameworks worth minimal comparison

Googling for list of “list of front-end frameworks“, “best front-end frameworks“ and the likes, I assembled a list of front-end framework that are listed in more than one text in the first 2 pages of google search results. Then I input that list to Stackoverflow tag trends to have an idea of how much they are used.

Stackoverflow tag trends

Ignoring jQuery, which was used a lot historically since it was the first widely adopted front-end library and also since it does not support many of the use cases we have now (for instance web components), we are left with 2 front-end framework that are much more used than all the others: React and Angular.

Validating organization and developer popularity

Looks like there are many big organizations for both framework. There are more “tech“/software development companies working with React.

Stackoverflow 2019 survey, Web Frameworks, Professionals' answers

Stackoverflow 2019 survey, Web Frameworks, All answers

Google trends, org-city, 12 months

Google trends, org-city, 5 years

Overall it looks like react is a bit more used and is still growing, where angular is staying at about the same popularity. But both framework seems to be used a lot worldwide and in [org-city]. Both framework also seem to be backed by big organizations. For those reason, I only compared those 2 frameworks, React and Angular, in more details.

Detailed use case and feature analysis

Note that since the person doing the bulk of the research and the other front-end devs in [organization] that would be working on [the new series of products] ([name-1], [name-2]) already knew a lot about angular and not much about react, there was more research done on react to be able to compare it to angular. For that reason, there will be a bit less documentation on angular in this research documentation.

Analysis from different roles/perspectives

While researching which front-end framework would be the best to choose for the development of [the new series of] products, at least one person from each role was consulted to validate that the final choice of front-end framework would support the use cases needed according to the perspective of that role. Also, a meeting was held on 2019-12-18 where any person from the P&T department that was interested to attend could attend. The goal of that meeting was that everyone had a chance to name any important consideration when researching which front-end framework to choose.

Conclusion

On 2019-12-23, the 3 persons that had the most knowledge about front-end frameworks had a meeting with the goal of taking a decision on which front-end framework to choose. The person doing the research had previously presented the result of the research. During the meeting, each person took the time to list the differentiating points between Angular and React; and then argued what they thought were the most important points and which framework should be chosen based on those points. At the end everyone wrote what they thought was the best framework on a piece of paper and everyone revealed their vote at the same time. The vote was unanimous in favor of Angular for [the new series of products] front-end development.

Key distinction between Angular and React for [the new series of] product development

Angular React
Application architecture and tech choices are already known by [organization] devs Easier to hire new devs if react is more popular in the future. Although: There is many different technologies in react and even if there is more devs for react there might be less devs that know the exact technologies we use with react. Also, cost of hiring a react expert might be higher than hiring an angular expert
Already have a lot of knowledge from [organization] devs More tech/software development companies seems to use react
We could potentially re-use some code from [product-1] which was built with angular More freedom when choosing technologies for the boilerplate code
We could start more quickly adding features for [the new series of] products since we would not have to take time learning react. Would be good for the career of current front-end devs since they would know both angular and react (after learning react)
We could teach new developers more easily since we already know angular