Node.js é uma plataforma JavaScript para desenvolvimento de aplicações de servidor que utiliza o mecanismo de event loop para lidar com operações de entrada e saída de forma não bloqueante, permitindo escalabilidade e desempenho superior em aplicações com alto volume de requisições de I/O. A plataforma possui uma grande comunidade e bibliotecas em constante evolução, sendo adequada para problemas onde o gargalo é o I/O, porém a linguagem JavaScript apresenta algumas limitações e a ausência de frameworks maduros como Rails e Django.
10. Event Loop (Node.js)
• 1 única Thread.
• Não bloqueia I/O.
• Não há problema com lock.
• Não usa mais memória com novos eventos.
Deixa o SO tratar o I/O e espera a resposta
sem travar os recursos.
11. Threads
• Cada Thread requer memória.
• Troca de Thread é custosa para o CPU.
• Problema com o lock.
21. Prós
• Front-end e Back-end com o mesmo código;
• Comunidade gigantesca;
• Muitas boas bibliotecas surgem por dia;
• I/O assíncrono.
• Ótimo em caso de que o problema é o I/O
22. Contras
• Javascript é uma linguagem ruim (Maurício
Linhares, Javascript from Hell).
– Não é OO.
– NaN !== NaN
– typeof NaN === “number”
• Node.js novo, bibliotecas novas;
• Callback hell;
• Não existe algo que chegue perto do Rails ou
do Django.