I'm a Meteor developer, using full-stack Javascript 100% of the time... Node.js, MongoDB, and jQuery are my stock in trade. If you're not familiar, Meteor is basically 'Javascript on Rails'. And, in my experience, everything in the article is spot on. As to the jaw-dropping abilities...
- developing in a unified language has increased my productivity 5x to 10x. I get done in a weekend what used to take me a month or more to do in PHP or C#. That's jaw dropping from a business sense, and has allowed me to completely change my business structure and approach. Frameworks like Meteor and Derby are going to win out on productivity gains alone. I can go from an initial client meeting to launching a beta of a multi-user application in a weekend.
- remember that javascript is based on actionscript, based on scheme, based on lisp. When you have your client, server, and database all using a functional language, you can start creating UI elements as monad operations on datastore elements. No objects ever on the heap. Just chained functions from database to server to client to UI. Among other things, this allows for things like reactive templates, demonstrated in the following screencast:
http://meteor.com/screencast
- besides the reactive templates, sharing of libraries between client and server makes every Meteor application theoretically capable of becoming a peer-to-peer distributed application. No PHP or Ruby or C# web application can do that. In theory, you could bundle the node.js libraries themselves into the client, and have each served client become a new peer-to-peer node.
- this allows mesh networking functionality, with monad operations defining computations between and through nodes. Think of it like routing protocols, but with computations. Lots of distributed computing possibilities here, obviously. More importantly is bandwidth usage, offline data synchronization, and the like. Instead of going to a data center to get the latest package updates, applications will be able to query neighbor nodes. Think IPv6 functionality, mesh networking, and being able to query data states from intermediary peers. The people in the Meteor dev community are actively working on things ranging from meters for smart energy grids to real-time bee pollination tracking.
Those technical details aside, the underlying reason why pure javascript can result in jaw-dropping applications is because, at it's core, javascript is a functional language, in the manner of lisp (if you know how to use the lambda calculus). It's lisp for the web (or scheme for the web, if you prefer). And putting it on both the server and client and database allows developers to do crazy monad calculations and method chaining. The monads will update and recalculate themselves in real time, as the underlying data changes. The end result is reactive templates and data-driven animations and UI elements.
If you want a better understanding how this is going to play out, check out the D3 visualization library here:
https://github.com/mbostock/d3/wiki/Gallery
Then, imagine all those visualizations used to create applications like in Processing:
http://processing.org/exhibition/
That's the direction this stuff is headed in. If you want to see some real examples in action, consider the interactives on the New York Times
http://www.nytimes.com/interactive/2012/05/17/business/dealbook/how-the-facebook-offering-compares.html?_r=0
http://www.nytimes.com/interactive/2012/02/13/us/politics/2013-budget-proposal-graphic.html
http://www.nytimes.com/interactive/2012/09/04/us/politics/democratic-convention-words.html#Ryan
http://www.nytimes.com/interactive/2012/08/11/sunday-review/drought-history.html
http://elections.nytimes.com/2012/ratings/electoral-map
And imagine these kinds of interactives being built on real-time data, so when the underlying data changes, the changes are pushed to all the clients automatically.
It's late. I'm not sure I'm explaining this very clearly or coherently. But all I know is that pure Javascript frameworks, like Meteor or Derby, are the way of the future. Had Python or PHP been installed on Netscape instead of Javascript, we'd be talking about Python on Rails or PHP on Rails. But they weren't. So, we're talking about Javascript on Rails. And it's a beautiful thing when you grok it.