Home > Architecture, Programming > The importance of learning JavaScript

The importance of learning JavaScript

This post is part of a series of posts on Client-Side Web Application Development using JavaScript.

Available on every device

It is time that we start taking JavaScript seriously. Well may it is already late Smile. JavaScript is virtually present on a wide range of devices from your smartphone’s mobile browser to your tablet’s browser to your desktop PC’s browser.

    JavaScript is not just about User Interface validations / enabling – disabling alone anymore

Given the speed of the modern JavaScript engines in the browser, it is today possible to share some of the server load with the capable clients. The server needs to cater to a number of clients, whereas the client has all the processing prowess available to itself. If we do everything on the server, the server will soon become a bottleneck. Instead why not make use of the processing prowess on the client machines when feasible. Ironically, in some of the cases your client desktop may be more powerful than the virtual machine serving the web site / web application.

This thought process of leveraging the

  • Efficient JavaScript implementations on the modern browsers
  • Unshared processing prowess available to the client (as opposed to it being shared in the server for serving each client’s request)

has lead to people offloading a lot of tasks that a traditional web server used to perform to the clients. These include but not limited to

  • View Template Selection or Routing
  • Template Rendering using template engines
  • Entire MV* implementations running inside the browser instead of your traditional web server frameworks like Rails, Django / ASP.NET MVC.

Breaking out of the browser

JavaScript is not just limited to the browser, in the recent (well not so recent past) JavaScript has broken out of the browser. It is now possible to create with JavaScript (,HTML5 and CSS)

JavaScript is not just about User Interface anymore

      Native OS API access

      JavaScript is also not limited to User Interface anymore. Chrome packaged apps for example enable OS level integration to accomplish low level tasks like Serial port access, Socket programming etc.

    Look at this talk from Google I/O conference 2012 edition, The Next Evolution of Chrome Apps. The Google Chrome Apps team demonstrates controlling an cardboard chrome icon connected to a stepper motor via an Arduino board from JavaScript. For the impatient, here is a direct link to the demo location in the video.

    Google in fact looks serious about this as they have started working towards making this a standard. The System Applications Working Group will work towards standardizing a

    “runtime environment, security model, and associated APIs for building Web applications with comparable capabilities to native applications.”

    On the Web / App Server

    Needless to say much here since the node.js community has gained a lot of traction. The following factors have lead to the rise of JavaScript usage on the server-side.

    • Availability of faster JavaScript execution engines (Google’s V8 especially)
    • Code reuse between browser and server implementations
      • Model
      • Validation
      • Routes
      • Template Engine & Templates
      • Persistence (offline on client-side and master database on server-side)
    • JavaScript Object Notation (JSON) as our default serialization everywhere.
    • We need to learn one language. Smile with tongue out

    On the database server

    Some of the NO-SQL / Not Only SQL databases use JavaScript Object Notation (JSON) or variants of JSON as the format to expose from the API / Storage format. Some of them support writing Map Reduce jobs using a JavaScript based Domain-Specific Language.

    Automation Scripting

    You can use JavaScript today an automation scripting language for shell scripting or build scripts etc.

    Summary

    To conclude “The JavaScript God is Omnipresent” and the time is now ripe to learn JavaScript and the innumerable frameworks / libraries written by the JavaScript community. In a recent “TechDays the Netherlands 2012” presentation HTML5 QuickStart Jeff Prosise used this quote

    There are two kinds of developers: those who know HTML5, and those who will be learning HTML5.

    I will say that applies to JavaScript as well.

    There are two kinds of developers: those who know JavaScript and those who will be learning JavaScript

    James Governor tweeted this

    It used to be that learning JavaScript meant you weren’t a serious software developer. Today the opposite is true.

    So learn JavaScript.

    Advertisements

    Leave a Reply

    Fill in your details below or click an icon to log in:

    WordPress.com Logo

    You are commenting using your WordPress.com account. Log Out / Change )

    Twitter picture

    You are commenting using your Twitter account. Log Out / Change )

    Facebook photo

    You are commenting using your Facebook account. Log Out / Change )

    Google+ photo

    You are commenting using your Google+ account. Log Out / Change )

    Connecting to %s

    %d bloggers like this: