Zašto je jezik Rust u porastu

Vjerojatno nikada niste napisali ništa u Rustu, otvorenom programskom jeziku na razini sustava koji je kreirala Mozilla, ali vjerojatno ćete u jednom trenutku i učiniti. Programeri su Rust okrunili svojim "najomiljenijim" jezikom u istraživanju programera Stack Overflowa iz 2019. godine, dok je Redmonkova polugodišnja ljestvica jezika Rustu stigla na udaljenost od prvih 20 (rang # 21).

To, usprkos korisnicima Rusta, "pronalazi poteškoće i frustracije zbog visoko cenjenih značajki jezika zbog sigurnosti i ispravnosti memorije."

Zašto je jezik koji je pomalo teško naučiti tako voljen? U razgovorima s programerima čini se da se odgovor svodi na ideju da je Rust "sustavi za programiranje s zaštitnim ogradama", kako to opisuje Oso CTO Sam Scott, s tim da je jedna od tih "zaštitnih ograda" izuzetno dobrodošla zajednica.

Sustavi za programiranje zaštitnim ogradama

Većina programera obično ne putuje na teritorij programiranja sustava. Na primjer, programeri aplikacija ne moraju se približavati osnovnom hardveru. Također vjerojatno ne trebaju graditi platforme na kojima će se izvoditi drugi softver, osnovni definicijski element programiranja sustava.

Za one programere koji rade s programskim jezicima niže razine poput C ili C ++, Rust je otkriće, nešto o čemu sam prvi put govorio 2015. Međutim, ubrzajte nekoliko godina unaprijed, a Rust postaje sve bolji.

Upitan da detaljno objasni glavne prodajne točke Rusta, programer David Barsky nudi sljedeće:

  • Performant.  Rust je sposoban zamijeniti C / C ++ u prostorima u kojima je obično uspijevao. Na primjer: "Za mrežne usluge osjetljive na kašnjenje, Rustov nedostatak runtime sakupljanja smeća rezultira gotovo nepostojećim repnim kašnjenjima."
  • Pouzdan.  "Njegov sustav za provjeru tipa i posuđivanje - statički sakupljač smeća tijekom kompajliranja - sprječava cijele klase bugova koji su prihvaćeni kao" normalni "u Pythonu, Javi i C ++."
  • Produktivnost programera.  "Cargo, alat za izradu i upravitelj paketa, jedan je od najboljih sustava za izradu i upravitelje paketa koje sam koristio." Rust također dolazi s izvrsnom ugrađenom dokumentacijom i izvrsnom, ugrađenom jedinicom, integracijom i testiranjem dokumentacije.

Čini se da je iskustvo Barskog slično Scottovu. Dolazeći iz programskih jezika više razine (Java, Ruby on Rails), Scott kaže da je njegovo iskustvo s C bilo manje nego ugodno: „C je bio grozan jer sam neprestano nailazio na probleme s memorijom, segfaulte itd. I više-manje osjećao sam se kao da se cijelo vrijeme borim s kodom. "

Suprotno tome, hrđa je bila "sustavi za programiranje s zaštitnim ogradama". Scott objašnjava:

Tada sam probao Rust (tek je navršio 1.0) i činilo mi se kao da programira sustave s zaštitnim ogradama. Sve stvari koje su mi trebale za programiranje sustava na niskoj razini, ali uz puno pomoći u otklanjanju pogrešaka i kako bi se kôd učinio sigurnim - poput posuđivača i kompajlera, a zatim i kasnije kao alati poput lintera ("clippy"). Ponudio je puno poznatih aspekata funkcionalnog i objektno orijentiranog programiranja i činilo se da se jednostavno uklapa u moj mentalni model kako želim graditi sustave.

Kao suosnivač Osoa, Scott nije mogao izbjeći programiranje niže razine. Oso, s misijom da sigurnost pozadinske infrastrukture učini nevidljivom za programere i jednostavnom za operativne sustave, ”potrebna je izvedba koju nudi jezik na razini sustava. "Ne možemo se služiti jezikom sakupljanim smećem kao što je Go, jer izvedba ne bi bila dovoljno dosljedna onome što radimo, jer se nalazimo na kritičnom putu kupaca", rekao je Scott. 

Sve to zvuči sjajno, sve dok se ne vratimo na potencijalni problem pronalaženja talentovanih programera dobro upućenih u relativno novi jezik. Međutim, pristupačni talent može biti Rustova najbolja karakteristika od svih.

Programeri rđe htjeli

Ključna komponenta učenja nečeg novog je imati ljude koji su spremni pomoći u tranziciji. Ovdje Rust sja. Kako kaže Barsky,

Zajednica Rust puna je strastvenih, dragih i inteligentnih ljudi. Ima strogo primijenjeni kodeks ponašanja, što znači da se ne podnosi grubo ili uznemiravajuće ponašanje. Anegdotalno je da ima neke od najviših koncentracija LGBTQA osoba koje sam vidio u bilo kojoj tehnološkoj zajednici.

Ova je zajednica veliki razlog što, prema Scottu, programeri mogu podići Rust za nekoliko mjeseci. Rust "zahtijeva malo promjene načina razmišljanja", kaže on. "Morate unaprijed obaviti više rasuđivanja o stvarima poput vrsta i životnih vijekova." Ali kad stignete tamo, isplati se dividenda.

Stoga se ne treba čuditi što toliko programeri vole Rust. Ruseova gostoljubiva i inkluzivna zajednica umanjuje nedostatke, a negativne strane minimalizira.