Perché la lingua Rust è in aumento

Probabilmente non hai mai scritto nulla in Rust, il linguaggio di programmazione open source a livello di sistema creato da Mozilla, ma probabilmente lo farai ad un certo punto. Gli sviluppatori hanno incoronato Rust la loro lingua "più amata" nel sondaggio per sviluppatori di Stack Overflow del 2019, mentre la classifica semestrale delle lingue di Redmonk ha visto Rust arrivare a una distanza di sputo dalla top 20 (posizione # 21).

Questo, nonostante gli utenti di Rust "trovino difficoltà e frustrazione con le caratteristiche altamente pubblicizzate del linguaggio per la sicurezza e la correttezza della memoria".

Perché una lingua nota per essere un po 'difficile da imparare è così amata? Nelle conversazioni con gli sviluppatori, sembra che la risposta derivi dall'idea che Rust sia "programmazione di sistemi con guard rail", come lo descrive Oso CTO Sam Scott, con uno di quei "guard rail" che è una comunità eccezionalmente accogliente.

Programmazione dei sistemi con guard rail

La maggior parte degli sviluppatori normalmente non si reca nel territorio della programmazione di sistemi. Gli sviluppatori di applicazioni, ad esempio, tendono a non dover avvicinarsi all'hardware sottostante. Inoltre, probabilmente non hanno bisogno di costruire piattaforme su cui verrà eseguito altro software, un elemento di definizione fondamentale della programmazione dei sistemi.

Per quegli sviluppatori che lavorano con linguaggi di programmazione di livello inferiore come C o C ++, Rust è una rivelazione, qualcosa di cui ho parlato per la prima volta nel 2015. Avanti veloce di alcuni anni, tuttavia, e Rust continua a migliorare.

Alla richiesta di dettagli sui principali punti di forza di Rust, lo sviluppatore David Barsky offre quanto segue:

  • Performante.  Rust è in grado di sostituire C / C ++ negli spazi in cui tipicamente prosperava. Ad esempio: "Per i servizi di rete sensibili alla latenza, la mancanza di garbage collection in runtime si traduce in latenze di coda quasi inesistenti."
  • Affidabile.  "Il suo sistema di tipi e il controllo dei prestiti, un garbage collector statico in fase di compilazione, prevengono intere classi di bug che sono accettati come" normali "in Python, Java e C ++."
  • Produttività degli sviluppatori.  "Cargo, lo strumento di compilazione e gestore di pacchetti, è uno dei migliori sistemi di compilazione e gestori di pacchetti che abbia mai usato." Rust viene fornito con un'eccellente documentazione incorporata e un ottimo test integrato di unità, integrazione e documentazione.

L'esperienza di Barsky sembra simile a quella di Scott. Provenendo da linguaggi di programmazione di livello superiore (Java, Ruby on Rails), Scott afferma che la sua esperienza con C è stata tutt'altro che piacevole: "C era orribile perché mi imbattevo costantemente in problemi di memoria, segfault, ecc. E io più o meno mi sembrava di combattere con il codice per tutto il tempo. "

Rust, al contrario, era "programmazione di sistemi con guard rail". Scott spiega:

Poi ho provato Rust (era appena diventato 1.0), e sembrava che i sistemi programmassero con guard rail. Tutte le cose di cui avevo bisogno per programmare i sistemi di basso livello, ma con molto aiuto per eseguire il debug e rendere il codice sicuro - come il controllore e il compilatore di prestiti, e poi strumenti come i linter ("clippy"). Aveva offerto molti degli aspetti familiari della programmazione funzionale e orientata agli oggetti e sembrava adattarsi al mio modello mentale di come volevo costruire i sistemi.

In qualità di co-fondatore di Oso, Scott non ha potuto evitare la programmazione di livello inferiore. Oso, con la missione di rendere la sicurezza dell'infrastruttura back-end invisibile per gli sviluppatori e semplice per gli operatori ”, necessita delle prestazioni offerte da un linguaggio a livello di sistema. "Non possiamo utilizzare un linguaggio raccolto dalla spazzatura come Go, perché le prestazioni non sarebbero abbastanza coerenti per ciò che facciamo, dal momento che ci troviamo sul percorso critico del traffico dei clienti", ha detto Scott. 

Tutto ciò suona alla grande, fino a quando non torniamo al potenziale problema di reperire talenti di sviluppo esperti in un linguaggio relativamente nuovo. Tuttavia, il talento accessibile potrebbe essere la migliore caratteristica di Rust.

Cercavano programmatori Rust

Una componente fondamentale per imparare qualcosa di nuovo è avere persone disposte ad aiutare con la transizione. Qui la ruggine brilla. Come dice Barsky,

La comunità Rust è piena di persone appassionate, gentili e intelligenti. Ha un codice di condotta fortemente applicato, il che significa che il comportamento scortese o molesto non è tollerato. Aneddoticamente, ha alcune delle più alte concentrazioni di persone LGBTQA che abbia mai visto in qualsiasi comunità tecnologica.

Questa comunità è una grande ragione per cui, secondo Scott, gli sviluppatori possono acquistare Rust in pochi mesi. Rust "richiede un piccolo cambiamento di mentalità", dice. "È necessario lavorare di più per ragionare in anticipo su cose come tipi e vite." Ma una volta arrivato lì "paga i dividendi su tutta la linea".

Non c'è da stupirsi, quindi, che così tanti sviluppatori adorino Rust. Il lato positivo è grande e il lato negativo è minimizzato dalla comunità accogliente e inclusiva di Rust.