Friend or Foe: Selecting a Framework for Your Next Project

Shawn Moore
by Shawn Moore 10 Mar, 2017
There are many groundbreaking benefits offered by a software framework, including its ability to expedite the coding process, provide improved code organization and remove much of the busy work that comes with software architecture design. Before a developer selects a framework for their next project, there are a few key considerations to think about. 

Frameworks can be a developer's best friend, or the downfall of their website or mobile application if they don't take the time necessary to choose one that's right for them. Many think this selection process is easy-one selects a framework and, like magic, they are ready to go. What they fail to consider is there are thousands of frameworks to look into, some of which work together or are dependent on other frameworks. Luckily, complete frameworks tutorials are available to make this process easier. Tutorials don't take much time and showcase what each framework will do so developers can determine if it will work for their project.

While selecting the proper frameworks requires extensive research, developers first must understand the differences between front-end and back-end frameworks:

Front-End Frameworks

The major difference between front-end and back-end frameworks is the complexity of the architectural stack of front-end frameworks. For example, many people believe that ReactJS is the most popular JavaScript framework in the world. In actuality, it is barely a framework, but rather a very in-depth JavaScript library that focuses on building efficiently rendered user interfaces. For smaller projects, ReactJS may be sufficient on its own, but larger, more involved applications require an in-depth framework such as the tremendously popular AngularJS, which is used in larger front-end applications. 

Angular is popularly deployed in a MEAN stack, which includes MongoDB (Database), Express.js (Server Framework), AngularJS itself, and Node.JS, which is a runtime environment, not a JavaScript framework as many believe it to be. AngularJS, however, can be used in any kind of stack (e.g., Angular, PHP or MySQL) with MEAN being the most popular. The complexity of these frameworks and their dependencies require more research than selecting a back-end framework. 

Front-End Framework: BackBone (JavaScript)

Backbone is very different than Angular or the React JavaScript Library-it is a pure JavaScript Model View framework known for being extremely flexible. In BackBoneJS, the model is the part of a developer's code that retrieves and populates data, the view is the HTML representation of the model, and the optional controller allows for saving the state of a Web application. Due to the controller being optional, BackBone is commonly referred to as a Model View (MV) framework. 

Developers pick BackBone due to their ability to use anything as the controller, as BackBoneJS controller is optional. Known for its comprehensive technical documentation and clean code organization broken down into meaningful JavaScripts, BackBone makes collaborative development easier. It also negates the need to save data in the DOM by storing it in the model instead. BackBoneJS is used to power the websites and mobile applications of Hulu, Groupon, Airbnb, Foursquare, LinkedIn, Pinterest, Sony, USAToday, Verizon and many others.

Back-End Frameworks

Back-end frameworks are easier to select than front-end because every server-side language has a plethora of frameworks to choose from. This means developers can immediately filter which frameworks to consider based on the back-end language they code in while still providing multiple frameworks to choose from in that language. Front-end frameworks are mostly based on JavaScript, while back-end frameworks can be Java, Python, Ruby-based or PHP. Whatever back-end language is used, back-end frameworks make development faster, so developers should consider what they want their chosen framework to do. 

Back-end frameworks drastically speed up development time by providing CRUD (Create, Read, Update and Delete) operations. To varying degrees, these frameworks can also empower developers to scale applications faster and more easily. Much in line with JavaScript frameworks, back-end frameworks commonly utilize the Model View Controller (MVC) framework that ensures rapid development. Back-end frameworks also reinforce the DRY principle, Don't Repeat Yourself, so developers can write less code that actually accomplishes more. Additionally, these frameworks are better at securing Web applications from security threats, and provide a foundation for code maintenance that is clean and easy to work with. 

Framework: Symfony (PHP)

One such example is Symfony, a PHP-based back-end framework used to power the websites and mobile applications for Spotify, Yahoo, National Geographic, Bla Bla Car, DailyMotion.com, Meetic.com, Vogue and many others. Symfony has earned a reputation for its stability, maintainability and the Long Term Support (LTS) versions released by SesioLabs, the French software development company that initially developed Symfony.  natgeo
(Image source)

Symfony established its distinction through its aim to speed up the development and maintenance of Web applications, and negate the need for repetitive coding. It is best used in a large-scale enterprise context, and gives developers complete control over configuration. As one of the most customizable PHP frameworks available, Symfony is a major value-add to any PHP-based project or application.

Project-by-Project Basis

With these considerations in mind, developers are better prepared to choose the right frameworks. Since frameworks that are excellent for one project may not be a solid fit for another, it is essential to do research on a project-by-project basis to determine which frameworks to use. Choosing frameworks when embarking on a new software project can have massive implications related to the project's success. Therefore, developers must ask themselves what is most important in relation to the project at hand, and select their front-end and back-end frameworks accordingly. 

About the Author

Shawn Moore is the founder of Solodev and the driving force behind the Solodev Web experience platform and Solodev Launch digital marketing services. A visionary leader, Shawn has strategically grown Solodev from inception to a successful company that services clients across the nation and has been named to the Inc. 5000's fastest growing private companies for the past two years in a row.