Sunday 20 November 2011

Think JavaScript!

Thinking of building a kick-ass next generation web app .
What are your choices , Ruby ,java , PHP? How about JavaScript??.
But , isn't JavaScript for doing cute effects on your web page or submit data without page reloads , you may ask.
Well yes , its still the best way to achieve that but JavaScript has grown from just a clunky language embedded in HTML pages to a full blown ecosystem . Infact, its the most popular language on github.

Lets look at some of the most exciting projects based on JavaScript:

JavaScript for Database 

The database is the most crucial piece of software since it holds the data of your application .The emergence of NoSQL databases provides a schema-less system which allows a data-first approach to the application development . The two most popular databases are MongoDB and CouchDB which store data in JSON (or JavaScript Object Notation) format and use JavaScript as the query language .

Server Side JavaScript 

The emergence of Google V8 JavaScript Engine and Node.js have been the most defining moments for JavaScript . While V8 is a JavaScript Virtual Machine which can be run in  a browser (like Google Chrome) or standalone , NodeJS  provides an event based I/O model for programming  making it asynchronous and an excellent choice for building high scalability webapps.

NodeJS has its own ecosystem and an excellent set of modules which can be installed using NodeJS package manager or npm.

How about some MVC ?

Backbone.js is your answer to MVC in JavaScript. The best feature about backbone is its extremely lightweight and simple to use . Combining it with JQuery templates and Underscore make it an excellent framework to build application upon.

Another MVC based JavaScript framework is SproutCore. SproutCore provides an excellent set of controls but its more suited to build desktop apps  .

KnockOutJS is another framework similar to Backbone but built on MVVM pattern.You can follow this post for differences between KnockOut and Backbone.


What about UI? 

jQuery remains the most popular JavaScript library in use today and a natural choice to use it any project. Another advantage of jQuery is that its seamlessly supported by all JavaScript frameworks.

D3.js is an excellent library for creating visually stunning representation of data . D3 allows you to bind arbitrary data to a Document Object Model (DOM), and then apply data-driven transformations to the document.

Mustache.js is a nice templating library to go along with Backbone.js but its has limited use with KnockOut.


Some more JavaScript?

UnderscoreJS is a nice utilities framework to go along with any of the frameworks and provides a handy set of functions without altering or extending native JavaScript types.

CoffeeScript is a programming language that compiles to javascript . It provides clean, simple and concise syntax that is easy to understand and code in . It provides a great value if you are writing huge amount of JavaScript code.