Llenguatges de programació: és hora de deixar d’utilitzar C i C++ per a nous projectes, diu el CTO de Microsoft Azure

Deagreez/Getty Images

Mark Russinovich, el cap de tecnologia de Microsoft Azure, diu que els desenvolupadors haurien d’evitar utilitzar els llenguatges de programació C o C++ en projectes nous i, en canvi, utilitzar Rust per problemes de seguretat i fiabilitat.

Rust, que va arribar a la versió 1.0 el 2020 i va néixer a Mozilla, ara s’utilitza dins del projecte de codi obert d’Android (AOSP), a Meta, a Amazon Web Services, a Microsoft per a parts de Windows i Azure, al nucli de Linux, i en molts altres llocs.

Els enginyers valoren les seves “garanties de seguretat de la memòria”, que redueixen la necessitat de gestionar manualment la memòria d’un programa i, al seu torn, redueixen el risc de fallades de seguretat relacionades amb la memòria que carreguin grans projectes escrits en C o C++ “no segurs per a la memòria”, que inclou Chrome. Android, el nucli de Linux i Windows.

També: Comprendre la gran visió de Microsoft per crear la propera generació d’aplicacions

Microsoft va arribar a casa aquest punt el 2019 després de revelar que el 70% dels seus pegats dels darrers 12 anys es van solucionar per errors de seguretat de la memòria a causa principalment del fet que Windows s’escriu principalment en C i C++. L’equip de Chrome de Google va valorar les seves pròpies conclusions el 2020, revelant que el 70% de tots els errors de seguretat greus a la base de codi de Chrome eren errors de gestió de memòria i seguretat. Està escrit principalment en C++.

“A menys que passi alguna cosa estranya, això [Rust] passarà a la 6.1”, va escriure Linus Torvalds dilluns, aparentment posant fi a un debat de llarga durada sobre Rust esdevenint un segon llenguatge a C per al nucli de Linux.

L’únic qualificador de l’Azure CTO sobre l’ús de Rust és que era preferible a C i C+ per a projectes nous que requereixen un llenguatge que no es reculli a les escombraries (GC). Els motors GC gestionen la memòria. Google’s Go és un llenguatge de recollida d’escombraries, mentre que el projecte Rust promou que Rust no ho és. Enginyers d’AWS com Rust over Go per les eficiències que ofereix sense GC.

“Parlant d’idiomes, és hora d’aturar l’inici de nous projectes en C/C++ i utilitzar Rust per a aquells escenaris en què es requereix un llenguatge que no sigui GC. Per motius de seguretat i fiabilitat, la indústria hauria de declarar aquests idiomes com a obsolets. “, va escriure Russinovich.

També: Els llenguatges de programació més populars i on aprendre’ls

Rust és un substitut prometedor de C i C++, especialment per a la programació a nivell de sistemes, projectes d’infraestructura, desenvolupament de programari incrustat i molt més, però no a tot arreu ni a tots els projectes.

De fet, Russinovich afegit més tard: “Hi ha una quantitat enorme de C/C++ que es mantindrà i evolucionarà durant dècades (o més). Ahir a la nit vaig codificar una funció per a Handle, afegint-hi aproximadament 85.000 línies de codi Sysinternals C/C++ que he escrit. Dit això, m’orientaré cap a Rust per a noves eines”.

Sens dubte, Rust avança i és probable que aviat estigui al nucli de Linux.

L’AOSP, que és una distribució de Linux, va començar a utilitzar Rust en codi nou l’abril de 2021, però va deixar la seva base de codi C/C++ al seu lloc. Aquell mes, AOSP també va donar suport a les trucades de Rust com a opció per al codi nou al nucli de Linux.

També: Windows 11 22H2: aquestes són les grans funcions de seguretat noves

Meta recentment va promocionar Rust com a llenguatge principal compatible amb el servidor juntament amb C++. AWS inverteix en Rust per al programari d’infraestructura. Els enginyers d’Azure l’han utilitzat per crear eines al núvol per provar mòduls WebAssembly a Kubernetes. D’altra banda, l’equip de Chrome està lligat a C++ en un futur previsible, malgrat l’interès per Rust; simplement canviar a Rust no eliminaria una proporció significativa de vulnerabilitats de seguretat durant anys, van dir. En canvi, Chrome està aportant seguretat de memòria a la seva base de codi C++.

A més, Rust no s’ha de veure com una bala de plata per a tots els mals hàbits que practiquen els desenvolupadors quan codifiquen en C o C++.

Bob Rudis, investigador de ciberseguretat de GreyNoise Intelligence, que abans estava a Rapid7, assenyalat els desenvolupadors poden portar els mateixos mals hàbits de seguretat a Rust.

“Tenint en compte el que es necessita (temps/diners/persones/serveis) per fer que els projectes C/C++ “reals” siguin segurs a qualsevol velocitat, estic d’acord [with Russinovich]. Dit això, és possible portar les mateixes males pràctiques a Rust”, va escriure.

Steven J. Vaughan-Nichols de ZDNet àmpliament d’acord amb aquesta sensació:

“Com han dit altres, podeu escriure “de manera segura” en C o C++, però és molt més difícil, independentment del dialecte que feu servir que no pas en Rust. Tingueu en compte que encara podeu afectar la seguretat a Rust, però evita molts problemes de memòria antics”.

Leave a Comment

Your email address will not be published. Required fields are marked *