¿Cuál es el bombo en torno a la programación asincrónica en estos días en el lado severo al crear aplicaciones web?

En primer lugar, necesitamos saber qué es realmente ” asíncrono” .
La palabra “Asíncrono” se usa de dos maneras dentro del desarrollo web.

En 2005 Jesse James Garrett acuñó la palabra AJAX que significaba “JavaScript y XML asincrónicos”.
Ahora piense en la condición de que esté viendo la página de sus canales de noticias en su Facebook y mientras deseaba que le gustara una foto de su amigo, hizo clic en el botón Me gusta debajo de la foto de su amigo y, de repente, toda la página se actualizó , ¿no sería mejor que la página envíe su solicitud de que me guste esta foto en segundo plano y que el botón Me gusta cambie su estado sin actualizar la página y la base de datos también se actualice, lo que eventualmente le enviará una notificación a su amigo.
Este patrón se llama Ajax, aunque XML ya no se usa pero se usa JSON.
Ahora esta Asíncrona (palabra) se usó en el sentido de que la página no se actualizó para cambiar el contenido.

Hay otro término sin bloqueo . Aquí viene el Node.js. El servidor NodeJs envía y recibe datos del cliente de manera no bloqueante. Aquí, sin bloqueo significa que los datos no se establecerán en una cola y se recibirán en el cliente uno tras otro. Aquí están involucrados HTML 5 WebSockets. WebSockets proporciona una conexión dúplex completa , donde el cliente no necesita enviar una nueva llamada AJAX a través de HTTP para buscar actualizaciones en el servidor, pero el servidor envía las actualizaciones una vez que se establece la conexión, y esta conexión dura hasta que el propio cliente solicite cerrando esta conexión. Esto también se llama comunicación web en tiempo real . Full duplex o web en tiempo real significa que el cliente no necesita esperar para enviar la segunda solicitud para que el servidor complete la primera solicitud, los datos del servidor no bloquean el camino para los datos del cliente y viceversa viceversa

Si miras este video de 9 minutos sobre MeteorJs, sabrás lo poderosa que podría ser la web en tiempo real.

Pero si implementa WebSockets, puede crear el mismo mecanismo en tiempo real en casi todos los idiomas del lado del servidor. Piense en el sistema de chat y notificación de Facebook.

Ahora digamos algunas palabras sobre la programación asincrónica.
La programación asincrónica significa que diferentes bits de código se ejecutan como hilos diferentes. Esto significa que el procesamiento a nivel de aplicación de entrada y salida se realiza en paralelo.
Ahora, si toma un nodo, el nodo tiene un solo subproceso y el procesamiento a nivel de aplicación de entrada y salida no se realiza en paralelo.

Resumen : el nodo se procesa como una aplicación de subproceso único (síncrono) en el procesador y se entrega al cliente de forma no bloqueante (asíncrono / en tiempo real).
También puede lograr este comportamiento sin bloqueo utilizando cualquier otro lenguaje del lado del servidor si implementa websockets en él, por ejemplo, Ratchet – PHP WebSockets.

como explica Mozilla:

Una propiedad muy interesante del modelo de bucle de eventos es que JavaScript, a diferencia de muchos otros lenguajes, nunca se bloquea. El manejo de E / S generalmente se realiza a través de eventos y devoluciones de llamada, por lo que cuando la aplicación está esperando que regrese una consulta IndexedDB o una solicitud XHR, aún puede procesar otras cosas como la entrada del usuario.

lo cual es bastante interesante, porque para reproducir eso sería necesario algunos hilos y cosas concurrentes.

debajo del capó esto es posible debido al bucle de eventos de JavaScript:

Yo personalmente uso Python, Node y Ruby. No salte y comience a usar Node ciegamente, ser “asíncrono” no puede ser la única razón.

En primer lugar, node.js no es alternativo de Python. Python es un lenguaje poderoso y debes seguirlo y aprender nods.js también.

Puede usar Python para crear un comportamiento asincrónico en su aplicación web. como explicó Arif Hussain Bangash, pero definitivamente puede haber casos en los que necesite usar node.js y no Python o cualquier otra cosa, y esto depende de lo que esté desarrollando, como si está creando un servidor para algún juego de alto tráfico.

Las aplicaciones web asincrónicas, también conocidas como sitios web AJAX, hacen que un sitio web se comporte como una aplicación. Solo se actualiza la parte del sitio con la que está interactuando, lo que le ahorra tiempo y el servidor tiene menos solicitudes que manejar. No tiene que actualizar todo el sitio para enviar un formulario, por ejemplo.

Este es realmente el camino a seguir.