Recently, I had the opportunity to meet with a client that was in the process of deciding on a front-end technology for their dev team to use. They already did quite a bit of research and formed some opinions about different technologies, and wanted to get our opinion about the way they evaluated their options. One point I made early on in our discussion was that there is no one “right” answer to the question of “which tool(s) should we use?”.
The only “right” answer is simply the one that works best for your team. The frameworks the client was considering for their front-end development were:
The criteria that the client was using for their evaluation included:
- UI Control
- Learning Curve
We went through each of the frameworks and had an interesting conversation about the strengths and weaknesses of each one relative to each of these criteria. In the end, I suggested two criteria be added to the list:
- Availability of a CLI (Command Line Interface)
I have taken testing seriously for quite a few years now and I think it is important to use a framework that makes it easy to test your applications. Also, having a CLI to scaffold your application as well as provide other development tooling like an http server, test runner, build step, as well as generating other application assets provides a huge productivity boost for developers.
Although the client has not made a final decision, they narrowed the choices down to React and Vue.js. React is very popular so that is not a surprising choice, but using Vue.js as a standalone framework was not something I would have considered. My experience with Vue.js has been for individual page level functionality on server generated pages. It will be interesting to check back with this client in a few months and see what they settled on and how it is working out for them.