Vnc.js: how to build a JavaScript VNC Client
engineering.linkedin.com
engineering.linkedin.com
Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.
I've considered writing one that would operate on broken old browsers with no canvas support (in case I'm ever stuck with just IE6/7/8 in a place where I need to remote control one of my machines) which would take some extra work to be even moderately efficient, the server half having to translate changes into images to be delivered and positioned by the client half, and the client half dropping blocks as they become irrelevant (as their entire area has been replaced by later updates).
JS as a language is perfectly complete in terms of being capable of all this. The missing parts are not in the langauge but the supporting libraries (i.e. you can't just open a TCP connection client-side).