La Magia de JavaScript - NodeJS
¡Hola!
Soy nueva en esto de escribir artículos, así que de ante mano les pido disculpas por errores, ya sea gramaticales , en la explicación o algo técnico.
En este artículo les quiero hablar sobre este maravilloso lenguaje; JavaScript, al principio yo lo aprendí usando desde el lado del cliente, pero a mi no me gustaba o atraía tanto el frontend, por ende quería aprender backend, buscando como iniciarme en esta parte del mundo de la tecnología, me encontré que con JavaScript lo puedes utilizar sin problemas desde el lado del servidor y esto gracias a Node.
Node hace que JS salga del navegador, y los desarrolladores puedan utilizar este lenguaje para otras funcionalidades que no sea solo servicio al cliente.
Partamos desde lo mas básico, Node es un entorno de ejecución, así como lo es el navegador, Node hace uso de librerías y el motor V8 para ejecutar código JS, esto es lo que le hace tan genial y hábil, que tenga el mismo motor que usa chrome.
En la imagen de arriba vemos la Arquitectura de Node, gracias a todos esos “módulos” (por llamarlo de alguna forma), es que JS puede funcionar para crear servidores, aplicaciones de escritorio, IoT , ect.
En primera instancia tenemos a la librería de JS, ahí es donde se encuentran todos los módulos nativos de Node (http, fs, etc). Después esta los Bindings que se encargan de enlazar las librerías que están escritas en JS al “módulo” Livub que esta escrito en C++.
Por otro lado tenemos al motor V8 que esta escrito en C++, que usa un intérprete y un compilador, el intérprete ejecuta el código Js de una forma muy rápida, y el compilador traduce código JS a código máquina. (Una vez traducido a código máquina, el computador del usuario lo entiende de una)
“El motor es el software que interpreta el código JavaScript y que a su vez, ejecuta un script acorde a las instrucciones dadas.”
Por ultimo tenemos a Libuv, en la cual se encarga de manejar el bucle de eventos(Event Loop), este último es lo que hace que JS sea especial.
Les explicaré de la forma más sencilla como funciona el bucle de eventos: Hay un “cola principal” donde se colocan todas las tareas que escribiste en tu código de JS.
Las tareas se ejecutan de a una a la vez, o si son pesadas, bloquea a otras tareas y se mandan a otro lugar para que las resuelva. Una vez que estas tareas pesadas y “bloqueantes” son resueltas en otro lugar, tienen que ir de regreso a la “cola principal” para ser devuelta, ¿pero que pasa si en esa “cola principal” hay tareas resolviéndose?, ahí es donde entra el bucle de eventos, su principal tarea es saber cuando la “cola principal” esta sin tareas para que entren esas tareas pesadas que fueron resueltas en otro lugar.
Una forma mas sencilla de decir cual es la tarea del bucle de eventos es diciendo que este último le pregunta a cada rato a la “cola principal”; “ ¿estas vacía?”, una y otra vez hasta que le responda con un “si”.
Y aquí finaliza el artículo, espero que les haya sido de ayuda, lo trate de escribir de la forma mas sencilla y sin nada de tecnicismo, la idea principal mas que nada es para que se entienda y se comprenda.
Cualquier feedback es bienvenido 😁
#TecnologiaenEspañol