Carbon, programski jezik koji ima za cilj zamijeniti C++

Prije nekoliko dana otkrio je zaposlenik Googlea koji razvija novi programski jezik pod nazivom "ugalj", Que pozicioniran je kao eksperimentalna zamjena za C++, proširujući ovaj jezik i eliminišući postojeće nedostatke.

Prema Carruthovoj prezentaciji, jezik je razvijen da može kreirati softver gdje je performansa kritična. Također su željeli omogućiti programerima da iskoriste prednosti modernog dizajna programskog jezika korištenjem Carbon-a.

Neke od stvari koje su istaknute kao istaknuti Carbon u poređenju sa C++ su, na primjer, jednostavnija sintaksa i uvoz API-ja. Prema Carruthu, ovaj novi eksperimentalni jezik bi trebao biti dvosmjerno interoperabilan sa C++, što znači da bi projekti trebali biti u mogućnosti da migriraju s jednog jezika na drugi bez većih poteškoća.

Osim toga, cilj je i dalje razvijanje jezika na otvoren način na internetu, gdje svako ko želi može doprinijeti izvornom kodu. Projekat je javno dostupan na Githubu i otvoren je za pull requests. 

Jezik podržava osnovnu prenosivost C++, može se integrirati sa postojećim C++ kodom i pruža alate za pojednostavljenje migracije postojećih projekata automatskim prevođenjem C++ biblioteka u Carbon kod.

Na primjer, možete prepisati određenu biblioteku u Carbon-u i koristiti je u postojećem C++ projektu. Carbon kompajler je napisan pomoću LLVM i Clang buildova.

Od glavnih karakteristika karbona, izdvajaju se:

  • Performanse rezultujućeg koda su uporedive sa C++, uz zadržavanje mogućnosti pristupa adresama niskog nivoa i podacima na nivou bita.
  • Prenosivost sa postojećim C++ kodom, uključujući nasljeđivanje klasa i šablone.
  • Brza kompilacija i mogućnost integracije sa postojećim sistemima izgradnje za C++.
  • Pojednostavite migraciju između različitih verzija Carbon-a.
  • Pruža alate sigurne za memoriju koji štite od ranjivosti uzrokovanih adresiranjem memorijskog područja nakon što je oslobođeno, dereferenciranjem nultih pokazivača i prekoračenjem bafera.

Naravno, imamo Rust kao predloženu alternativu za C i C++, ali ovo zapravo nije jezik proširenja, to je više punopravni jezik, počnimo iznova. Carbon pokušava biti kao Rust, a da je i dalje kompatibilan sa svijetom C++-a, Pa, na svojoj Github stranici piše:

  • Usklađivanje C++ performansi koristeći LLVM, sa niskim nivoom pristupa bitovima i adresama
  • Interoperirajte s vašim postojećim C++ kodom, od nasljeđivanja do predložaka
  • Brze, skalabilne gradnje koje rade sa vašim postojećim C++ sistemima gradnje

Tvrdi se da je ugljenik neophodan jer postepeno poboljšanje C++ jednostavno više nije moguće zbog istorijskog prtljaga kojeg se jednostavno ne može riješiti. Lično, otišao bih dalje i predložio da su postepena "poboljšanja" u C++ dio razloga zašto je to tako veliki jezik u praksi.

“Uvijek postoje novi jezici koji pokušavaju biti nasljednici C++-a. Pozdravljam eksperimente sa programskim jezicima i stilovima programiranja, ali zaista ne želim da izazivam kontroverzu. Lako je kritizirati ustaljene jezike (znamo njihove probleme), ali obično je teško ponuditi alternative bez stvaranja potpuno novih skupova problema u jezičkim pravilima, bibliotekama i upravljanju. Ugljik je toliko nov i nedovoljno specificiran da ne mogu da dam nikakve značajne tehničke komentare,” rekao je izumitelj C++ Bjarne Stroustrup u e-poruci.

Iako je Carbon započeo kao interni Googleov projekat, razvojni tim na kraju želi smanjiti doprinose Googlea ili bilo koje druge pojedinačne kompanije na manje od 50% do kraja godine. U konačnici, projekat žele predati nezavisnoj softverskoj fondaciji, gdje će njegov razvoj obavljati volonteri.

Konačno ako ste zainteresirani da saznate više o tome trebali biste znati da se razvoj projekta distribuira pod licencom Apache 2.0 i možete ih konsultovati Na sledećem linku.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.