Rust 1.78. väljaanne. Borgo keel, mis ühendab Go ja Rust tugevad küljed

Avaldatud on üldotstarbelise programmeerimiskeele Rust 1.78 väljaanne, mille on algatanud Mozilla projekt, kuid mida arendab nüüd iseseisev mittetulundusühing Rust Foundation. Keel keskendub mälu turvalisele töötlemisele ning pakub vahendeid kõrge paralleelsuse saavutamiseks, kasutamata samal ajal prügikorjajat ja käitusaega (käitusaeg piirdub põhialustamise ja standardraamatukogu hooldamisega).

Rustis olevad mäluhaldusmeetodid vabastavad arendajad probleemidest, mis on seotud osutitega, ning kaitsevad madala taseme mälutöötlusest tulenevate probleemide, nagu vabanenud mälu alale juurdepääs, nullosutite de-referentseerimine, mälupiiride ületamine jne. Raamatukogude levitamiseks, projekti koostamise ja sõltuvuste haldamiseks arendatakse pakihaldurit Cargo. Raamatukogude paigutamiseks toetatakse repo crates.io.

Rust tagab turvalise mälutöötluse kompilatsiooni ajal, kontrollides viiteid, jälgides objektide omandit, arvestades objektide elutsüklit (nähtavust) ja hinnates mälule juurdepääsu õigsust koodi käitamise ajal. Rust pakub ka meetmeid enamike täisarvude ületamiste vältimiseks, nõuab muutujate väärtuste algväärtustamist enne kasutamist, käsitleb vigasid paremini oma standardraamatukogus, rakendab immutamatuse (immutable) kontseptsiooni viidetes ja muutujates vaikimisi ning pakub tugevat staatilist tüüpimist loogiliste vigade minimeerimiseks.

Põhilised uuendused:

Additionally, the programming language Borgo can be noted, which aims to be more expressive than Go while being less complex than Rust. Borgo combines the best features of Go and Rust, filling in the shortcomings of each language. For instance, Go is simple and clear but does not provide advanced tools for type safety. Rust offers tools for safe programming but is overly complex. The project is developed by Marco Sampellegrini, author of "The Simple Haskell Handbook" and developer of the continuous integration system Quad CI.

Rust 1.78. väljaanne. Borgo keel, mis ühendab Go ja Rust tugevad küljed

Borgo kasutab staatilist tüpimist, sarnaseid nagu Go tüüpide ja Rusti süntaksiga. Punktide kasutamine koodiread lõpus Borgos ei ole kohustuslik. Borgo keeles kirjutatud kood kompileeritakse Go keeles esitusvormiks, mis on täielikult ühilduv olemasolevate Go pakettidega. Koodikomplekt on kirjutatud Rusti keeles ja levitatakse ISC litsentsi alusel. use fmt enum NetworkState { Loading, Failed(int), Success(T), } struct Response { title: string, duration: int, } fn main() { let res = Response { title: "Hello world", duration: 0, } let state = NetworkState.Success(res) let msg = match state { NetworkState.Loading => "still loading", NetworkState.Failed(code) => fmt.Sprintf("Got error code: %d", code), NetworkState.Success(res) => res.title, } fmt.Println(msg) }

Allikas:
opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster