Etiquetas

Comienzo con este el primero de una serie, espero que larga, de artículos sobre el lenguaje de programación Rust.

No soy un experto en este lenguaje y el planteamiento de estas entradas en el blog son más bien una reflexión en voz alta que verdades absolutas y contrastadas.

Me planteo como retos los siguientes:

  • Utilizar única y exclusivamente la librería estándar de este lenguaje.
  • No utilizar Cargo hasta que queden asentados la mayor parte de los conceptos que me gustaría tratar.
  • Después de obtener un dominio medio-alto de la concurrencia con Rust, realizar un servidor de algún protocolo interesante como MQTT ( de aquí surge la idea: https://taller-1-fiuba-rust.github.io/proyecto_2C2021.html),un bot de Telegram (intentar crear la librería de conexión a la API desde cero…bufff pero un reto es un reto) o algún proyecto barebone ( sobre la raspberry Pi Zero o similar)

Temas como asincronía y webassembly me parecen interesantes pero los dejo para más adelante.

El camino va a ser largo y creo que duro. Para empezar veo muy necesario conocer los intríngulis de los sistemas informáticos y para ello nada mejor que realizar este curso de Juan Gozález sobre el ensamblador de RISC-V https://github.com/myTeachingURJC/2019-20-LAB-AO/wiki Los conceptos de Pila (stack) y montón (heap) Juan los explica que no deja dudas (excepcional también lo claro que queda recursividad. Es un grande) y son fundamentales para entender propiedad y préstamo, una de las características de Rust que más complican la vida pero que hace que el código generado no sufra de errores que son mucho más difíciles de detectar y corregir cuando el programa ya se está ejecutando.

Si es la primera vez que te enfrentas a Rust no te recomiendo que instales nada en tu máquina y sí que utilices https://play.rust-lang.org/

Si termina picándote el gusanillo obviamente tendrás que instalarlo y para eso: https://www.rust-lang.org/tools/install

Libros que recomiendo:

  • Otro libro que me ha gustado mucho es Programming Rust, Segunda Edición de Jim Blandy, Jason Orendorff, Leonora F. S. Tindall
  • Para entender los diferentes tipos de punteros (tranquilo, ya llegaremos a ellos) el libro de Tim McNamara Rust in Action

Si de concurrencia estás pez y quieres asentar o adquirir conocimientos, el libro de Ricardo Galli es excelente: https://github.com/gallir/principios_algoritmos_concurrencia/tree/master Tampoco habla de Rust pero va a dejarte bastante claros los principios en los que se basa este follón que es la concurrencia. Habla de canales en golang pero pueden servirte de mucha ayuda para comprenderlos en Rust (después de leer este libro, y estés haciendo cosicas concurrentes, pásate por el capítulo 19 de Programming Rust)

Tengo pendiente Rust For Rustaceans Idiomatic Programming for Experienced Developers by Jon Gjengset Rust For Rustaceans Idiomatic Programming for Experienced Developers by Jon Gjengse

Tanto Tim McNamara como Jon Gjengse tienen canal de youtube en el que dan masterclass sobre temas Rust.

Solo le he echado un vistazo pero parece divertido: https://sokoban.iolivia.me/ Realización de un videojuego 2D con Rust

En español he visto pocos recursos. Destacaría dos:

Como gestionar los comentarios suele ser bastante rollo, si queréis enviarme información sobre Rust, criticar de manera positiva las cosas que vaya publicando o indicarme en qué me he equivocado, podéis contactar conmigo a través de mi cuenta de twitter: @PeredaFP. Intentaré hacer una selección de las cosas más interesantes para que sean publicadas en siguientes entradas.

Un saludo