Marny Lopez (iMrLopez)

Software Engineer

FullStack

BackEnd

FrontEnd

Marny Lopez (iMrLopez)

Software Engineer

FullStack

BackEnd

FrontEnd

Blog Post

Dart vs NodeJs para mi backend ¿Cuál es la mejor opción?

Dart vs NodeJs para mi backend

¿Cuál es la mejor opción?

En este mundo de tecnología son cada vez más los lenguajes que nos hacen la vida más sencilla, sobre todo cuando de programación hablamos. La vez anterior te hable sobre dos de ellos, Ahora vamos a enfocarnos en Node.Js y Dart. Ambos pueden sernos de mucha utilidad para el proyecto que tenemos en mente.

Vamos a ahondar en sus diferencias, sus manejos, sus ventajas y desventajas y por sobre todo en la incógnita de ¿cuál de ellos es la mejor elección? ¡Seguí leyendo para averiguarlo!

Como comentamos, Dart, es un nuevo lenguaje de programación orientado a objetos con bibliotecas, una máquina virtual y herramientas, es una plataforma cohesiva y escalable para crear aplicaciones que se ejecutan en la web (donde puede usar Polymer) o en servidores. Puedes usar las bibliotecas y las herramientas de Dart para escribir cualquier cosa, desde scripts simples hasta aplicaciones con todas las funciones. “Respaldado por Google” es la razón principal  por la que muchos desarrolladores lo eligen.

Node.js:  Es una plataforma basada en el tiempo de ejecución de JavaScript de Chrome para crear fácilmente aplicaciones de red rápidas y escalables. Utiliza un modelo de E/S sin bloqueo y basado en eventos que lo hace liviano y eficiente, perfecto para aplicaciones en tiempo real con uso intensivo de datos que se ejecutan en dispositivos distribuidos. Es de código abierto y se utiliza principalmente para crear aplicaciones web de alto rendimiento y complejas

Dart pertenece a la categoría “Idiomas” de la pila tecnológica, mientras que Node.js se puede clasificar principalmente en “Frameworks (Full Stack)” 

 Adentrándonos en su arquitectura podemos decir que:

Node.js  tiene una arquitectura orientada a eventos, utiliza el modelo de bucle de eventos de un solo hilo para manejar varios clientes al mismo tiempo, en síntesis varios clientes envían una solicitud y el servidor procesa cada una de ellas antes de devolver la respuesta.Menos hilos son menos recursos lo que permite una ejecución más rápida. Esto le permite manejar miles de conexiones concurrentes, lo que lo convierte en una opción perfecta para aplicaciones en tiempo real.

La tecnología de compilación de Dart en cambio le permite ejecutar código de diferentes maneras:

§  Plataforma nativa : Para aplicaciones destinadas a dispositivos móviles y de escritorio, Dart incluye una VM de Dart con compilación justo a tiempo (JIT) y un compilador adelantado (AOT) para producir código de máquina.

§  Plataforma web: Para aplicaciones destinadas a la web, Dart incluye un compilador de tiempo de desarrollo (dartdevc) y un compilador de tiempo de producción (dart2js). Ambos compiladores traducen Dart a JavaScript.

 

A su vez, un ciclo de desarrollo rápido es fundamental para la interacción. Dart VM ofrece un compilador justo a tiempo (JIT) con recopilación incremental (que permite la recarga en caliente), recopilaciones de métricas en vivo y soporte de depuración enriquecido.

 

Veamos en este cuadro algunas similitudes y diferencias

Dart

Node.js

Biblioteca escasa, comunidad de soporte reducida

Amplia biblioteca y comunidad de soporte

Disponibilidad de materiales de aprendizaje inferior a JavaScript. 

 

Puedes usar Java Script tanto para el Front-end como para el Back-end

No es ideal para sitios web extensos

Es la plataforma más adecuada para tratar con aplicaciones web rápidas y en tiempo real

Es de código abierto

Es de código abierto

Compatible con todos los navegadores web modernos

Node.js utiliza un intérprete de Java Script, es compatible con la mayoría.

No requiere mantenimiento

Requiere mantenimiento de infraestructura

Recomendable para aplicaciones móviles

Recomendable para juegos multijugador

 

En cuanto a sus ventajas y desventajas, voy a comentarte alguna de ellas..

Empecemos por Node.js!

Ventajas

v  Tiene una secuencia de datos suave, Si desea acceder a un archivo en particular mientras lo carga, Node JS le permitiría hacerlo. Esta característica es extremadamente beneficiosa para los desarrolladores cuando trabajan con codificación de audio o video en tiempo real.

v  La creación de soluciones web efectivas utilizando esta plataforma se vuelve notablemente más sencilla, ya que incluye NPM (Node Package Manager) con el repositorio de casi 50.000 paquetes. Los desarrolladores pueden compartir, actualizar o reutilizar el código con la ayuda de este NPM incorporado.

v  Node.js es altamente escalable y liviano. Por eso es un gran favorito para las arquitecturas de micro servicio. En pocas palabras, la arquitectura de micro servicio significa dividir la aplicación en servicios aislados e independientes, lo que facilita la actualización y el mantenimiento de la arquitectura a medida que sus servicios están desacoplados.

 

Desventajas

v  El registro de NPM parece estar basado en la cantidad, no en la calidad. Si bien los productos principales demuestran ser estables y bien probados, el resto del registro de NPM está mal estructurado y mal documentado. Por supuesto, eso no es infrecuente para los proyectos de código abierto.

v  tiene una API inestable, quiere decir que entre versiones se tiende a romper la compatibilidad y se deben hacer cambios en tus aplicaciones para mantener todo funcionando.

v  No es adecuado para aplicaciones intensivas de CPU.

 

En cuanto a Dart

Ventajas son:

v  Detrás de la programación se encuentra Google, lo que ofrece perspectivas a largo plazo para el desarrollo del lenguaje

v  Es fácil de aprender debido a que los desarrolladores han simplificado características complicadas de otros lenguajes. Es posible utilizar caracteres en blanco, pestañas y saltos de línea a discreción, lo que permite a los programadores estructurar bien el código, de manera que sea últimamente ignorado por el compilador.

Desventajas:

v  No es ideal para sitios web con mucho texto como un blog

v  Es relativamente nuevo, lo que implica una comunidad de soporte bastante reducida y una disponibilidad de materiales de aprendizaje inferior a otros.

v  Para poder usar Flutter es necesario aprender el lenguaje de programación Dart

 

En resumen, cual te convendría usar va a depender mucho del proyecto que tengas en mente, si tu idea es una aplicación de mensajería, programas de escritorio multiplataforma, canales en tiempo real o juegos multi jugador  entonces Node.js es tu mejor opción,  Con Dart podrás crear aplicaciones  de consola, móviles, web scripts y realizar programación Backend.  ¡Anímate! 

Write a comment