19
Abr

Rust y las tecnologías exponenciales

No,  no es el título de una película de Netflix.

Rust es, sin duda, uno de los paradigmas de programación de más futuro en los próximos años. Pero, ¿qué es Rust? Rust es un lenguaje de programación compilado que nació allá por 2006, que tiene un propósito general y multiparadigma (más de un entorno de aplicación) desarrollado por Mozilla. ​ Según sus creadores, ha sido diseñado para ser un lenguaje seguro, concurrente y práctico.

En los últimos meses, se ha hablado mucho de integrar Rust con la Inteligencia Artificial por parte de los programadores más avanzados de este lenguaje.

La Inteligencia Artificial (IA/AI) es ya mucho más conocida, al menos en cuanto al concepto.  Podemos definirla de muchas formas, pero una de ellas ciertamente comprensible sería ésta: “una nueva forma de resolver problemas dentro de los cuales se incluyen los sistemas expertos, el manejo y control de robots y los procesadores, que intenta integrar el conocimiento en tales sistemas, en otras palabras, un sistema inteligente capaz de escribir su propio programa”.Así que, si unimos ambos conceptos, encontramos un equipo claramente ganador a futuro.

En primer lugar, y según una encuesta realizada por Stackoverflow hace dos años, es el lenguaje más querido (utilizado) por los programadores aunque el más utilizado sigue siendo a día de hoy Python. Sobre todo porque está respaldado ampliamente por las principales compañías líderes de verticales, sobre todo tecnológicas como Amazon, Yelp, Dropbox, Google, RedHat, Meta o Microsoft.

En segundo lugar, Rust es un lenguaje que entre sus objetivos básicos está intentar sustituir o reemplazar código escrito en C o C++ con código más seguro pero incluso más eficiente a nivel de rendimiento.

Sin embargo, no es fácil tomar la decisión de migrar todo un proyecto escrito en C/C++ a Rust. No es viable en la mayoría de los proyectos, pero es una buena elección para proyectos que comienzan de cero.

¿Qué ventajas hacen destacar a Rust?

  1. Interacción sencilla y segura de Rust con C++
  2. Asegurar la mejor gestión de memoria posible
  3. Alta velocidad y lenguajes de alto nivel.
  4. Su aplicación no afecta al rendimiento, todo lo contrario
  5. Alta velocidad al estar posicionado a favor del hardware de computación
  6. Garantías de seguridad gracias al compilador
  7. Programa de forma abstracta, lo que no interacciona negativamente con el rendimiento
  8. Curva de aprendizaje y uso fácil y ciertamente intuitiva
  9. Elevado sistema de emisión de mensajes de error, lo que ayuda al programador
  10. Además, proporciona consejos y recomendaciones prácticas sobre el código para eliminar fácilmente errores.

Rust además proporciona una excelente documentación en su website con recursos totalmente guiados, ejercicios de ayuda a modo de ejemplo en su site oficial en Github y un gran conjunto de recursos en su canal oficial en Youtube.

Vale. Hasta aquí genial, pero ¿qué tiene que ver la inteligencia artificial con Rust? Los programadores están mirando de lado a la hibridación de Rust con otros entornos relacionados directa o indirectamente con inteligencia artificial, sobre todo librerías o plataformas como .NET Core, Torch o PyTorch. Por otro lado, los motores de React Native en el entorno de Meta para aplicaciones móviles, Flutter de Google, o Unity 3D para entornos de recreación de mundos virtuales 3D para el metaverso, muy demandado conjuntamente con el líder del sector, Unreal Engine.

De los más de 650.000 programadores que se creen trabajan de forma intensiva con Rust, casi el 50% encuentra un elevado potencial en utilizar ciertas APIs y librerías basadas en inteligencia artificial que permita extender el potencial del código de programación.

Y en esta paulatina integración de Rust con IA, se acerca un tercer operador igualmente potente y potencialmente necesario para la gestión masiva de datos: big data. Además de C , C++ y JavaScript, los desarrolladores de Rust están interesados ​​en integrarse con R y Python. Eso indica el interés de los desarrolladores en aplicaciones de aprendizaje automático, big data e inteligencia artificial. Ciertamente, la mayor parte de los paquetes estadísticos y de aprendizaje automático de Python y R se implementan en módulos binarios nativos.

Igualmente es posible utilizar Rust para ejecutar modelos de Tensor Flow en una aplicación Node.js. En un futuro muy cercano, será previsible que dichos módulos de Rust se ejecuten en contenedores gestionados de alto rendimiento como WebAssembly.

Uso de lenguajes de programación por comodidad y sencillez para el programador. Fuente: Xataca

Uso de lenguajes de programación por comodidad y sencillez para el programador. Fuente: Xataca

Pero además, aparece un cuarto integrante del triángulo Rust-IA-Big data. Este no es otro que Blockchain. ¿Por qué? Porque Rust es uno de los lenguajes de programación más usados a la hora de trabajar con criptomonedas y crear nodos para minar criptoactivos.

De hecho se puede crear una aplicación de cadena de bloques con un esquema de minería básico, algoritmos de consenso y redes de igual a igual en solo 500 líneas de Rust. Eldiseño sería muy simple: cada nodo en la red puede agregar datos (cadenas) al libro mayor descentralizado (la cadena de bloques) extrayendo un bloque válido localmente y luego transmitiendo ese bloque. Y aquí Rust sobre Blockchain juega un papel importante más allá de la monetización, ya que existen muchos proyectos geniales basados ​​en blockchain que tienen como objetivo abordar problemas sociales como el cambio climático, la desigualdad social, la privacidad y la transparencia gubernamental donde utilizar este simpático lenguaje de programación.

También si vemos en conjunto Rust como oportunidad de trabajo, ocupa un alto lugar en la escala de remuneración de programadores, concretamente, una lista que encabeza Clojure con sueldos anuales cercanos a los 100.000 dólares, donde Rust se encuentra por detrás de F#, Elixir, Erlang, Perl, Ruby y Scala, con un salario anual que casi roza los 80.000 dólares.

Larga vida a Rust!

blank