The year in Javascript
By Glenn Stovall
Posted: January 3,2012
2011 was a year that saw the use and usefulness of
JavaScript skyrocket. With the improvement of browsers, and
the increasing diversity of platforms the web is used on, such as
smart phones and tablets, JavaScript has become increasingly
important in user interface development, and has moved from being a
tool used for decoration and the occasional ajax call to a language
used as the main tool is building dynamic web applications. This
has been made possible by a number of tools that have come into use
this past year:
Underscore.js
Underscore.js is in my opinion the most important JavaScript tool
released since jQuery. Underscore js does not have a singular
focus, calling itself a 'utility-belt library'. It includes several
common functional programming functions, such as map, reduce, and
filter, to make processing sets of data easier and allows for using
functional paradigms in JavaScript, which works well with
JavaScript's prototype inheritance and first-class functions.
It also include a great micro-templating library that makes
working with dynamic HTML incredibly easy. Many of the other
tools on this list would not be possible without the help that
underscore provides.
Require.js
Require.js is a file and module loader for JavaScript. With
the increasing amount of tools and complexity of projects in
JavaScript, it becomes necessary to have a way to manage all of
these modules and their dependencies. require.js provides a
way to do this, both on the client side
with asynchronous loading for providing a better user
expierience, or on the server side to help manage web servers in
node.
Node.js
Node.js is a tool for writing web servers in JavaScript. It has
moved JavaScript from being just a client side tool into something
that can be used for every part of a web application. This has the
benefit of being able to use a single language on every part of the
development stack, which can make things easier for the developer.
Node also takes advantage of JavaScript asynchronous nature, and as
such allows for a lot of parallel, non-blocking way of processing
requests that leads to incredibly fast, scalable web applications.
Backbone.js
Backbone is a JavaScript MVC Framework for the client side.
It allows for building structured, modular web
applications completely in the browser. Several
large scale applications, such as Grooveshark, Trello, and GMail
have made use of Backbone to build amazingly fast interfaces in the
browser. Backbone also provides a better way of organizing
and using code, which has become necessary as web apps have grown
more complex. Backbone has personally exciting for me, as it led to
me re-thinking how web applications are built, and to stop thinking
in series of pages, and start thinking in a more responsive,
desktop-live paradigm.
CoffeeScript
CoffeeScript is a language that transforms into JavaScript.
It is used to give JavaScript a simpler, more ruby-like syntax in
order to increase developer productivity. a simple closure
may look something like this in JavaScript:
var square = function(x) {
return x * x
}
While in CoffeeScript, the same function would be written
like this:
square = (x) -> x * x
CoffeeScript made waves when the people at 37Signals decided to
include CoffeeScript and SASS as default modules in Ruby on Rails
3.1. While the modules can be easily turned off, this led to
developers both becoming aware of CoffeeScript, and becoming
divided by it. Some see it as a great tool to clean up code
and make writing code faster, others see it as a waste of time, and
unneeded step of complexity, and some just plain don't like the new
syntax.
The needs and capabilities of the web have grown, and JavaScript
has stepped to the challenge.