Marny Lopez (iMrLopez)

Software Engineer

FullStack

BackEnd

FrontEnd

Marny Lopez (iMrLopez)

Software Engineer

FullStack

BackEnd

FrontEnd

Blog Post

Dart vs NodeJs vs Python para mi backend ¿Cual es la mejor opcion?

 

En otros artículos exploramos a fondo los diferentes lenguajes de programación y cuáles eran mejor para tu backend.

 Ahora, te traeré 3 de los mejores de ellos para compararlos, analizarlos  y así poder elegir el que más se adecua a tus necesidades y cuál de ellos deberías usar para tu backend.

Node.js, Dart y Phyton.

Así que antes de decidirte ¡seguí leyendo!

Para comenzar, voy a darte una breve definición de los 3

Node.js:  Es una plataforma basada en el tiempo de ejecución de Java Script 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 como (canales en tiempo real y juegos multi jugador)

Python a su vez, Se trata de un lenguaje de programación multiparadigma, ya que soporta parcialmente la orientación a objetos, programación imperativa y, en menor medida, programación funcional, posee una semántica dinámica integrada, principalmente para el desarrollo web, procesamiento de datos y de aplicaciones informáticas. Es un lenguaje interpretado, es decir, que no es necesario compilarlo para ejecutar las aplicaciones escritas en Python, sino que se ejecutan directamente por el ordenador.

Y por ultimo (y no por eso menos importante) tenemos a Dart, la estrella de Google. Este se basa en una 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 herramientas de Dart para escribir cualquier cosa, desde scripts simples hasta aplicaciones con todas las funciones utilizando el mismo código para todas las plataformas.

 

Si hablamos de sus arquitecturas, nos encontramos con que Node.js proporciona programación asincrónica, utiliza el modelo de bucle de eventos de un solo hilo para manejar varios clientes al mismo tiempo, es decir que, 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 y lo hace un candidato perfecto para aplicaciones en tiempo real.

 

 

Dart a su vez permite ejecutar código de diferentes maneras:

 

 Usa una Plataforma nativa para aplicaciones destinadas a dispositivos móviles y de escritorio, incluye una VM de Dart con compilación justo a tiempo (JIT) y un compilador adelantado (AOT) para producir código de máquina. Posee además, una Plataforma web para aplicaciones destinadas a la misma, esto incluye un compilador de tiempo de desarrollo (dartdevc) y un compilador de tiempo de producción.  Ambos compiladores traducen Dart a Java Script.

 

Python  en cambio, funciona de  una forma diferente. No convierte su código en código máquina directamente. En su lugar, compila el código en bytecode, que posteriormente se convierte en código máquina mediante un intérprete. No soporta el multihilo. Y se basa en un marco más antiguo con programación sincrónica

 

Veamos un poco más de cerca sus similitudes y diferencias:

 

Phyton:

·         Posee buen soporte asincrónico

·         Funciona en todos los navegadores web

·         Código abierto

·         Biblioteca extensa y comunidad de soporte amplia

·         No es recomendable para aplicaciones móviles

·         multiparadigma

Dart

·         No es ideal para sitios web extensos

·         Código abierto

·         Biblioteca escasa  con comunidad de soporte reducida

·         Compatible con navegadores web modernos

·         No  requiere mantenimiento

·         Adecuado para aplicaciones móviles

NODE.JS

·         Amplia biblioteca y comunidad de soporte

·         Adecuada para aplicaciones en tiempo real y juegos multijugador

·         Usa como intérprete a Java Script

·         Código abierto

·         Requiere mantenimiento de infraestructura

·         No es recomendable para aplicaciones intensivas de CPU

Ya visto esto, podemos hablar de sus ventajas y desventajas:

 

Ø  En Phyton cuentas con la ventaja de que es una gran opción para el desarrollo de software, ya que permite a los desarrolladores utilizar grandes frameworks como Django y Flask, a su vez, tiene una amplia colección de bibliotecas y frameworks, pero tiene la desventaja de ser lento debido a su naturaleza y consumir gran memoria debido a la flexibilidad de los tipos de datos.

 

Ø  Node.Js Es altamente escalable y liviano. Por eso es un gran favorito para las arquitecturas de micro servicio, tiene una  secuencia de datos suaves y una velocidad de ejecución sorprendente. Además, hace que el código en ejecución se forme más rápido. Pero, tiene una API inestable esto quiere decir que entre versiones se tiende a romper la compatibilidad y se deben hacer cambios en tus aplicaciones para mantener todo funcionando. Otra desventaja es que su carácter formado a partir de los eventos asíncronos no brinda la misma potencia de cálculo frente a otros lenguajes.

 

 

Ø  Dart cuenta con el respaldo de Google, esto nos da perspectivas a largo plazo para desarrollar. Es fácil de aprender debido a que los desarrolladores han simplificado características complicadas de otros lenguajes.  Con Dart, es posible utilizar caracteres en blanco, pestañas y saltos de línea a discreción, lo que permite estructurar bien el código, de manera que sea últimamente ignorado por el compilador. Pero, el ser un lenguaje nuevo implica que tenga una comunidad de soporte bastante reducida y una disponibilidad de materiales de aprendizaje inferior a otros. Tampoco es recomendable si quieres hacer un sitio web con mucho texto como un blog.

 

Entonces, sabiendo esto¿Cuál de ellos deberías elegir?

Bueno, eso va a depender del proyecto que tengas en mente.

 

Si lo que quieres hacer implica programas de escritorio multiplataforma, canales en tiempo real o juegos multa jugador entonces Node.js es tu mejor opción.

 

Si lo que buscas en cambio es realizar aplicaciones  de consola, móviles, web scripts y realizar programación Backend, con Dartpuedes lograrlo.

 

Y Si lo tuyo son los números y tu proyecto implica aplicaciones web, analizar datos, automatizar operaciones y crear aplicaciones empresariales de grandes datos, Phyton es tu mejor aliado.

 

 

 

 

Write a comment