1 November 2017
* Gulp - An in-memory streaming build process. Create pipes and push your files through them to transform them. It suffers from occasional stability problems.
Switching from one toolchain to another is generally not an onerous process. They share many commonalities. A single competent developer can usually migrate a good size application from one stack to another in a couple of days.
Coupled with this is an explosion in the number and diversity of frameworks available. We have transitioned from simple JQuery monoliths, via MVC, into component based frameworks, Flux architectures and reactive coding.
* Backbone - The granddaddy MV* framework. Very lightweight. Gives you Models, Views, Collections and Events to help you wire an app together. Views listen to models and redraw themselves.
* Angular - Google's last generation tool of choice. It's essentially a DOM parser that lets you write web applications in HTML. Incredibly low barrier to entry.
* Angular 2 - Not really related to Angular 1. It allows you to construct your app from a tree of web components. Data flows down the tree and events bubble up. Built with TypeScript and made by Google. It's very enterprise and quite complex.
* React/Flux - React is a blazingly fast DOM manipulation tool. Flux is a design pattern that uses an immutable data store (typically Redux) to control a React enabled DOM.
* Vue.JS - A new component-based framework that is far less complicated than Angular 2. It's currently in a hocky stick growth curve, and is definitely worth checking out.
* Aurelia.JS - Another new component based contender with a beautiful and stable API.
This is just a sample. There are many others.
How to Deal with Legacy
Picking a framework can be daunting. Whatever you pick, it is almost guaranteed to be legacy in about five years. Fortunately, there are very few bad options now. All the major frameworks will give you an enjoyable development experience going forward. Provided you maintain your code and write decent unit tests, even a Backbone app will likely still be OK ten years from now.
I have worked with developers who are sill supporting old Backbone apps. If the code is maintained and kept clean and tidy, there really is no problem. Pick something you and your people are comfortable with. Don't let anyone touch it that you don't trust. Run your unit tests regularly (ideally, each time a file is saved). Employ linting, and consider TypeScript.
Coupled with this is MongoDB, a highly scalable distributed database and data analysis tool that has been deployed by organisations such as Sky, Cisco, O2, and Niantic (for Pokemon Go). Data is stored and retrieved as JSON. You can use the same data in the database, the server, and the front end. This means you write no wiring code, which can save a very significant amount of time.
To sum up
Frameworks come and go, and rapidly become legacy. However, even legacy code can be good code, provided it is well maintained and tested.
For more more information about our range of courses: