Ya expliqué los principales ventajas e inconvenientes de Node.JS, PHP y .NET en otro post: http://blog.cballesterosvelasco.es/2012/01/comparativa-entre-php-nodejs-y-net-php.html
Llevo un par de días montando Node.Net. Una alternativa a Node.Js que hace uso de las nuevas características de .NET 4.5.

Poned el vídeo a 720p y a pantalla completa para que se vea bien.

Proyecto: https://github.com/soywiz/nodenet

¿Qué sentido tiene montar otra cosa como Node.JS?

Aquí es donde entran los inconvenientes de Node.JS:

  • Tipado completamente dinámico (los IDEs lo tienen difícil con el autocompletado) y generalmente se trabaja sin autocompletado y detectando los errores al ejecutar o al depurar en vez de detectarlos mientras se escribe el código
  • No hay un IDE en condiciones
  • Flujo orientado a eventos
  • Javascript no tiene clases ni muchísimas cosas que se echan en falta.
  • La forma en la que en Javascript se extienden cosas es muy problemática (en .NET con los extension methods es mucho mejor)
  • La propagación de excepciones de penosísima y es prácticamente inexistente (precisamente porque los eventos no mantienen un estado restaurable)

¿Qué ofrece Node.NET?

Node.NET funciona en cualquier lenguaje de .NET y aunque presenta el inconveniente de que deja hacer asíncrono incorrecto, el IDE avisa de una forma bastante destacada y ayuda a hacerlo bastante bien como se puede apreciar en el vídeo.

  • .NET ofrece el mejor tipado estático que hay actualmente
  • Tiene muchísimas APIs de base muy potentes
  • Es un lenguaje orientado a objetos modernos con todo lo que puedas esperar: sobreescritura de operadores, herencia de clases, extension methods, LINQ, eventos, soporte dynamic etc.
  • El Visual Studio Express es gratuito, también está el MonoDevelop
  • El modelo de async/await convierte los métodos asíncronos en máquinas de estado mega eficientes de cara a la ejecución.
  • Permite crear código asíncrono con un flujo secuencial
  • Permite hacer try { } catch { } con métodos asíncronos, así que se pueden propagar las excepciones de una forma fácil
  • Todas las ventajas de .NET y su velocidad
  • Puede funcionar en linux y mac haciendo uso de Mono >= 2.12 que soporta ya .NET 4.5

Hello World Http en Node.JS:

var http = require('http');

http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.write('Hello World\n', function() {
    response.end('');
  });
}).listen(8124);
ab -n 10000 -c 200 http://127.0.0.1:8124/test
Requests per second:    7644.83 [#/sec] (mean)

Hello World Http en Node.Net:

await HttpServer.Create(async (Request, Response) =>
{
  Response.Buffering = true;

  Response.Code = 200;
  Response.Headers["Content-Type"] = "text/plain";
     
  await Response.WriteChunkAsync("Hello World!");
  await Response.WriteChunkAsync("");
}).ListenAsync(80);
ab -n 10000 -c 200 http://127.0.0.1:8124/test
Requests per second:    8374.73 [#/sec] (mean)

Nota que mientras se depura en el Visual Studio los RPS serán unos 1000 o 1000 y pico como mucho. Esto es normal ya que la ejecución es sustancialmente más lenta mientras se depura. Cuando se lanza como un ejecutable normal los RPS alcanzarán la cifra comentada.