Andres Quintero sobre el rol del lenguaje Rust en proyectos de datos

Episodio 91 - 2023-04-16


Andrés Quintero trabaja actualmente en MD&Co, una empresa de productos de datos. Comenzó a programar desde joven y llegó a MD&Co por casualidad su madre necesitó automatizar un proceso. La empresa se enfoca en el campo de la salud debido a la experiencia médica de la fundadora.

Uno de los proyectos en los que ha trabajado es un sistema de validación de facturas para aseguradoras. Las instituciones envían facturas a las aseguradoras, las cuales las aprueban o no, o negocian los términos. Debido a la gran cantidad de facturas que se reciben mensualmente, validar los datos de manera manual resulta laborioso, por lo que se ha creado un sistema automatizado con diferentes validaciones y pesos.

Al iniciar el desarrollo usaron R para desarrollar el sistema, pero llegaron a cuellos de botella de desempeño por los volúmenes de datos que se han de procesar. De allí buscaron experimentar con Rust para ver si es un lenguaje de programación más apto para este caso específico. La gran ventaja de Rust es su capacidad de garantizar el tipo de datos al hacer la compilación y su capacidad para trabajar en forma síncrona y en paralelo. El sistema final se despliega en Azure en un entorno serverless y se integra con JSON web tokens para la autenticación de la interfaz que esta escrita en R (Shiny).

Hablamos de ventajas de Rust en comparación con otros lenguajes como Golang. Go es bueno para desarrollar servidores web rápidos, pero Rust fue preferido debido a su mejor manejo de errores y la obligación de especificar los posibles caminos del código. Andŕes destaca una arquitectura que implementaron con la capacidad de parametrizar los sistemas para que otros puedan ajustar los parámetros sin necesidad de cambiar el código.

También hablamos de otros lenguajes como Julia. Andrés recuerda que la curva de aprendizaje de Rust es mayor, pero también cómo el compilador de Rust ayuda en el proceso de desarrollo y aprendizaje. Finalmente, Andrés explica que utilizan Rust y R en conjunto, aprovechando las ventajas de ambos lenguajes para el desarrollo del sistema. Si bien para la parte de procesamiento de datos a escala Rust tuvo beneficios, siguieron usando Shiny (R) para la interfaz de usuario.

En este episodio Andrea Vargas Montero y Pierina Ponce Toranzo acompañan a Frans como anfitriones del podcast de Data Latam.

Links relevantes