Sommario[Nascondere][Spettacolo]
Nel tentativo di sostituire il venerabile ma lento C++, i ricercatori di Google hanno introdotto un nuovissimo linguaggio di programmazione open source "sperimentale" chiamato Carbon.
Carbon potrebbe fungere da linguaggio successivo al C++, uno che fornisce un semplice punto di partenza per gli sviluppatori verso un nuovo linguaggio che affronti concetti di sviluppo contemporanei come la sicurezza della memoria e i generici.
Sarebbe simile a come Microsoft ha creato Typescript per aggiornare JavaScript e Kotlin per rafforzare i punti deboli di Java.
Google ha sviluppato numerosi linguaggi di programmazione nel corso degli anni, alcuni dei quali hanno acquisito notevole notorietà e importanza.
Ad esempio, Golang (o semplicemente Go) è stato sviluppato per facilitare la creazione di server e sistemi distribuiti ed è stato successivamente accolto dal grande pubblico.
Il Dart linguaggio di programmazione, che è stato creato come sostituto di JavaScript, non è diventato famoso fino al lancio di Flutter.
Chandler Carruth, un dipendente di Google, ha presentato la sua idea per un nuovo linguaggio di programmazione chiamato Carbon il 19 luglio 2022 alla convention Cpp North di Toronto, secondo Conor Hoekstra, che ha assistito e registrato le diapositive.
Per impostare lo scenario, Carruth ha dimostrato come molti dei linguaggi di programmazione più apprezzati dei giorni nostri abbiano discendenti che consentono agli sviluppatori di essere rapidamente produttivi e anche di beneficiare del design del linguaggio contemporaneo.
Iniziamo con un'introduzione generale del linguaggio di programmazione Carbon, comprese le sue caratteristiche, lo scopo dell'invenzione di Google e altro ancora.
Introduzione al linguaggio di programmazione Carbon
Il 19 luglio 2022, Google ha rivelato Carbon come il nuovo linguaggio di programmazione che aveva creato. Doveva sostituire sperimentalmente il C++.
Grazie ad un sistema dei generici, che elimina la necessità di ricontrollare il codice per ogni istanza, Carbon sarà costruito sulla base di concetti di programmazione moderni.
Entro la fine dell'anno, il progetto prevede di fornire una versione operativa di base (versione 0.1).
L'integrità della memoria è un elemento cruciale che manca a C++. Una delle principali fonti di falle di sicurezza sono i problemi di accesso alla memoria.
Lo sviluppo di controlli dei limiti dinamici, un maggiore monitoraggio degli stati non inizializzati e una modalità di build di debug predefinita completa sono tutti obiettivi del team di Carbon. I creatori intendono creare un sottoinsieme di carbonio sicuro nel tempo.
Tuttavia, le seguenti sono alcune caratteristiche cruciali del nuovo linguaggio di programmazione:
- Per nominare i tipi, usa le espressioni.
- Generici forti con controlli di definizione
- I tipi eseguono specificamente le interfacce
- frasi di introduzione e grammatica di base
- I puntatori consentono l'accesso illimitato e la mutazione.
- I valori per i parametri di ingresso della funzione sono di sola lettura.
- Lo spazio dei nomi radice è il pacchetto.
- Le API possono essere importate utilizzando i nomi dei pacchetti.
- Un metodo viene dichiarato tramite un parametro oggetto esplicito.
- Le lezioni sono finali per impostazione predefinita; c'è una sola eredità
Caratteristiche del carbonio
Moderno e in via di sviluppo
- Gli aggiornamenti tra le versioni di Carbon sono semplici e basati su strumenti.
- Solide basi linguistiche, specialmente se hai usato C++, e semplice da imparare
- Fondamenti più sicuri e un approccio graduale a un sottoinsieme sicuro per la memoria
Accogliere favorevolmente la comunità dell'open source
- Una comunità che si sforza di essere calorosa, accogliente e invitante
- I suoi obiettivi e le sue priorità sono una governance forte e distinta
- Una strategia all-in-one con un compilatore, librerie, documentazione, strumenti, gestione dei pacchetti e altro ancora
Veloce e compatibile con C++
- Lavora insieme a Codice C ++ hai già, inclusi eredità e modelli
- Con LLVM, prestazioni paragonabili a C++ e accesso di basso livello a bit e indirizzi
- Build veloci, scalabili e compatibili con i sistemi di build C++ esistenti
Perché Google ha creato il linguaggio di programmazione Carbon?
Il software critico per le prestazioni continua a essere scritto principalmente in C++, che ha basi di codice e investimenti enormi e in espansione.
Tuttavia, come accennato in precedenza, sta avendo problemi ad avanzare e soddisfare le richieste degli sviluppatori, in gran parte a causa dell'accumulo di anni di debito tecnologico.
È estremamente difficile migliorare in modo incrementale C++ a causa del debito tecnico accumulato e delle difficoltà con il suo processo di evoluzione.
L'approccio ideale per risolvere questi problemi è iniziare con una solida base linguistica, come un sistema generico contemporaneo, una struttura di codice modulare e una sintassi coerente e semplice, piuttosto che ereditare direttamente la tradizione di C o C++.
Go, Swift, Kotlin, Rust e molti altri linguaggi contemporanei offrono già un'esperienza di sviluppo eccezionale. Gli sviluppatori che sono in grado di utilizzare uno di questi linguaggi attuali dovrebbero farlo.
Sfortunatamente, l'adozione e la migrazione da C++ sono gravemente ostacolate dalla progettazione di questi linguaggi. Questi ostacoli includono il sovraccarico delle prestazioni e le modifiche al design idiomatico del software.
Carbon non è un tentativo di migliorare gradualmente C++; piuttosto, è una strategia linguistica successiva. L'obiettivo è l'interoperabilità C++, nonché l'accettazione e la migrazione diffuse per gli sviluppatori e le basi di codice che attualmente utilizzano C++.
Un linguaggio sostitutivo C++ deve avere:
- Le prestazioni paragonabili a C++ sono una caratteristica cruciale per gli sviluppatori.
- Una curva di apprendimento gestibile e un livello di familiarità per i programmatori C++
- Migrazione scalabile e che include alcune traduzioni di codice C++ idiomatico da origine a origine.
- Espressività simile e supporto per l'architettura e il design del software attuale.
- Interoperabilità con C++ che è continua e bidirezionale, consentendo a qualsiasi libreria di adottare Carbon senza dover trasferire il resto dello stack.
Con questa strategia, Google si aggiunge all'ecosistema già esistente per C++ e incorpora gli attuali investimenti, basi di codice e comunità di sviluppo.
Alcuni linguaggi hanno adottato questo approccio per vari ecosistemi e Carbon cerca di svolgere una funzione simile a C++ in queste situazioni:
- Java – Kotlin
- JavaScript: dattiloscritto
- C++ – Carbonio
Codice C++ VS Carbon
Carbon dovrebbe avere una curva di apprendimento bassa se sei già uno sviluppatore C++. È composto da un insieme fisso di costruzioni grammaticali che dovrebbero suonare naturali ed essere semplici da leggere e comprendere.
Un esempio di codice C++:
Questo codice carbonio corrisponde a:
Carbonio contro ruggine
Un altro linguaggio contemporaneo progettato espressamente per soddisfare i requisiti delle applicazioni con prestazioni sicure per la memoria è chiamato Rust.
Allora perché non usare semplicemente Rust?
Mentre alcuni sostengono che Rust, che è iniziato come un progetto Mozilla e successivamente è cresciuto fino ad avere un considerevole seguito di pubblico, sia un successore di C++, Carruth dubita che il parallelo sia ancora valido.
Rust è senza dubbio un linguaggio fantastico con cui iniziare un nuovo progetto, ma poiché manca dell'"interoperabilità bidirezionale" di linguaggi come Java e Kotlin, è difficile passare ad esso gradualmente.
Carruth ha tenuto una conferenza al CPP North e ha incoraggiato le persone che stavano già usando Rust a continuare a farlo. Gli sviluppatori che dispongono già di basi di codice C++ di grandi dimensioni che sono difficili da convertire in Rust dovrebbero utilizzare Carbon.
In particolare, Carbon è ciò che Carruth chiamava un "linguaggio successore", che è costruito su un ecosistema esistente, in questo caso C++.
A tal fine, Carbon è pensato per essere completamente compatibile con l'attuale codice C++, anche se ha molti obiettivi con Rust, come assistere i programmatori nella creazione di "applicazioni critiche per le prestazioni".
Inoltre, ha lo scopo di rendere il passaggio da C++ a Carbon il più semplice possibile.
Conclusione
Infine, i creatori del linguaggio Carbon si sono sforzati di prestare attenzione al processo di creazione. Il codice del progetto è disponibile per la richiesta e memorizzato apertamente su Github, e la sua cultura è definita inclusiva e aperta sia ai privati cittadini che al settore IT.
Il team di Carbon pensava che Carbon dovesse essere un progetto autonomo guidato dalla comunità e non solo un progetto alimentato da Google per svilupparsi in futuro.
Caruth ha aggiunto che, nonostante l'interesse di diverse aziende IT, questo concetto è ancora in fase sperimentale.
Lascia un Commento