Javascript - The Final Big Language FBL

JavaScript will not just be the NBL (Next Big Language) it will be the FBL - Final Big Language.

Big statement, but I think the pieces are falling into place to make this happen and I think Node.js will be a big driver of this process. It will be the driver for JavaScript server side as Rails was for driving Ruby for server side development.

Rails crystallised many great ideas in how to develop web applications and Ruby's design allowed this to be coded in a very clean way. Many of the ideas had been around for a while but it took DHH using Ruby to seed the community around a Rails. Just look how it's transformed web development over the past 6 years, and how it has influenced so many other frameworks in other languages.

I see node.js as the seed for JavaScript on the server side. OK it's lower down the stack than Rails, but it's seeded the idea of what is possible with JavaScript on the server, just look at how interest is developing. Already frameworks taking the best of Rails/Django are starting to appear running on node.js, and the performance for such young frameworks hint at what will be possible in the near future.

The crucial factor in JavaScript being the FBL is the server programming language now matches the client. Do not underestimate the impact of this. Since web development began we've moved through various languages server side...  PERL, Java, PHP, ASP, Python, Ruby, and many more. On the client side we've just had JavaScript since 1994 - 16 years! (ok Microsoft did have a go with VBScript in the browser, enough said).

Once you can develop on the server and client side in one language, unless the client side changes, it would seem unlikely on the server side you would move on to another language. As a developer why would you go from working with one common language and common set of libraries covering both server & client side to learning a separate language when you are still going to be developing in JavaScript on the client side. The benefits of a new server side language would need to be substantial to break from having one consistent language.

I'm not saying JavaScript is the 'best' language (however you define that), just that it will become very popular.

node.js will lead this, event driven server side programming that by it's nature allows very high performance (even for such a new system), and JavaScript provides a very natural environment for callback based development. Take a look at the chat example to see how the environment provides such a natural fit and the code reduction that comes from this.

JavaScript is being built into many technologies, just look at CouchDB using JavaScript for it's view language and as I've previously written, JavaScript in Yahoo's query language and many other services & obviously the browser.

How about developing apps for iPhone & Android in JavaScript. No problem just take a look at Appcelerator

The progress seems unstoppable, will we all be JavaScript developers in the future?

Javascript is slowly becoming the next big language (NBL)

Over time the perception of Javascript has changed from a language suitable for small bits of coding on a web page, to one where serious applications can be developed. With the language having an EMCA standard and with Douglas Crockford's excellent book JavaScript: The Good Parts showing you how to make the most of the language while avoiding the unfortunate historical yuckky bits, it has the underlying capabilities of a serious language.

With the AJAX movement and serious clients (GMail & Google Calender to name two) demonstrating what's possible in the wild. We also have new Javascript engines coming up in several browsers (Chrome, Firefox & Safari) that are an order of magnitude faster in performance. These will allow for a major jump in the functionality of applications running in the browser.

 Below I've listed just some technologies that are programmed with Javascript. 

Client Side

Server Side

  • Over 35 different options for running JavaScript on the server. Take a look at the list on wikipedia

Just a couple of highlights from the list are;

 

What other language allows you to target so many platforms, from a web browser to a mobile phone to a web server. Also with services like the Yahoo YQL, you can now run fragments of Javascript on their servers rather than developing whole applications.

With application and srvices created as mash-ups of other services, in the future Javascript is going to be the glue on the server as well as the client that will tie it all together. Yahoo YQL hints at where this might go in the future, where your 'application' is just Javascript code located across many servers coordinating other services, rather than a whole application installed on a server.

This is why Javascript will be the NBL. Not because it's the 'best' language, has the most features, is the only language developers want to use. But because one language will allow you to target so many platforms. As the javascript engines performance increases it will move into more and more development areas, it is only a matter of time...