New Renaissance for JavaScript.

 JavaScript. The language for so long relegated to the back corners of the browser, used for client side dirty work and image manipulation, is now coming into its own. Finally getting the fair dues it deserves, it is no longer the neglected stepchild of the web development world. Since the web world turned to AJAX for “behind the scenes” data requests, JavaScript has finally been maturing and developing with the toolkits and frameworks that other languages enjoy. Further, this has spread from the client-side into the server-side, enabling an entirely new class of applications, in some cases even displacing the current web servers as we know them today. Let’s take a look at some of these as they have emerged.

Desktop/Browser

In the early days of the UI toolkit “shakeout”, it seemed there were new toolkits or frameworks every week. jQuery, with its easy DOM manipulation methods and extension models, caught on in the developer community. Although others were still supported and staunchly touted by their users, jQuery became the overwhelming winner of the popular vote. It was eventually adopted by many other web applications for its quick implementation time, as the UI control framework for many back-end “control panel” systems, further extending it’s popularity.
Check out upcoming training from Fig Leaf Software on jQuery at http://training.figleaf.com/courses/jquery.cfm

ExtJS was another early UI framework, that eventually was rolled unto the Sencha umbrella. In its latest incarnation, it has shed its former cumbersome structure and become a fully streamlined rich application development framework. Rather than relying on a more DOM-centric development model from a development perspective, it provides an object oriented class system and MVC structure familiar to many programmers.

Fig Leaf Software is an authorized Sencha Training Partner. Find out more about ExtJS classes at http://training.figleaf.com/Courses/sencha.cfm.

Mobile

As tablets and mobile devices became more powerful, their browsers became more standards compliant and were able to support more desktop-like functionality. This opened the doors for developers to provide client-side functionality better than just “mobile-compatbile” versions of web sites, but true interactive applications. These mobile frameworks provided not only the capabilities of their desktop counterparts, but also support for the touch interfaces, cameras, GPS, and other hardware devices built into the mobile platforms.

jQuery Mobile

 (http://jquerymobile.com/)

JQuery was already a dominant technology in the desktop browser world, so it was natural progression to see a mobile version of this system. While it is still DOM-centric, it provides for the needs of a mobile-based system, including support for hardware integration with things like the camera, accelerometer, etc. It also allow for the compilation of an application to a “native” application via Apache Cordova (PhoneGap). If you are used to more design-centric HTML coding, and are fluent in jQuery this is something worth checking out.

What Sencha as done with ExtJS they have also done with the mobile development environment. Rather than a DOM-centric manipulation model, Sencha Touch is a complete object driven, MVC framework for creating web-based mobile applications. Like jQuery Mobile, it can be compiled to “native” with systems like Apache Cordova (PhoneGap), or it’s own compilation system to provide deeper access to hardware functionality.

Check http://training.figleaf.com/courses/sencha.cfm for information on upcoming training opportunities from Fig Leaf Software.

JavaScript succeeds on the server-side

There were several attempts in the early days of the web to bring JavaScript to the server side, e.g. Microsoft JScript. However, they were not adopted widely. This left JavaScript at the client-side, where is was underutilized by many despite its many powerful features as a programming language.

Around 2009 a system server-side application was created by Ryan Dahl based on the Google V8 engine called Node. It was this system that would drive the meteoric rise of JavaScript on the server-side. Since then the application has spawned an entire ecosystem of frameworks and tools. Node was designed to be best suited for I/O intensive applications like web servers a web applications. Although powerful, it provides surprisingly little out-of-the-box functionality. This has also driven the development of other frameworks and systems.

One of the more popular frameworks for web applications is Express. It combines several modules (managed with Node Package Manager, or NPM) for handling session management, authentication,  routes, etc. into one MVC framework for web app development. Of course as with anything of this nature, there are several competing frameworks, each coming from different background business/technical needs.

Whats Next?

Famo.us

(http://famo.us/)

The young startup Famo.us is taking JavaScript to the next level by reinventing how a rendering engine can perform on a tablet device. By pushing what used to be handled solely by the main CPU partially to the device GPU, they have been able to demonstrate truly remarkable things. http://youtu.be/fzBC20B5dsk

Sencha Touch + Leap Motion

As part of an early beta program, Daniel Gallo from Sencha was able to interface the JSON output from the Leap Motion device with a Sencha Touch application to demonstrate touch-free gesture interaction with a mobile application. http://ow.ly/gG5O2

With these new advances, it seems that JavaScript has done more than just come out of retirement. It’s become the new cool kid on the block, with plenty of runway for more fun things to come. Learn more about how Fig Leaf Software can help you come up to speed on the latest technologies at http://training.figleaf.com.

Leave a Reply

Your email address will not be published. Required fields are marked *