Enginyer informàtic i formador de la Fundació Nord.

Rust, cap a un programari més segur i eficient

“La maduresa és un aspecte indispensable perquè un llenguatge sigui adoptat en el món professional”

Avui en dia, el programari juga un paper clau en les nostres vides. És present a tot arreu, tant en els nostres dispositius com en els serveis essencials que utilitzem en el dia a dia, com poden ser els bancs, els centres de salut o els comerços. I sense adonar-nos-en, cada cop està més present en les nostres vides i aparells que ens rodegen, com els nostres vehicles o electrodomèstics. Per aquest motiu, necessitem fer software més segur i eficient. Més segur per evitar que els errors de programació produeixin un comportament inesperat i no només puguin provocar petites molèsties d’usabilitat, sinó també accidents i accessos no autoritzats per tal de canviar el seu comportament o accedir a les nostres dades personals. Més eficients, no només per donar-nos respostes ràpides a les nostres peticions i millorar la nostra experiència d’usuari, sinó per reduir el consum energètic i la petjada ecològica. Els enginyers de software hem de tenir cada cop més presents aquestes dues qualitats, i no només amb la divulgació de bones pràctiques, sinó amb la utilització de llenguatges de programació i eines que les afavoreixen.

“Necessitem programari més segur per evitar que els errors de programació produeixin un comportament inesperat”

No obstant això, no hi ha solucions trivials. Tots els llenguatges de programació es van dissenyar sense tenir en compte amb dues qualitats. Per una banda, tenim llenguatges de programació, com el famós i estès C i C++, que són molt eficients, però no estableixen cap mesura de protecció sobre la gestió de memòria. Per una altra banda, tenim llenguatges de programació, com els coneguts Java i Python, que gestionen per si mateixos la memòria evitant que els enginyers cometin aquests errors, amb la contrapartida de no ser gaire eficients a causa del sobrecost en recursos que aquesta autogestió comporta.

Rust és un llenguatge que ofereix de sèrie aquestes dues qualitats: seguretat i eficiència. La seva eficiència és comparable al llenguatge de programació C i C++, ja que no autogestiona la memòria com el llenguatge de programació Java i Python, sinó que es va dissenyar de tal manera que el compilador impedeix a l’enginyer compilar el programa si hi ha un error en la gestió de la memòria.

“Necessitem programari més eficient per reduir el consum energètic i la petjada ecològica”

Cal esmentar que no tots els errors de gestió de memòria comporten forats de seguretat, i que no tots els forats de seguretat es deuen a un error en la gestió de memòria. Mentre que Rust ofereix garanties de gestió de memòria que van més enllà d’errors que provoquen forats de seguretat com, per exemple, els que poden provocar resultats incorrectes, no ofereix cap garantia d’errors sobre la validació de paràmetres d’entrada i de lògica, ja que aquests depenen d’aspectes que van més enllà dels llenguatges de programació.

Aquestes qualitats, i d’altres com ara els paràmetres de tipus i les expressions de còpia zero, així com la creixent disponibilitat de biblioteques que la important comunitat de Rust ha creat en codi lliure, fan que cada dia més empreses i projectes implementin les seves aplicacions utilitzant Rust. Aquest fet que va en augment constant està creant una demanda de desenvolupadors important, obrint noves oportunitats laborals molt ben remunerades.

Rust, encara que va ser el o un dels pioners d’estar dissenyat amb l’objectiu de ser més segur i eficient, no és actualment l’únic. En els últims anys n’han anat apareixent d’altres, però cap d’ells ha arribat, almenys en aquest moment, a la maduresa que ha arribat Rust, un aspecte indispensable, perquè un llenguatge sigui adoptat en el món professional per part de grans organitzacions i empreses.

“La maduresa és un aspecte indispensable perquè un llenguatge sigui adoptat en el món professional”

Cada cop més, hi ha organitzacions que l’estan adoptant i es fan ressò dels beneficis que n’estan obtenint, així com el número de noves posicions de feina que s’estan publicant per enginyers amb coneixements de Rust.

Des de la Fundació Nord treballem per a la formació constant dels desenvolupadors del nostre país, organitzant cursos que els ajudin a millorar la seva expertesa i a obtenir millores laborals i salarials.