Embora esse conceito possa de fato ser implementado em vários idiomas (e como dodgy_coder mencionado, ele foi implementado em Ruby e Python, pelo menos), não é tão trivial quanto você afirma.
True, o Java possui APIs de E / S não bloqueantes. Assim, você pode fazer IO bruto de disco / rede de maneira não-bloqueante. No entanto, cada API que de alguma forma envolve ou lida com , o IO também precisa ser implementado de forma não-bloqueante. Cada analisador XML, cada driver de banco de dados, cada conversor de formato de arquivo precisa ser escrito para suportar o IO sem bloqueio. Porque, se uma única biblioteca estiver bloqueando nesse padrão, isso reduzirá o desempenho de seus servidores para valores da idade da pedra.
O Node.js tem essa infraestrutura de biblioteca, porque sempre foi projetado dessa maneira: toda biblioteca que se esforça para se tornar popular tem para fornecer uma API assíncrona ou não será usada.