¿Qué lenguaje de programación ha sido afectado por Node.js? ¿Es PHP o algún otro lenguaje de fondo?

Node.js es diferente de cualquier otro lenguaje tradicional o de “bloqueo” como Java, PHP, Python e incluso C # (ASP.NET) se ha visto afectado debido a Node.js.

La USP of Node es E / S sin bloqueo o basada en eventos. Para comprender el no bloqueo, debe saber cómo es diferente de E / S en otros idiomas. Más importante aún, el no bloqueo es muy diferente al multihilo o al procesamiento múltiple.

Un script de nodo es de un solo subproceso, pero la forma en que realiza E / S sin bloqueo le otorga un tremendo poder para escalar en comparación con los lenguajes tradicionales, aunque está escrito en un lenguaje interpretado como JavaScript . En los lenguajes tradicionales, cuando realiza una llamada de E / S como file_getcontents() en PHP o open(filename,”r”).read() en Python, todo su proceso se detiene o “bloquea” hasta que esa función regrese con sus datos Ahora, puede decir que unos pocos milisegundos de espera en una sola lectura de disco no deberían molestarlo, ¡pero imagine el sistema de fondo de una aplicación web popular como quora que podría estar haciendo millones de solicitudes de lectura por segundo!

En una configuración tradicional como PHP / Java / ASP.NET, muchos de sus procesos de back-end se atascarán en este modo de E / S de disco, especialmente cuando su servidor está abrumado por las solicitudes. Para resolver este problema de escalado, haga una de estas cosas:

  1. Agregue más recursos: compra más RAM y / o CPU.
  2. Introducir colas / middleware: como alternativa, puede introducir un nuevo componente de escala, como un búfer de memoria memcached o una cola de mensajes como RabbitMQ .

Pero ambas soluciones implican aumentar los recursos, por lo tanto, le cuestan dinero. Solo el nodo le permite escalar a niveles astronómicos a un costo muy económico debido a su modelo de E / S sin bloqueo.

El único problema con el nodo en la actualidad es que su ecosistema puede no estar tan desarrollado como otros. Las bibliotecas y los marcos de nodos (como express.js) no están tan probados en el tiempo como J2EE / Spring de Java o Django de Python.

También existe el caso de que JavaScript es un lenguaje interpretado y Java y C # son compilados y alimentados por un recolector de basura, por lo que estos últimos tienen una ligera ventaja de rendimiento. Sin embargo, dado que el 90% de las aplicaciones en estos días son intensivas en E / S y no intensivas en CPU, el beneficio de velocidad general va a favor de los nodos y JavaScript.

Otras lecturas:

E / S asíncrona – Wikipedia

No hay un solo lenguaje de programación de fondo que se haya visto afectado, ¡todos los lenguajes de programación del lado del servidor se han visto afectados!

Veamos por qué NodeJS ha hecho mella en el universo del lado del servidor:

  • ¡Debido a su naturaleza asincrónica, es extremadamente rápido!
  • Si está utilizando NodeJS, está utilizando JavaScript en todo su proyecto, ¡y eso es increíble!
  • Muchos paquetes útiles provistos con npm.

Hice un clon de Instagram con PHP, fue bueno pero lento. ¡Así que decidí convertirlo en una aplicación MERN (NodeJS, ExpressJS, ReactJS, Redux, Webpack, MySQL), y debo decirle que es extremadamente rápido y divertido!

¡Así que migré de PHP a NodeJS como tantos!

Por lo tanto, cada lenguaje de programación del lado del servidor se ha visto afectado por NodeJS.

Diría que Java (además de PHP), ya que muchas nuevas empresas están usando Node.js, pero no tengo ningún número.