Ir al contenido principal

Javascript del lado del servidor. En serio!!!!




Hoy javascript ha dado un salto gigantesco, ya no solo es un lenguaje de programación del lado del cliente(Que permite mejorar las funcionalidades y trabajo desde el navegador), hoy también es un lenguaje de servidor, y su nombre es NodeJS.

Node es un interprete de javascript que funciona a nivel del servidor. Esto significa que con el puedes programar lógica de backend tal cual lo hace los lenguajes clásicos que conocemos, PHP, Java, C#, etc. Esto abre la puerta a poder desarrollar en un solo lenguaje toda una aplicación, sin tener que estar saltando de un lenguaje a otro para tener nuestra web app funcionando.

¿Como nació nodejs?

Nodejs nació de V8, este es un entorno de ejecución de javascript creado por google chrome, es un software libre desde el 2008 y esta escrito en C++, la tarea de este entorno es compilar código javascript a lenguaje de maquina en ves de interpretarlo en tiempo real como lo haría en una pagina web. gracias a esto, javascript puede ser usado hoy como un lenguaje mas de programación del lado del servidor.

¿Que características tiene nodejs comparado con otros lenguajes?

Supongamos que necesitamos crear una aplicación de alta disponibilidad, osea con muchos usuarios concurrentes, lo que hacen normalmente lenguajes de programación como PHP es generar un hilo que consume recursos del sistema para cada petición que genera un usuario conectado al sistema (aproximadamente 2MB de memoria), si un sistema tiene 8GB de ram, aproximadamente esto nos da que pueden haber cerca de 4.000 usuarios concurrentes en la aplicación sin problemas, pero ¿que pasa si supera esa cantidad de usuarios?, nuestra aplicación se caerá y comenzara a encolar las peticiones hasta que los usuarios se vayan desconectando para así poder seguir tomando y creando nuevos hilos. Bueno nodejs tiene la solución a esto, nodejs no genera un hilo de sistema operativo para cada petición, si no que cada petición es gestionada por el motor V8 de nodejs. Por lo que es mucho mas eficiente en el uso de recursos de una computadora o servidor, pudiendo atender simultaneamente decenas de miles de usuarios concurrentes sin generar ningún tipo de bloqueo.

¿Porque aprender y usar nodejs?

Como se habrán podido dar cuenta las posibilidades, la estabilidad, y la velocidad de node son incomparables, además muchos ya conocemos javascript, ¿porque no usarlo también en nuestro back-end?. Javascript esta cambiando la manera en que hoy se arman y crean sistemas web (web-app) en un mundo cambiante, donde la cantidad de datos que se manejas es exorbitante, es importante tener herramientas que nos permitan manejar de la mejor manera esto, sin además perder performance y dándole a nuestros usuarios entornos ágiles de uso y seguros. Además javascript del lado del servidor nos da la ventaja de poder usar un solo lenguaje en todo el proceso de la creación de un sistema, tal como comente al principio de esta publicación.

¿Que debemos tener para comenzar a usar nodejs?

Es la pregunta mas obvia después de leer todo lo que he escrito, pues es muy simple. (Te recomendamos usar alguna computadora con linux o mac, pero si no la posees, no te preocupes, nodejs también es compatible con windows), veamos los pasos a seguir:

1. Ingresa al sitio web de nodejs https://nodejs.org/es/
2. Descarga he instala la ultima versión, a la fecha de esta publicación la ultima versión es la v7.7.3.
3. Instala un editor de código, te recomendamos usar atom, brackets, visual studio code, sublime text, notepad++
4. Comienza a codear, te dejaremos un mini script para ir soltando los dedos:

console.log('Somos pro-gramadores');

guarda eso en un archivo llamado 'app.js'

luego abre la consola de tu sistema operativo y navega hasta el directorio donde esta el archivo que acabas de crear, y escribe lo siguiente:

node app.js

Ahora observa la magia, si todo va bien debería imprimirse un mensaje en la pantalla de tu consola, se que puede sonar muy básico lo que acabamos de hacer, pero veras mas adelante que esto es solo el comienzo, con node puedes crear sistemas de alta complejidad, puedes crear tus propias apis rest para que un cliente las consuma, conectarte con una base de datos para guardar registros de usuarios o autenticarlos en tu sitio, etc.

Seguiremos publicando mas post de nodejs y de javascript, por ahora acabamos acá, te dejo un link donde hay una api rest de prueba que hicimos en un meetup de pro-gramadores, donde creamos todo con nodejs.

Meetup APIREST

Entradas más populares de este blog

Pares e impares en C#

Hola amigos, hoy comentare un poco de como realizar dos operaciones matemáticas que nos ayudaran en varias cosas o requerimientos en la programacion de un software. Veremos como calcular y el comparar si un numero es par o impar. Para esto usamos el algoritmo básico de una división que nos dice, Al dividir un numero n, si el resto de la división es un 0, el numero n es un par y si es 1 entonces es impar. Como podemos realizar la misma tres matemática en programacion! De la siguiente manera Tenemos : Int n = 2; If( n% 2 == 0) { Console.WriteLine(" el numero "+n+" es par"); } Else { Console.WriteLine(" el numero "+n+" es impar"); } Console.ReadKey( ); El porcentaje dentro del if, evalúa la operación, esa operación o símbolo es conocido como mod, el mod de una división es el residuo de la misma operación y como vimos anteriormente para ver si un numero es par o impar necesitábamos saber si su residuo era 1 u 0. Realicen...

Switch y Case en C#

Switch es una estructura condicional que compara una variable con una lista de posibles resultados y, cuando esta coincide, ejecuta el código que se encuentra dentro de la opción,  se puede utilizar para generar pequeños menús dentro de una aplicación, como ya vimos en publicaciones anteriores, también funciona como validador. Por ejemplo: static void Main( string [] args) { Console .WriteLine( "Elija una opcion" ); //Mensajes en pantalla Console .WriteLine( "" ); //creo un salto de linea para que se vea mas ordenada la pantalla Console .WriteLine( "****** 1 *****" ); Console .WriteLine( "****** 2 *****" ); Console .WriteLine( "" ); Console .Write( "Ingrese el numero de su opcion: " ); int opcion = Convert .ToInt32( Console .ReadLine()); //declaro una variable y le paso como parametro lo que escriba el usuario Console .WriteLine( "" ); switch (opcion) //ultilizo la variable para la opci...

Stack (Pila) en C#

Haca les traigo un nuevo código, les daré una breve explicación de que es el "Stack" en ingles o "Pila" en español. Una pila (stack en inglés) es una estructura de datos de tipo LIFO (del inglés Last In First Out, último en entrar, primero en salir) que permite almacenar y recuperar datos. Se aplica en multitud de ocasiones en informática debido a su simplicidad y ordenación implícita en la propia estructura. En cada momento sólo se tiene acceso a la parte superior de la pila, es decir, al último objeto apilado (denominado TOS, top of stack en inglés). La operación retirar permite la obtención de este elemento, que es retirado de la pila permitiendo el acceso al siguiente (apilado con anterioridad), que pasa a ser el nuevo TOS. Por analogía con objetos cotidianos, una operación apilar equivaldría a colocar un plato sobre una pila de platos, y una operación retirar a retirarlo. Las pilas suelen emplearse en los siguientes contextos: Evaluación de expresio...