In any web development company, there exists two different worlds; well there are more, but we'll just focus on - front end (designers) & back end (developers)

The Front end guys are responsible for making something that is visible to the end users (THE LOOK). The back end guys are responsible for making the front end work (THE FUNCTIONALITY). Together, they both deliver a complete web application/site.

The back end developers would typically use programming languages, such as Java/C /Python. Apart from talking to database and processing requests, they even have an arsenal of libraries to generate the site markup (JSPs, server side templates, etc).

Front end guys usually fill in by writing HTML documents and CSS files (merely a writer) to present this markup in an visually pleasing way and back end just take these templates to populate data.

Front end had only one option to do any logical operations, by using *JavaScript *- which has been used for a long time just to validate forms (and do some freaky stuffs).

Because of this *cultural *difference, there's always been a ego-war between these two worlds. Even the company management would rate the front end guys par below the back end developers because the front ends guys don't do any serious programming.

All was going fine until the web2.0 era. Now, the front end realized that they could use JavaScript to do much more cooler stuffs than just the form validation. The development of high speed JavaScript engines (such as V8) made it possible to run complex JavaScript code right in the browser. With the introduction of technologies such as WebGL and Canvas, even graphics rendering became feasible using JavaScript.

But, this didn't change anything on the server side; the server programs were still running on JVMs/Rubys/Pythons.

Fast forward to today: The scenario is dramatically changing. JavaScript has just sneaked its way into the servers. Now, it is no longer required that a web application needs to have a back end programming language such as Java/C . Everything can be done using just JavaScript.

Thanks to node.js **which made it possible to run the JavaScript on the server side. Using MongoDB, one can replace the need to have SQL code and now store JSON documents using JavaScript MongoDB connectors. The JavaScript template libraries such as **/Underscore almost removed the need to have server side templates (JSPs). On the client side, JavaScript MVC frameworks such as *Backbone.JS *enable us to write maintainable code. And, there's always the plain old JavaScript waiting for us to write some form validation script.

With that, now it is possible to do the heavy lifting just by using JavaScript. The front end JavaScript programmers no longer need to focus on just the front end. They can use their skill set to develop the web application end-to-end.

This rise of the front end developers poses a real threat to the survival of back end developers. If you are one of that back end guy, do you already realize this threat? What's your game plan to stay fit to survive this challenge?