Ever since the beginning of JS I had never even considered learning it. My world was "real" languages like C and C++ on embedded systems. Why on earth would I be concerned about some stupid, slow, scripting language in a browser?
Until a year or so ago then...
My saviours were: HTML5 with WebGL and the Three.js and IvanK libraries. Data streamed to the browser via Web Sockets. But how to feed those web sockets? Easy write a little HTTP server in Node.js. BINGO JS everywhere up and running in a few weeks learning everything from scratch.
The other big surprise is that we now have server side components rewritten in JS and running under node.js that perform almost as well as their previous C++ incarnations but are a thousand times easier to develop and maintain.
JS on those embedded systems? Yep, I already have communication centric work being done in Node.js out in the field on small ARM boards. All be it a lot less small and cheap than the Espruino.