Creative Dveloper

Menu

How Javascript is creating a web development renaissance

It’s a good time to be a web developer. As someone who’s been building web applications since the 90s, I can happily say that I don’t think the future of the web has ever looked rosier. There are a number of reasons for that, but chief among them I believe is the recent renaissance in the JavaScript language.

JavaScript is the often maligned, ubiquitous language that all browsers run to perform dynamic, ‘client-side’ behaviour on web pages. It is often maligned because it is lacking in some areas, unusual in others and downright confusing in a few more. It was developed by Brendan Eich in 1995 at Netscape at the start of the first browser wars and, given that competitive environment, has done remarkably well in providing a common platform for web developers to code to.

For many years JavaScript was relegated mostly to simple scripts that performed very basic functions on a page. It was slow and feature poor, and web developers had to resort to proprietary Flash to get anything more complex done. Arguably the turning point came with the birth of AJAX, which was first popularised by the release of Gmail in 2004. Gmail was a major step forward for web applications, providing a rich internet application experience without page refreshes (or Flash!).

From there momentum began to build, but there were still many years of browser improvements to come before JavaScript became fast enough to be relied upon for complex applications. Google continued building out its online productivity suite, but such feats of software engineering were generally seen as far beyond the capabilities of most web developers – the tools were simply not available.

This is no longer the case. In the last year or two the world of JavaScript has come alight, with a plethora of frameworks, libraries and utilities being released that are well documented, well supported and very capable. From the early days of Dojo, to the rise of jQuery, to the current (over?) abundance of JavaScript MVC frameworks, it’s becoming difficult to keep up.

Coding style has received considered attention too, with certain patterns being promoted to protect against some of the more pernicious areas of the language. In fact, a new language called Coffeescripthas arisen which compiles to JavaScript and avoids some of the dangers that JavaScript exposes while providing an alternative syntax for those who prefer, say, Ruby.

Of course the renaissance has not been client-side only, and a similar renaissance has been occurring on the servers. This article would not be complete without a mention of the Ruby on Rails or Grails frameworks, which have promoted concepts such as convention over configuration to increase developer productivity.

JavaScript has not been left out however — Node.js is a server-side JavaScript framework which looks very promising in terms of supporting a large number of clients simultaneously, which we will certainly need to do as mobile phones take to the web in ever-increasing numbers.

A language is only one tool however, and must be supported by other tools to be useful. In this regard the recent rise of HTML5 has been critical and JavaScript developers now have access to advanced facilities across the range of modern browsers, from offline caching to history manipulation, and peripheral communication to complex rendering. Even 3D games are now being written — see this re-incarnation of Quake 3, and this demo of Quake 4!

It’s a world that is moving very quickly, with some of the world’s best and brightest focussing their attention on it backed by smart money. Windows 8’s Metro and smart TVs will provide massive ubiquity in coming years for the JavaScript environment, allowing code reuse across multiple platforms from mobile to desktop to living room.

It’s a good time to be a web developer, and if you’ve been focussing somewhere else for a while it may be worth taking another look at. JavaScript has a modern, grown-up environment to work in, and it means business.