Resumen :
Este Trabajo de Fin de Grado explora y compara los lenguajes de programación Rust y
Python en el contexto de la ciencia de datos y la inteligencia artificial (IA). El lenguaje
Rust surgió para abordar los problemas de seguridad de memoria de C y C++, buscando
robustez y rendimiento. Por su parte, Python se centró en la facilidad de uso y aprendizaje.
Ambos lenguajes han evolucionado significativamente y a día de hoy se utilizan en
diversos ámbitos empresariales.
Rust se distingue por su control explícito de la memoria, su seguridad en la gestión de la
misma sin hacer uso de un recolector de basura, y también por su alto rendimiento,
comparable a C/C++. Python sobresale por ser un lenguaje de alto nivel, interpretado, con
tipado dinámico y una vasta biblioteca estándar. Ambos son multiparadigma y
multiplataforma. Para el desarrollo, se analizan IDEs como VS Code, IntelliJ IDEA y
CLion para Rust, y PyCharm, Spyder y JupyterLab para Python, siendo VS Code el IDE
seleccionado para este proyecto por su versatilidad y compatibilidad con ambos lenguajes.
En el ámbito de la ciencia de datos e IA, Python cuenta con librerías consolidadas como
Pandas, NumPy, TensorFlow, PyTorch y Scikit-learn. Rust está desarrollando su entorno
con librerías como Polars, SmartCore, Burn y Linfa, priorizando el rendimiento y la
seguridad. Los experimentos realizados con modelos de clasificación, regresión y
clustering han mostrado que Python, con sus librerías más optimizadas como Scikit-Learn,
TensorFlow y PyTorch, generalmente ofrece un equilibrio entre precisión y tiempo de
ejecución más favorable y una mayor facilidad de uso. Por otra parte, en el desafío 1BRC
(1 Billion Row Challenge, el problema del billón de líneas), Rust ha demostrado ser
significativamente más eficiente en el procesamiento de grandes volúmenes de datos,
superando a Python en velocidad. Este análisis sugiere que Python es ideal para la
investigación, el prototipado rápido y el desarrollo de modelos de IA complejos, mientras
que Rust se presenta como una alternativa poderosa para aplicaciones que demandan alto
rendimiento, seguridad y control de recursos.
|