Que el ecosistema blockchain necesita desarrolladores, no es ninguna novedad. Día a día crece la cantidad de programadores de Solidity, pero ¿cuál es la situación con respecto a Rust?
Desde mi punto de vista, Rust corre en desventaja frente a Solidity en el ambiente crypto. El ecosistema DeFi nació de la mano de Ethereum, blockchain que sienta su éxito actual sobre un lenguaje de programación específicamente creado al efecto, Solidity. Es desde allí que los incentivos para aprender Solidity son evidentes. A esto se suma la viralización de ofertas de trabajo para quienes manejen este lenguaje, que incluso llegan a superar los 10.000 dólares mensuales.
Sin embargo, estoy aquí para hablar de Rust y explicar por qué, desde mi punto de vista, hoy es el momento de aprender este lenguaje de programación y cuál es mi plan al respecto.
Entonces, sin mayores dilaciones, pasemos al tema que me convoca.
¿Qué es Rust?
Se trata de un lenguaje de programación multi-propósito con el cual es posible crear un amplio abanico de aplicaciones en diferentes entornos.
Se encuentra inspirado, principalmente, en C y C++, mejorando ciertos aspectos de estos lenguajes preexistentes.
La característica de ser multi-propósito lo asemeja, en cuanto a su utilidad, a lenguajes como Python, Go y Java. En cuanto al aspecto técnico, Rust es un lenguaje de multi-paradigma, por lo tanto está preparado para soportar programación funcional pura, por procedimientos, imperativa y, también, programación orientada a objetos.
Es un lenguaje lo suficientemente versátil como para integrarse con facilidad con otros lenguajes. Está preparado para alcanzar un gran rendimiento y optimizar al máximo el uso de la memoria.
Una de sus mayores virtudes es su potente compilador, el cual facilita la eliminación de una gran cantidad de bugs al momento de compilar, dando lugar a una experiencia en producción altamente fiable.
Entre sus aplicaciones más frecuentes encontramos la creación de líneas de comandos, potenciación de JavaScript por medio de WebAssembly, creación y mantenimiento de redes y embebido, dónde Rust soluciona el trabajo con dispositivos de bajos recursos, permitiendo el control de bajo nivel sin renunciar a la comodidad de un lenguaje de alto nivel.
Ahora, repasemos un poco su historia.
Un poco de historia
Graydon Hoare, padre de esta criatura, se encontraba trabajando en Mozilla en el año 2006, cuando comenzó a desarrollar este lenguaje de programación. Su objetivo era crear un lenguaje versátil y robusto para aplicarlo al producto principal de Mozilla, su navegador FireFox.
Por aquel entonces, Graydon no imaginaba el impacto que su lenguaje tendría en el mundo de la programación.
Ya en el año 2010, Mozilla anunció el patrocinio del desarrollo de este lenguaje, que había comenzado un año atrás. A lo largo de los siguientes años Rust continúo creciendo como lenguaje y su adopción traspasó las fronteras de Mozilla para llegar a diferentes empresas que hoy continuan utilizándolo. Algunos ejemplos son:
- -> Amazon, mediante este lenguaje desarrollaron Firecracker un sistema de virtualización para sistemas serveless, en la nube de AWS (Amazon Web Service)
- -> Dropbox, utilizan Rust en sus datacenters
- -> Microsoft, lo implementó en su sistema de Azure
- -> Reddit, gestionan los comentarios de sus usuarios a través de Rust
- -> RedHat, desarrollaron su nuevo sistema de almacenamiento con este lenguaje
- -> Yelp, mediante Rust desarrollaron su propio framework de testing
La relación entre Rust y crypto
Ahora, todo muy lindo Tino, pero ¿qué tienen que ver esta historia y datos con el ecosistema crypto?
Por fin llego al momento de agradecer al Dr. Gavin Woods. Al dejar Ethereum y comenzar a trabajar en Polkadot, Gavin se llevó Parity consigo, y este cliente de Ethereum, por supuesto, está escrito en Rust.
Y, ¿quiénes siguieron sus pasos? Contamos con ejemplos como Solana, que utiliza Rust y C, pero quién más me interesa a mí es el pujante ecosistema de Cosmos.
Por medio del famoso Tendermint, Cosmos sigue creciendo como ecosistema contando con redes como Terra, Secret Network, Ósmosis y la propia Cosmos. Tras la actualización conocida como IBC, este ecosistema potenció a las redes montadas sobre sí, abriendo canales de comunicación simples, fluidos y sumamente económicos. El potencial de este ecosistema apenas está comenzando a materializarse y las posibilidades a futuro son enormes.
Pero, no todo es color de rosas… Existe un gran problema, que retiene esta potencialidad en la imaginación o en el deseo de los usuarios y desarrolladores de estas redes. Y, obviamente, no estoy hablando de otro problema que de la falta de desarrolladores o programadores conocedores de Rust, que estén enfocados en construir en el ecosistema crypto.
Entonces, en lugar de protestar vía twitter, criticar los retrasos de los protocolos en sus lanzamientos y actualizaciones, se me ocurrió una mejor idea.
Mi historia con la programación
En el año 2020, totalmente maravillado por el mundo de DeFi, decidí comenzar a estudiar programación para contribuir no solo como pequeño inversor y divulgador del ecosistema, si no desde adentro, construyendo.
Comencé por las bases, y front-end fue mi primer paso en este mundo.
Una vez que me terminé con aquel curso y teniendo ciertos conocimientos de JavaScript, mi plan era ser un nuevo aprendiz de Solidity, pero Terra y sus aplicaciones innovadoras se cruzaron en mi camino y ahí fue dónde apareció Rust.
Tras unos meses aprendiendo el lenguaje, distintas circunstancias me obligaron a poner un freno, pero solucionados estos escollos es momento de seguir adelante.
Mi plan con Rust
Mi objetivo es, retomar el estudio de este lenguaje y por medio de este canal, publicar todo aquello que iré aprendiendo para promover el estudio de este lenguaje y, consecuentemente, la expansión del ecosistema de Cosmos.
Como fuentes de información e instrucción cuento con el famoso libro “The Rust Programming Language” (aguardo la llegada de su versión física), conocido como “El libro” entre los devotos del lenguaje. También me apoyaré en el canal de YouTube “Let’s Get Rusty” y practicaré con ejercicios del sitio Exercism.
No tengo dudas que en el camino encontraré nuevos recursos que a la fecha no imagino.
Ahora sí, demasiada introducción por hoy. Si estás interesado, nos vemos en la próxima, para comenzar a llevar adelante la expansión que el ecosistema Cosmos se merece…