Choosing the right tool for the job is not an easy task when having dozens of libraries and frameworks available, many of which can be used to develop a high end project. Having multiple options sometimes brings increased confusion but every developer has to keep in mind that the framework chosen could potentially make or break a project in the long run.
Do I need a framework?
Productivity and learning curve
Another aspect that is really important is productivity. Here we need to ask which framework will help the developer to be most productive. What languages do the developers know? Sometimes, choosing the most productive framework is not the best idea. Having developers that are not familiar enough with the framework could lead to more problems and complications. Knowing a framework is not so easy and surely not something which can be learned by following some simple tutorials. In fact, ongoing practice is necessary. With a new framework comes a new learning curve and in some frameworks this might considerable, especially if the languages used are not common, such as typescript and JSX for Angular and React respectively. In my opinion, one should never start a big project with a newly learned language. Instead, it would be ideal to start with a small application. This will result in knowing the core functionalities well and then continuing to build on this gained knowledge with each new project.
When using a framework, especially for the first time, you have to be sure that proper documentation, courses, tutorials etc… are available to support you. These are very helpful to get you started into building a project and will be indispensable when faced with difficulties in coding a core functionality or similar. Always keep in mind that good documentation alone might not be enough. Having actual code examples for core functionalities and problems will help you further in learning the proper aspect of the framework. Taking into consideration frameworks such as React and Angular, there are plenty of resources available that are very helpful, including online video courses, which tackle basic to advanced functionalities. On the other hand, frameworks such as Vue and Ember JS are in middle ground with good documentation and few resources.
Popularity is something that needs to be tackled more from a business perspective rather than a development perspective. Using a framework that is unusual and not widely used might have serious repercussions. An uncommonly used framework means less amount of developers are available as resources and if a developer leaves the company or the project is growing and one needs to hire more developers, it can become challenging to find the appropriate candidate for the job. Frameworks that are leading in popularity right now are obviously the aforementioned React and Angular, both of which are used and backed up by Facebook and Google respectively.
Maintenance and longevity
Maintenance is something that is not usually considered that much when starting a new project. But the truth is that maintenance is a very important element, especially in larger projects, where it will most likely be an ongoing process. Nowadays, in the world of technology, changes are inevitable. If not an application update, it might be a Framework update. Frameworks are being updated every day. For example, Angular have gone up from version 2 to version 6 in just two years. Although some of these updates were not obligatory, they were necessary in order to improve performance on the application. A factor that will really help out through maintenance is Unit Testing. When choosing a library, one must verify that it supports unit tests as these will reduce the testing process after code update. Another factor that needs to be researched is the longevity of the framework. Two questions that have to be answered while researching are “How is versioning handled?” and “When was the last update?” These will affect the project if not handled correctly.*********
Choosing the right framework is the first and the most important step towards build a successful single page application project. There are other factors which can help you choose the right library for your project, but the ones mentioned above are probably the most important to determine which one is the ideal one. All libraries have their pros and cons, you just have to verify how each one will affect your project.