i blog about: Software Development | Jeeps | Family | Health

Modern JS Frameworks

React, Angular, Vue, Node, et.al. how do i chose?

Well, i really love Ruby and Rails. The out of the box server side MVC pattern works really well for sites that get crawled by Google. But, it really is old school when dealing with business web applications. So this post is bit about these frameworks and continuing to work with Rails.

The Rails ecosystem with migrations, ActiveRecord and ORMs, code generation and generally working with APIs is really a beautiful thing. Any web application, regardless of technology, is going to be mated to one or more APIs. So why not continue to use Rails, minus the presentation layer? Exactly, that's what the context for evaluating these technologies is.

React, Angular, Node etc

Specifically React and Angular. Getting into TypeScript. These are complete replacements for the web server. Can you sort of bolt together a Rails web application and React and Angular, yes. Should you no. You should be using Node and the frameworks there that deal with the "application" part and the assets etc. This is a huge deviation for existing Rails web applications. Here you are looking at replacing Rails and that overhead can be beyond substantial for existing applications.

If you have an existing Rails web application where the API is also integrated there. Unfortunately you should steer clear of these web frameworks, or prepare to rebuilt it entirely in React or Angular.

If you have a Rails API, separate from your web application, then the burden is drastically lower and replacing your web layer could be doable. You'll have frustrations mainly in replacing the asset pipeline, security and session aspects.

Vue

Vue, I am exploring as a great fit for a quality, modern framework that pairs well with a Rails web application, like this one. There's nothing wrong with Angular 1.X accept it's entering long term support and will begin to rot on the vine. More on Cue as I explore it here on this web site

Posted: September 05 2018