Dunearhp
Try to convince someone of the value of immutability without mentioning concurrency.
Imperative and functional programming relate in the same way that arithmetic and algebra relate. It is hard to do deep reasoning in maths without algebra and it is impossible to evaluate the value of most algebraic expressions without arithmetic.
There is a reason that functional programming is at the forefront of concurrency research. In the long run, imperative only approaches will be unable to compete, and functional only approaches will remain on paper.
What happens when you want to program for more than ten CPU cores?
Consider: The value of TCP is not in itself, but in the applications that run on it. The greater the market share of TCP, the greater the utility of the applications. The greater the market share of TCP, the greater the incentive for applications to be created for it.
----
The value of Posix is not in itself, but in the applications that run on it. The greater the market share of Posix, the greater the utility of the applications. The greater the market share of Posix, the greater the incentive for applications to be created for it.
Quick summary: Node.js is a program/api written in C that lets you write asynchronous servers in javascript. All IO is done through event loops and callbacks.
If you are interested in the efficiency/architecture of server programs then this is worth watching.
Mostly this is just arguments about semantics.