6 Essential JavaScript frameworks for building web apps


Single Page Applications (SPA) are on the rise and with it various JavaScript frameworks. A decade back the notion of developing whole web applications in javascript would have sounded ludicrous. But now things are different. We now have many complex frameworks that enable you to easily develop web applications using nothing but JavaScript, even on the server side. Below are a few frameworks listed that have been loved by developers and some new ones that show real promise.

Backbone.js

backbone

Currently the numero uno JavaScript MVC framework. Designed for developing single-page web applications, and is based on the model–view–presenter (MVP) application design paradigm. Backbone was created by Jeremy Ashkenas, who is also known for CoffeeScript. One of the main feature of Backbone that sets it apart from other similar frameworks is its lightweight nature. Backbone.js enforces that all communication to the server should be done entirely through a RESTful API. The frameworks only hard dependency is underscore.js, a library of useful javascript utilities and functions.

Ember.js

ember

Ember.js is an application framework for building sophisticated browser applications. Ember.js (formerly Amber.js SproutCore 2.0) is one of the newest contenders. It is an attempt to extricate the core features from SproutCore 2.0 into a more compact modular framework suited for the web. If you want to build something that tries to tackle desktop-level application development for the web then EmberJS is for you.

The framework supports persistence, computed properties and has auto-updating (live) templates. It also should supports state management rather than the manual routing solution many other frameworks advocate. It also comes with extensive documentation ,templating and has scaffolding tools.

Knockout js

knockout

Knockout is a standalone JavaScript implementation of the Model-View-View Model (MVVM) pattern with templates. Knockout includes the following features:

- Declarative bindings
- Automatic UI refresh (when the data model’s state changes, the UI updates automatically)
- Dependency tracking
- Templating (using a native template engine)

AngularJs

angularjs

AngularJS is built around the belief that declarative programming (HTML) should be used for building UIs and wiring software components, while imperative programming (JavaScript, PHP etc.) is excellent for expressing business logic. AngularJS lets you extend HTML vocabulary for your application to better serve dynamic content through two-way data-binding that allows for the automatic synchronization of models and views. As a result, AngularJS deemphasizes DOM manipulation. It is easy to build complex dynamic UIs with a clean underlying data model and declarative bindings using AngulsrJS

Meteor

meteorjs

Meteor is a new full-stack JavaScript framework, powered by Node.js. Meteor allows you to write your entire application in nothing but JavaScript; not just the client-side, but the server persistence layer as well, with every single API offered in one language. While the framework is yet to reach version 1.0, as long as development remains active you should absolutely investigate this new approach to writing applications.

Express

expressjs

Express is a light-weight web application framework for node.js to help create a MVC web app architecture on the server side. You can then use a database like mongodb with mongoose (for modeling) to provide a backend for your node.js app. Express basically helps you manage everything, from routes, to handling requests and views. Express was specifically inspired by sinatra

Out of the box, Express provides features such as routing, templating/view rendering , dynamic CSS support, middleware (via Connect), session management, logging, application settings, and a command line interface.

Selecting the appropriate framework

As with every other thing in life that offers multiple choices, selecting a good framework for your next project is not an easy thing. It depends on your particular web app requirement and the features the framework provides. Also, some frameworks require a steep learning curve and you would have to invest a sizable amount of your time. I would suggest you take a cursory look through the documentation of all the above frameworks to see which one suits your need. Also take a look at this article – Journey Through The JavaScript MVC Jungle by Addy Osmani.

This site is a digital habitat of Sameer Borate, a freelance web developer working in PHP, MySQL and WordPress. I also provide web scraping services, website design and development and integration of various Open Source API's. Contact me at metapix[at]gmail.com for any new project requirements and price quotes.

5 Responses

1

William

April 10th, 2013 at 12:44 pm

So, here’s an possibly dumb question that has a very obvious answer: what happens when the user has JavaScript disabled? Are we at the point where we are assuming JS as a prerequisite for all web application development?

2

t

April 18th, 2013 at 12:14 pm

i hereby officially confirm that browsing todays web without js enabled is as pleasant as being married to me.

3

6 Essential JavaScript frameworks for building web apps | Łukasz Łysik

April 18th, 2013 at 4:16 pm

[...] Very nice article describing briefly the most important Java Script frameworks for Single Page Aplications (SPA). [...]

4

Phil Kingston

April 19th, 2013 at 1:05 am

Great list. I had not heard of some of the frameworks, so I shall be investing my time into researching each of them.

…and in response to William’s post, I can’t imagine anybody uses a browser with Javascript disabled! It may be more likely that a basic browser doesn’t have decent Javascript support (or none at all), but I think the days of a Javascript-less world are long gone.

5

May Pocket link collection with 40 links

June 11th, 2013 at 11:40 pm

[...] 6 Essential JavaScript frameworks for building web apps: Single Page Applications (SPA) are on the rise and with it various JavaScript frameworks. A decade back the notion of developing whole web applications in javascript would have sounded ludicrous. But now things are different. – http://www.codediesel.com/javascript/6-essential-javascript-frameworks-for-building-web-apps/ [...]

Your thoughts