Giving developers the ability to use the same technology stack has a lot of potential. While this will not work for every type of web application, it will make things easier for front end developers working with their back end developers.
When building web apps, there are many architectural decisions. In today's development world, allowing for rapid development, constant iteration, speed, robustness, etc. Lean and agile are the key. Selecting technologies that facilitate these objectives are not easy.
Full-stack JavaScript has the potential to support this. With Node.js handling the backend server functions for many types of server apps, you have the potential to use a single stack technology.
This is useful for a number of reasons:
Not only do you get a single development language for client and server, you reap the benefits of Node.js. Node has changed the way we handle I/O access. With its non-blocking programming model (similar to nginx) and JavaScript's event-loop nature, you have a powerful backend environment for many types of applications. And most JavaScript developers know how to handle this model using callbacks, which are built into the language. This provides an extremely fast server environment.
The biggest challenge with non-blocking programming is when you get into very complex callbacks mechanisms. But with ES6, you will see the use of promises and generators. Both are much better at solving the typical callback challenge. And since you do not need to worry about browser compatibility on the server, you can start using ES6 with Node right away!
Many used to argue that JavaScript wasn't powerful enough to handle server functions. But with ES6, it is getting more and more powerful all the time. And JavaScript supports functional programming, dynamic objects and prototypal inheritance.
Plus, the number of Node modules that are becoming available on NPM is growing like crazy. So chances are, many of the modules you may need for your application are already available, or least you have a good starting point.
Node has also become a great tool for front-end developers. Bower, a good front-end package manager, Libsass for compiling Sass, Grunt for automated build tasks, Mocha for unit testing and many other tools are now built on Node.
While there are some applications that may not be suited for a full JavaScript stack, there are many that can leverage this platform. And any web app with high I/O requirements, look no further. Node.js with Socket.io is incredibly fast.