Programavimas

Kodėl „Rust“ kalba auga

Tikriausiai niekada nieko nerašėte „Rust“, atvirojo kodo, sistemos lygio programavimo kalba, kurią sukūrė „Mozilla“, bet greičiausiai kada nors parašysite. Kūrėjai vainikavo „Rust“ savo „mylimiausia“ kalba „Stack Overflow“ 2019 m. Kūrėjų apklausoje, o Redmonko pusmetiniame kalbų reitinge Rustas pateko į spjaudymo atstumą nuo 20 geriausių (21 reitingas).

Nepaisant to, kad „Rust“ vartotojai „randa sunkumų ir nusivylimą dėl labai reklamuojamų kalbos funkcijų, susijusių su atminties saugumu ir teisingumu“.

Kodėl žinoma, kad kalbą yra šiek tiek sunku išmokti taip mylimą? Pokalbiuose su kūrėjais atrodo, kad atsakymas kyla iš minties, kad „Rust“ yra „sistemos programavimas su apsauginiais bėgiais“, kaip tai apibūdina Oso CTO vadovas Sam Scottas, o vienas iš tų „apsauginių bėgių“ yra išskirtinai svetinga bendruomenė.

Sistemų programavimas su apsauginiais bėgiais

Dauguma kūrėjų paprastai nekeliauja į sistemų programavimo teritoriją. Pavyzdžiui, programų kūrėjams nebereikia priartėti prie pagrindinės aparatūros. Jiems taip pat greičiausiai nereikia kurti platformų, kuriose veiks kita programinė įranga - pagrindinis apibrėžiantis sistemos programavimo elementas.

Tiems kūrėjams, kurie dirba su žemesnio lygio programavimo kalbomis, tokiomis kaip C arba C ++, „Rust“ yra apreiškimas, ką aš pirmą kartą aptariau 2015 m. Tačiau kelerius metus pirmyn į priekį, o „Rust“ tiesiog gerėja.

Paprašytas išsiaiškinti pagrindinius „Rust“ pardavimo taškus, kūrėjas Davidas Barsky siūlo:

  • Atlikėjas. Rūdys gali pakeisti C / C ++ erdvėse, kuriose jis paprastai klestėjo. Pavyzdžiui: „Dėl vėlavimui jautrių tinklo paslaugų Rust'o trūkumas vykdymo laiko šiukšlių surinkimo lemia beveik neegzistuojančius uodegos vėlavimus“.
  • Patikimas. „Jo tipo sistema ir paskolų tikrintuvas - statinis, kompiliuojamas šiukšlių surinkėjas - apsaugo nuo visų klaidų klasių, kurios„ Python “,„ Java “ir„ C ++ “yra„ normalios “.
  • Kūrėjų produktyvumas. „„ Cargo “, sukūrimo įrankių ir paketų tvarkyklė, yra viena iš geriausių mano sukurtų sistemų ir paketų valdytojų.“ „Rust“ taip pat pateikiama puiki įmontuota dokumentacija ir puikus, integruotas įrenginys, integracija ir dokumentų testavimas.

Barskio patirtis atrodo panaši į Skoto. Iš aukštesnio lygio programavimo kalbų („Java“, „Ruby on Rails“) Scottas sako, kad jo patirtis su C buvo ne tokia maloni: „C buvo siaubinga, nes aš nuolat susidurdavau su atminties problemomis, sutrikimais ir pan. jaučiausi taip, lyg visą laiką kovojau su kodu “.

Rūdys, priešingai, buvo „sistemos, programuojamos su apsauginiais bėgiais“. Skotas paaiškina:

Tada aš išbandžiau „Rust“ (jis ką tik buvo sukakęs 1.0) ir atrodė, kad sistemos programuojamos su apsauginiais bėgiais. Visi dalykai, kurių man reikėjo norint atlikti žemo lygio sistemų programavimą, tačiau turėjau daug pagalbos derinant ir kad kodas būtų saugus - pvz., Skolinimosi tikrintuvas ir kompiliatorius, o vėliau - įrankiai, tokie kaip lintos („clippy“). Tai pasiūlė daug žinomų funkcinio ir į objektą orientuoto programavimo aspektų ir, atrodo, tiko mano mentaliniam modeliui, kaip norėjau kurti sistemas.

Kaip vienas iš „Oso“ įkūrėjų, Scottas negalėjo išvengti žemesnio lygio programavimo. Oso, turinti misiją, kad galinis infrastruktūros saugumas būtų nematomas kūrėjams, o operacijoms - paprastas, “reikia sistemos lygio kalbos. „Mes negalime naudoti tokios šiukšlių surinktos kalbos kaip„ Go “, nes našumas nebūtų pakankamai nuoseklus tam, ką darome, nes sėdime kritiniame klientų srauto kelyje“, - sakė Scott.

Visa tai skamba puikiai, kol grįšime prie galimos problemos, susijusios su kūrėjų talentų įsigijimu, gerai mokančiais palyginti naują kalbą. Tačiau prieinamas talentas gali būti geriausias Rusto bruožas.

Norėjo rūdžių programuotojai

Kritinis mokymosi kažko naujo komponentas yra tai, kad žmonės nori padėti pereiti. Čia šviečia Rūdys. Kaip sako Barskis,

„Rust“ bendruomenėje gausu aistringų, malonių ir protingų žmonių. Jo elgesio kodeksas yra griežtai laikomasi, o tai reiškia, kad grubus ar priekabus elgesys nėra toleruojamas. Anekdotiniu požiūriu, jame yra didžiausia LGBTQA žmonių koncentracija, kurią mačiau bet kurioje technologijų bendruomenėje.

Ši bendruomenė yra svarbi priežastis, dėl kurios, pasak Scott, kūrėjai gali pasiimti „Rust“ per kelis mėnesius. Rūdys „reikalauja šiek tiek pakeisti mąstyseną“, - sako jis. „Turite iš anksto atidžiau samprotauti apie tipus ir gyvenimą.“ Bet kai jūs ten pateksite, „tai moka dividendus.“

Todėl nenuostabu, kad tiek daug kūrėjų mėgsta „Rust“. Rusto svetinga ir įtrauki bendruomenė sumažina aukštyn ir neigiamą pusę.

$config[zx-auto] not found$config[zx-overlay] not found