Marny Lopez (iMrLopez)

Software Engineer

FullStack

BackEnd

FrontEnd

Marny Lopez (iMrLopez)

Software Engineer

FullStack

BackEnd

FrontEnd

Blog Post

Python vs Dart para mi backend ¿cuál es la mejor opción?

febrero 21, 2022 android, aws, backend, dart, flutter, ios, python, sdk
Python vs Dart para mi backend. ¿cuál es la mejor opción?
En el artículo anterior te hable sobre las diferencias entre Node.js y Dart, en el día de hoy vamos a hablar de un lenguaje de programación “Dart” que, en la actualidad, está ganando cada vez más terreno en el mundo de los desarrolladores y de sus similitudes con Dart
El lenguaje de programación Dart es joven, pero ya se ha consolidado, especialmente en el ámbito de la programación de aplicaciones móviles. Google ha creado Flutter, un kit de desarrollo de software (SDK) que utiliza Dart, promoviendo así la utilización y divulgación de este lenguaje de programación.
A su vez Dart ya tiene un lugar ganado debido a su facilidad de leer por lo que todos los desarrolladores pueden comprender el código de sus pares y cambiarlo, copiarlo o compartirlo. No hay confusión, errores ni paradigmas en conflicto, y esto conduce a un intercambio más eficiente de algoritmos, ideas y herramientas entre los programadores. Sus grandes bibliotecas y su código abierto también le suman una gran ventaja
Ahora, ¿Cuáles son sus diferencias? ¿Cual me conviene usar? ¿Es mejor o igual a Dart? ¡Todo eso y más te voy a explicar ahora!
Tanto Dart como Python se pueden clasificar principalmente como herramientas de “Idiomas”, pero primero vamos a describir brevemente cada una de ellas
Dart  fue Creado por Google como alternativa a JavaScript e inspirado por lenguajes como C#, Java o CoffeeScript,  es un nuevo lenguaje de programación web 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 el lenguaje, las bibliotecas y 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.
¿Qué es Python?  Es un lenguaje orientado a objetos claro y potente, comparable a Perl, Ruby, Scheme o Java. Es un lenguaje de programación de propósito general, con una semántica dinámica, integrada principalmente para el desarrollo web 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.
En cuanto a sus arquitecturas, podemos decir que la tecnología de compilación de Dart 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 interació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.
En cuanto a Dart La arquitectura general de este se puede dividir en  tres partes principales:
  • La izquierda es la biblioteca de módulos incorporada y el módulo definido por el usuario proporcionado por Python.
  • A la derecha, el entorno operativo de Python, incluidos los objetos / sistemas de tipo, distribuidores de memoria y la información de estado de ejecución.
  • El medio es el intérprete principal de Python.
  • Recuerda que 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.
Aquí veras algunas similitudes y diferencias:
Ventajas y desventajas de ambos

Dart

Python

Código abierto

Código abierto

No es ideal para sitios web extensos

Ideal para sitios web con mucha información

Funcionan en todos los navegadores móviles

También funciona en todos los navegadores de escritorios actuales

Comunidad de soporte reducida

Comunidad de soporte amplia

Biblioteca escasa

Biblioteca extensa

Bueno en aplicaciones móviles

No es recomendable para  aplicación móvil

En cuanto a Dart:
  • Los mismos scripts de Dart funcionan en aplicaciones nativas de iOS y Android sin modificaciones
  • Los scripts de Dart pueden compilarse en instantáneas independientes que se ejecutan en Linux, Mac y Windows sin necesidad de ningún otro programa o biblioteca
  • A partir de Dart 2.12.0, la seguridad nula es opcional. Dart se está moviendo hacia la seguridad nula como el estilo predeterminado.
  • Es mucho más fácil localizar errores en una etapa temprana del desarrollo y hace que la complejidad de la aplicación sea más fácil de administrar.
Desventajas
  • El mayor problema es la falta de soporte de biblioteca comparable.
  • Aunque Flutter Web definitivamente se puede usar, no es ideal para sitios web con mucho texto como un blog
  • Comunidad de soporte aún bastante reducida y una disponibilidad de materiales de aprendizaje inferior a JavaScript.
  • Para poder usar Flutter es necesario aprender el lenguaje de programación Dart.
En cuanto a Dart sus ventajas son estas:
  • La biblioteca estándar de Python es muy extensa, tiene una amplia colección de estas y de  Frameworks
  • Python es compatible con todos los sistemas operativos, es de código abierto, por lo que todos pueden usarlo y distribuirlo libremente.
  • Es una gran opción para el desarrollo de software, ya que permite a los desarrolladores utilizar grandes frameworks como Django y Flask.
Como desventajas podemos observar
  • Lentitud, debido principalmente a su naturaleza dinámica y versatilidad
  • Gran consumo de memoria,  esto se debe principalmente a la flexibilidad de los tipos de datos.
  • No es un lenguaje adecuado para el desarrollo móvil
  • Problemas con hosting: existen muchos servidores que no soportan Python y en caso de hacerlo, su configuración suele ser compleja.
¡Definitivamente ambos tienen similitudes, por lo que dependiendo de lo que tengas en mente realizar puedes usar cualquiera de ellos y hasta combinarlos! ¡Ten en cuenta los pro y contras de cada uno y cómo puedes complementar ambos para poder sacarle el mayor rendimiento a tu proyecto!  ¡Anímate!
Write a comment