Arkitektúrákvörðunarskrá: forritunarmálið Rust
Ákvörðunarnúmer: AR-001
Titill ákvörðunar: Upptaka forritunarmálsins Rust
Dagsetning: 1. desember 2021
Staða: Samþykkt
Vandamálslýsing
Eftir því sem við höldum áfram að þróa hugbúnaðarforrit höfum við tekið eftir að sífellt erfiðara er að draga úr hugsanlegum öryggisveikleikum og koma í veg fyrir keyrsluvillur. Með fyrirliggjandi forritunarmálum, svo sem C og C++, glímum við áfram við vandamál eins og yfirflæði biðminnis, minnisleka og óskilgreinda hegðun sem leiðir til hruns forrita. Við þurfum forritunarmál sem veitir tryggingar um minnisöryggi og er nógu skilvirkt til að styðja afkastakritísk forrit.
Sjónarmið
Nokkur forritunarmál eru hönnuð til að taka á núverandi vandamálum. Meðal þeirra hefur forritunarmálið Rust vakið verulega athygli í samfélagi þróunaraðila vegna einstakra hönnunareiginleika sinna. Sjónarmið eru meðal annars;
Minnisöryggi og öryggi
Afköst og skilvirkni
Stuðningur samfélagsins og útbreiðsla
Námsferill
Verkfæri og vistkerfi
Samhæfni við núverandi hugbúnaðarkerfi.
Takmarkanir
Upptaka nýs forritunarmáls krefst endurþjálfunar þróunaraðila, sem tekur tíma og auðlindir. Það getur reynst áskorun að fella málið inn í núverandi vinnuflæði þróunar. Við verðum að tryggja samhæfni við núverandi kerfi og forðast breytingar sem rjúfa samhæfni til að viðhalda samfellu.
Innleiðing
Þróunarteymi okkar mun fara í þjálfun til að læra og kynnast forritunarmálinu Rust.
Við munum búa til nýtt verkefni í Rust til reynslu til að meta samhæfni þess og hentugleika fyrir þróunarþarfir okkar.
Við munum færa núverandi kerfi, skrifuð í C og C++, smám saman yfir í Rust.
Við munum eiga samstarf við Rust-samfélagið til að kanna tiltæk verkfæri og söfn sem geta bætt vinnuflæði okkar í þróun.
Við munum fylgjast með afköstum Rust og bera þau reglulega saman við afköst núverandi forritunarmála.
Við munum taka upp langtímanálgun sem vegur kostnað við þjálfun, samþættingu og hugsanlegan ávinning af notkun Rust.
Rökstuðningur
Við höfum tekið upp Rust vegna einstakra eiginleika þess sem eru hannaðir til að veita tryggingar um minnisöryggi og öryggi en viðhalda um leið afköstum og skilvirkni. Öflugt tegundakerfi Rust, lánaathugun (borrow checker) og hugtök um minnisöryggi gera það mjög hentugt til að þróa afkastakritísk og öryggiskritísk forrit. Þar að auki á Rust verulegt samfélag þróunaraðila, sem gerir okkur kleift að nálgast fjölbreytt úrval verkfæra, safna og vistkerfis sem styður vinnuflæði okkar í þróun. Þótt Rust fylgi námsferill teljum við að ávinningurinn af upptöku Rust vegi þyngra en kostnaðurinn og veiti frábært tækifæri til áframhaldandi vaxtar og nýsköpunar.
Afleiðingar
Upptaka Rust mun krefjast verulegrar fjárfestingar í tíma og auðlindum til að þjálfa þróunaraðila og fella málið inn í núverandi vinnuflæði þróunar.
Upptaka Rust getur valdið einhverjum samhæfnivandamálum við núverandi kerfi, sem krefst endurskipulagningar kóða og breytinga.
Upptaka Rust getur fjölgað þróunaraðilum sem geta lagt sitt af mörkum til verkefnisins okkar með því að laða að Rust-þróunaraðila sem vilja vinna að spennandi verkefnum.
Upptakan gæti leitt til bættra afkasta, skilvirkni og öryggis samanborið við núverandi mál.
Að lokum fylgir upptöku Rust hugsanlegur ávinningur af fækkun öryggisveikleika í forritum okkar.