Service Desk Development

Cómo utilizar Rust con Python

July 18, 2022

Tags: Tecnologías, Tech Trends

python

 

Python se ha convertido en uno de los lenguajes de programación más populares de los últimos años. Cada vez son más los proyectos de tecnología, como páginas web y aplicaciones, que se construyen utilizando este lenguaje como base. Python ofrece al desarrollador un ambiente agradable para escribir código, pero tiene una pequeña desventaja: le falta velocidad. Esto último es algo que sobra a Rust.

 

Rust es un lenguaje de programación multiparadigma y que enfatiza el rendimiento, la seguridad de tipos de la concurrencia en el proyecto. Con Rust, las referencias siempre apuntan a una memoria válida sin requerir de un recolector de basura o recuento de referencias, algo que siempre está presente en otros lenguajes seguros para la memoria.

 

Estos lenguajes por lo general los ponen como la competencia del otro, pero, en teoría, pueden colaborar y así Python se beneficia de la velocidad que ofrece Rust, mientras que este último se beneficia de la facilidad de uso de Python.

 

Cómo se puede utilizar Rust con Python

 

Para utilizar Rust con Python, debes estar familiarizado con ambos lenguajes de programación y así poder sacarles el máximo provecho. Igualmente, se debe decidir cuál será el idioma principal porque los enfoques de ambos lenguajes con casi enteramente distintos.

 

Llama Rust desde Python con PyO3

 

Al tener Python como idioma principal, la integración con Rust se hace como la integración de Python con C, la cual utiliza extensiones escritas en C o usando una ABI que sea compatible con C. Las extensiones que están escritas en Rust que utilizan la misma ABI funcionarían de la misma manera, aunque se deberá usar cajas diseñadas con el propósito de proporcionar enlaces para las funciones de Rust a la API de Python C.

 

Para crear los enlacer de Rust en Python se utiliza el proyecto PyO3, el cual a su vez se aprovecha de otro proyecto, llamada Maturin, que funciona como herramienta para crear cajas de Rust con enlaces y paquetes Python. En Infoworld explican “Cuando se instala en un entorno virtual de Python, Maturin se puede usar desde la línea de comandos para inicializar un nuevo proyecto de Rust con los enlaces de Python habilitados. El desarrollador usa directivas en el código de Rust para indicar qué funciones de Rust exponer a Python y cómo exponer todo el proyecto de Rust a Python como un módulo importable”.

 

PyO3 permite hacer un mapeo entre los tipos Rust y Python “l Las funciones escritas en Rust pueden aceptar tipos de Python nativos o tipos de Rust convertidos a partir de tipos de Python. Por ejemplo, un objeto bytearray o bytes en Python puede asignarse elegantemente a un Vec<u8> en Rust, y una cadena en Python puede representarse como una cadena de Rust”.

 

python

 

Rust o Python ¿Cuál lenguaje de programación es mejor?

 

Entre los desarrolladores que utilizan ambos lenguajes de programación, Python sale victorioso, pero con solo una ligera ventaja sobre Rust y te explicamos las razones:

 

  • Facilidad de código: Python está diseñado para ser simple, tiene una estructura de código legible y una sintaxis simple lo que le da mayor accesibilidad a cualquier desarrollador sin importar la experiencia que tenga, esto es ya una gran ventaja sobre Rust, un lenguaje orientado a la programación de sistemas y con una curva de aprendizaje más alta.
  • Documentación: de nuevo, debido a su simpleza, la documentación de Python es más amigable para los desarrolladores principiantes. Rust tiene una extensa documentación y con cierta facilidad de uso, pero está más orientada a los desarrolladores con mayor conocimiento técnico.
  • Extensibilidad: con su enorme cantidad de bibliotecas, frameworks que le soportan, Python tiene más softwares y servicios que admiten su uso y soportan este lenguaje.
  • Comunidad: siendo de código abierto, la comunidad de ambos lenguajes se involucra de manera directa en el desarrollo y mejora del lenguaje. Python es maduro y tiene una comunidad numerosa, considerablemente más grande que la de Rust.

 

En Rooststack, nuestros desarrolladores han logrado desarrollar varios proyectos utilizando Python, siendo esta una de las tecnologías más versátiles para la creación de aplicaciones y páginas web. Tenemos vacantes abiertas para trabajar con Python, puedes contactarnos haciendo clic aquí, deja tus datos y comienza a crecer profesionalmente. 

 

Te recomendamos en video