One interesting reference on the subject is the final seection of Richard Gabriel's Patterns of Software[1].
And just to play devil's advocate: both Smalltalk and Lisp were designed ex novo to do things that had never been done before on machines that didn't yet exist. In contrast, node.js was built on top of pre-existing languages and tools already familiar to its target audience, to solve broadly similar problems in familiar environments.
Not that there's anything wrong with that — but it's hardly a fair comparison.
And just to play devil's advocate: both Smalltalk and Lisp were designed ex novo to do things that had never been done before on machines that didn't yet exist. In contrast, node.js was built on top of pre-existing languages and tools already familiar to its target audience, to solve broadly similar problems in familiar environments.
Not that there's anything wrong with that — but it's hardly a fair comparison.
[1] http://www.dreamsongs.com/Files/PatternsOfSoftware.pdf