527 - Tienes que instalar Rust para exprimir Linux
Si quieres exprimir al máximo #linux tienes que instalar #rust y algunas de las increíbles herramientas que están apareciendo en el ecosistema
En estos últimos días, he estado actualizando mi terminal Linux. Y no me refiero tanto a Kitty, que como sabes es mi terminal por defecto, sino a todas las herramientas que utilizo junto a Kitty. Herramientas que me proporcionan una mayor productividad, pero, que sobre todo hacen que me sienta mucho más cómodo utilizando la terminal. Así, por ejemplo, he actualizado los complementos de Zsh que utilizo, he modificado algunos scripts, y de paso, he actualizado algunas de estas herramientas. En ese proceso de actualización, me he dado cuenta, de que cada vez hay mas herramientas implementadas en Rust, en mi terminal Linux. Es mas, en los últimos tiempos se han multiplicado como la espuma. Esto me ha hecho pensar que tienes que instalar Rust para exprimir Linux. Y esto es precisamente lo que te quiero contar en este episodio del podcast.
En muchos de los vídeos publicados en el canal de Youtube, me preguntan sobre el terminal. Y es que realmente luce espectacular, y todas las herramientas que he ido adoptando poco a poco, lo han convertido en un arma letal. Esta es la razón que me ha impulsado a hablarte de Rust y cargo en este episodio del podcast.
Tienes que instalar Rust para exprimir Linux
¿Porque instalar Rust?
De veras, que estoy realmente sorprendido de la cantidad de herramientas y aplicaciones para el ecosistema Linux implementadas en Rust que están apareciendo. Parecen champiñones que crecen en todo tipo de sitios.
Muchas de estas herramientas, vienen a reemplazar a las clásicas y vetustas herramientas GNU, porque ofrecen nuevas características y se aprovechan de las mejoras que ofrece Rust. Pero no solo se aprovechan de esas mejoras, sino que también se aprovecha de las nuevas características que tienen nuestros terminales y nuestros equipos. Pero además, se adaptan a nuestra forma de trabajar.
Es tal la cantidad de herramientas que están apareciendo, y la evolución tan rápida que tienen, que si quierse exprimir Linux al máximo, mi recomendación es que instales Rust. Así podrás tener todas esas herramientas a la última y aprovecharlas al máximo.
¿Y que pasa con los repositorios?
Una de las razones que mas me gustan de Linux son los repositorios. Y es que los repositorios me permiten olvidarme de buscar software a lo largo y ancho de Internet. Simplemente, tengo que realizar búsquedas en el repositorio, que al fin y al cabo es la tienda de software de tu distribución, y una vez encontrado el paquete que necesito, lo instalo y a correr.
Sin embargo, ahora lo que te estoy diciendo es justo todo lo contrario, que no utilices los repositorios sino que utilices Rust. Realmente, no es así. Se trata de utilizar la propia paquetería de Rust, en concreto, se trata de utilizar Cargo, que es el gestor de paquetes de Rust.
Esto tiene sus ventajas e inconvenientes, por supuesto. Y es que al estar tan a la última, en alguna ocasión te puedes encontrar con un error, cosa, que a mi, de momento nunca me ha pasado. Pero, sin lugar a dudas, lo que vas a poder hacer es exprimir Linux al máximo.
La recomendación de utilizar Rust, o mejor dicho Cargo, para instalar los paquetes de Rust, es que algunas de las grandes distribuciones se actualizan de tanto en tanto, y los nuevos paquetes de Rust, llegan al cabo de los meses o incluso de años. Utilizando cargo
este problema queda completamente soslayado.
Pero, incluso, en distribuciones como ArchLinux, te puede pasar que algunos de estos paquetes se actualicen mas tarde, que no se actualicen o incluso que no lleguen, porque como te digo, la evolución de herramientas es increíble.
Desde luego, que esto no está exento de problemas, porque como te digo, siempre puede suceder que aparezca un bug, aquí ya depende de los riesgos que tu quieras correr.
¿Pero es difícil instalar Rust?
Instalar Rust es realmente sencillo y no tiene ninguna complicación. En breve encontrarás en el canal de Youtube, mas detalles sobre la instalación. Sin embargo, para que te hagas una idea, tan solo tienes que abrir un terminal y ejecutar,
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
El gestor de paquetes de Rust
Aquí es donde te quiero presentar cargo
, que es el gestor de paquetes de Rust. Esta herramienta no solo te permite instalar y desinstalar paquetes, sino que también te permite crearlos. Sin embargo, y si me lo permites, la parte de la creación, me la voy a saltar, al menos en este episodio.
Con cargo
puedes instalar y desinstalar paquetes, pero además también puedes buscarlos en el repositorio oficial de paquetes de Rust que es crates.io.
Pero, no solo puedes instalarlos desde crates.io
, sino que puedes instalarlos desde el código fuente, e incluso de su propio repositorio en GitHub, GitLab, Gitea, o en cualquier otro repositorios git
.
Como verás esto tiene un pequeño inconveniente, y es que no hay, aparentemente ninguna opción para actualizar… Sin embargo, cargo, admite complementos, y uno de estos complementos, es precisamente cargo-update
, que te permite actualizar todos los paquetes que tengas instalados. Para instalar cargo-update
, utiliza cargo
,
cargo install cargo-update
Y para actualizar todos los paquetes que tienes instalados en tu equipo, solo tienes que ejecutar,
cargo install-update -a
Este comando, te indicará todos los paquetes que tienes instalados con cargo
, si están actualizados o no, y en su caso, se encargará de actualizarlo. Con lo que el problema de las actualizaciones, es el mismo que puedes tener con las actualizaciones de los repositorios oficiales de tu propia distribución.
¿Y que paquetes tengo?
Con esto ya tienes una idea clara de que razones me han impulsado a recomendarte la instalación de Rust, sobre todo teniendo en cuenta lo sencillo que es instalarlo. Pero, ¿que paquetes tengo instalados que tanto llaman la atención?.
Te voy a indicar algunos de ellos, sobre todo los que mas llaman la atención en los vídeos de YouTube, para que te hagas una idea, y que en su caso, los utilices si así los consideras. Algunos de ellos, ya los he comentado en otros episodios del podcast.
starship
. Este es unprompt
personalizable, realmente potente sencillo y espectacular. Pero no es que sea bonito, que lo es, es que además te permite tener toda la información que necesitas directamente en elprompt
.atuin
. Otra herramienta espectacular que exprime al máximo las posibilidades del historial. Y es que realmente, elhistory
, es algo, que yo utilizo con muchísima frecuenciazoxide
. Esta herramienta te permite cambiar de directorio, al igual que haces concd
, pero de forma realmente eficiente.ripgrep
, es una auténtica maravilla. Te permite buscar de forma recursiva en tus directorios en busca de una expresión regular. No solo es increíblemente efectiva, sino que es rápida, es una auténtica maravilla.skim
, es el fuzzy finder de Rust.sk
, que es el ejecutable, te permite realizar búsquedas comogrep
, pero de forma interactiva, y a la velocidad del rayo.just
. El ejecutador
Esto es por citarte algunas, pero también puedes encontrar en mi equipo otras herramientas como tere
, broot
, argc
, css-minifier
, gitui
, grass
, jaq
, rusty-rain
, trasher
, … por mencionarte algunas
Más información,
Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.
Buenas Atareao, como te imaginaras discrepo de tu necesidad de cambiar a esas viejas herramientas vetustas de GNU/Linux por herramientas mas modernas hechas en Rust, ya que me parece estar metido en una rueda de hámster, ahora rust, mañana ruby, pasado dart, etc, etc, dando vueltas a la rueda.
Quizás habría que preguntarse porque esas herramientas son vetustas, quizás sea porque hacen lo mínimo, consumen lo mínimo y están super probadas, esa es la razón por la que son vetustas, no dan colorines, no aparece tu ultima linea, no tienen IA incorporada, pero funcionan y funcionan bien.
Rust me parece un buen lenguaje, pero esa necesidad de reemplazar todo me parece un poco suicida, ahora cuando vea una herramienta (hecha en rust o cualquier otro lenguaje) que me ayude con algo nuevo, no dudes que la incorporaré, pero como diría un cómico «Si hay que ir se va, pero ir pa’na’ es tontería»
Saludos.
Hola Marc,
Si me imaginaba que no estarías de acuerdo.
Yo inicialmente era reacio, pero ahora ventajas.
Lo primero es que nadie obliga a cambiar a nadie. Si uno decide cambiar es por qué le interesa.
No se trata de adoptar cada nueva versión que sale, sino de escoger la mejor solución. Con independencia del lenguaje utilizado.
Respecto a que «consumen lo mínimo», «hacen lo mínimo» y «están superprobadas», decirte que todos los test que he ido viendo indican que las implementadas con Rust consumen menos y son más rápidas. Además por supuesto del eficiente uso de memoria de Rust.
Además de esto, y sin ánimo de criticar ningún desarrollo, hay que tener en cuenta que muchas de estar herramientas se desarrollaron hace muchísimos años y hoy en día se han mejorado sensiblemente rato la forma de desarrollar como los test, etc. Probablemente, se hayan ido adaptando, pero no es ni mucho menos lo mismo, cuando empiezas un proyecto con todo esto en la mente que si no lo tienes en cuenta.
Respecto a añadir nuevas funcionalidades, en general, los reemplazos «puros» que he visto, no añaden más características, simplemente re implementan, eso sí, añadiendo test, control, etc. Luego están otras herramientas que dotan de nuevas funcionalidades
Con esto no trato de convencer a nadie, simplemente quiero dar mi punto de vista.
Muchas gracias por tu comentario Marc
buenas recomendaciones, gracias por compartir
Muchas gracias