Carbon, il linguaggio di programmazione che mira a sostituire il C++

Pochi giorni fa ha rivelato un dipendente di Google che sta sviluppando un nuovo linguaggio di programmazione chiamato "Carbone", che è posizionato come un sostituto sperimentale per C++, ampliando questo linguaggio ed eliminando le carenze esistenti.

Secondo la presentazione di Carruth, il linguaggio è stato sviluppato per essere in grado di creare software in cui le prestazioni sono fondamentali. Volevano anche consentire agli sviluppatori di trarre vantaggio dalla moderna progettazione del linguaggio di programmazione utilizzando Carbon.

Alcune delle cose evidenziate come punti salienti di Carbon rispetto a C++ sono state, ad esempio, sintassi più semplice e importazioni API. Secondo Carruth, questo nuovo linguaggio sperimentale dovrebbe essere interoperabile in modo bidirezionale con C++, il che significa che i progetti dovrebbero essere in grado di migrare da un linguaggio all'altro senza troppe difficoltà.

Inoltre, l'obiettivo è sviluppare ulteriormente il linguaggio in modo aperto su Internet, dove chiunque lo desideri può contribuire con il codice sorgente. Il progetto è disponibile pubblicamente su Github ed è aperto per richieste pull. 

Il linguaggio supporta la portabilità C++ di base, può integrarsi con il codice C++ esistente e fornisce strumenti per semplificare la migrazione di progetti esistenti traducendo automaticamente le librerie C++ in codice Carbon.

Ad esempio, puoi riscrivere una determinata libreria in Carbon e usarla in un progetto C++ esistente. Il compilatore Carbon è scritto utilizzando build LLVM e Clang.

Tra le principali caratteristiche del Carbonio, si distinguono i seguenti:

  • Le prestazioni del codice risultante sono paragonabili a C++, pur mantenendo la possibilità di accedere a indirizzi di basso livello e dati a livello di bit.
  • Portabilità con codice C++ esistente, inclusi l'ereditarietà delle classi e i modelli.
  • Compilazione rapida e capacità di integrazione con i sistemi di compilazione esistenti per C++.
  • Semplifica la migrazione tra diverse versioni di Carbon.
  • Fornisce strumenti sicuri per la memoria che proteggono dalle vulnerabilità causate dall'indirizzamento di un'area di memoria dopo che è stata liberata, dai puntatori nulli dereferenziati e dagli overflow del buffer.

Ovviamente abbiamo Rust come alternativa proposta a C e C++, ma questo non è davvero un linguaggio di estensione, è più un linguaggio a tutti gli effetti, ricominciamo. Carbon sta cercando di essere come Rust pur essendo compatibile con il mondo di C++, Bene, sulla sua pagina Github dice:

  • Corrispondenza delle prestazioni C++ tramite LLVM, con accesso di basso livello a bit e indirizzi
  • Interagisci con il codice C++ esistente, dall'ereditarietà ai modelli
  • Build veloci e scalabili che funzionano con i tuoi sistemi di build C++ esistenti

Si sostiene che il carbonio sia necessario perché il miglioramento incrementale di C++ semplicemente non è più possibile a causa del bagaglio storico di cui semplicemente non può sbarazzarsi. Personalmente, andrei oltre e suggerirei che i "miglioramenti" incrementali in C++ sono parte del motivo per cui in pratica è un linguaggio così ampio.

“Ci sono sempre nuovi linguaggi che cercano di essere i successori del C++. Accolgo con favore esperimenti con linguaggi di programmazione e stili di programmazione, ma non voglio proprio suscitare polemiche. È facile criticare le lingue consolidate (conosciamo i loro problemi), ma di solito è difficile offrire alternative senza creare serie completamente nuove di problemi nelle regole linguistiche, nelle biblioteche e nella governance. Il carbonio è così nuovo e sottospecificato che non posso davvero fare commenti tecnici significativi", ha detto l'inventore di C++ Bjarne Stroustrup in una e-mail.

Sebbene Carbon sia nato come progetto interno di Google, il team di sviluppo vuole infine ridurre i contributi di Google, o di qualsiasi altra singola azienda, a meno del 50% entro la fine dell'anno. In definitiva, vogliono consegnare il progetto a una fondazione software indipendente, dove il suo sviluppo sarà svolto da volontari.

Infine se sei interessato a saperne di più dovresti sapere che gli sviluppi del progetto sono distribuiti sotto la licenza Apache 2.0 e puoi consultarli nel seguente link


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.