I et forsøg på at erstatte det ærværdige, men træge C++, har Google-forskere introduceret et helt nyt "eksperimentelt" open source-programmeringssprog kaldet Carbon.
Carbon kunne tjene som et efterfølgersprog til C++, et der giver udviklere et simpelt udgangspunkt for et nyere sprog, der adresserer moderne udviklingskoncepter som hukommelsessikkerhed og generiske stoffer.
Dette ville ligne, hvordan Microsoft byggede Typescript for at opdatere JavaScript og Kotlin for at styrke svagheder i Java.
Google har udviklet en række programmeringssprog gennem årene, hvoraf nogle har opnået betydelig berømmelse og fremtræden.
For eksempel blev Golang (eller bare Go) udviklet for at lette oprettelsen af servere og distribuerede systemer og er efterfølgende blevet omfavnet af den brede offentlighed.
Dart programmeringssprog, som blev oprettet som en JavaScript-erstatning, blev ikke kendt før lanceringen af Flutter.
Chandler Carruth, en Google-medarbejder, præsenterede sin idé til et nyt programmeringssprog kaldet Carbon den 19. juli 2022 ved Cpp North-kongressen i Toronto, ifølge Conor Hoekstra, der deltog og optog slides.
For at sætte scenariet demonstrerede Carruth, hvordan flere af nutidens mest vellidte programmeringssprog havde efterkommere, der gør det muligt for udviklere hurtigt at være produktive og også drage fordel af moderne sprogdesign.
Lad os starte med en generel introduktion af programmeringssproget Carbon, inklusive dets funktioner, formålet med Googles opfindelse af det og mere.
Introduktion til Carbon-programmeringssprog
Den 19. juli 2022 afslørede Google Carbon som det nyeste programmeringssprog, det havde skabt. Det var beregnet til at erstatte C++ eksperimentelt.
Takket være a generisk system, som eliminerer behovet for at dobbelttjekke koden for hver instansiering, vil Carbon blive bygget på et fundament af moderne programmeringskoncepter.
Ved udgangen af året planlægger designet at levere en grundlæggende operationel version (version 0.1).
Hukommelsesintegritet er et afgørende element, som C++ mangler. En af de primære kilder til sikkerhedsfejl er problemer med hukommelsesadgang.
Udviklingen af dynamiske grænsekontrol, større sporing af ikke-initialiserede tilstande og en grundig standardfejlfindingstilstand er alle mål for Carbon-teamet. Skaberne har til hensigt at skabe et sikkert Carbon-undersæt over tid.
Men følgende er nogle afgørende karakteristika ved det nye programmeringssprog:
- Brug udtryk for at navngive typer.
- Stærke generika med definitionstjek
- Typer udfører specifikt grænseflader
- introduktionssætninger og grundlæggende grammatik
- Pointere giver mulighed for ubegrænset adgang og mutation.
- Værdier for funktionsinputparametre er skrivebeskyttet.
- Rodnavnerummet er pakken.
- API'er kan importeres ved hjælp af deres pakkenavne.
- En metode erklæres via en eksplicit objektparameter.
- Klasser er endelige som standard; der er kun én arv
Karbons egenskaber
Moderne og udviklende
- Opgraderinger mellem Carbon-versioner er enkle og værktøjsbaserede.
- Stærk sproglig underbygning, især hvis du har brugt C++, og nem at lære
- Sikrere fundamenter og en trin-for-trin tilgang til en hukommelsessikker undergruppe
Byder velkommen til fællesskabet af open source
- Et fællesskab, der stræber efter at være varmt, accepterende og indbydende
- Dens mål og prioriteter er tydelig og stærk styring
- En alt-i-én-strategi med en compiler, biblioteker, dokumentation, værktøjer, pakkehåndtering og mere
Hurtig og kompatibel med C++
- Arbejd sammen med C ++ kode du allerede har, herunder arv og skabeloner
- Med LLVM, ydeevne sammenlignelig med C++ og lav-niveau adgang til bits og adresser
- Byg, der er hurtige og skalerbare og kompatible med dine eksisterende C++ byggesystemer
Hvorfor byggede Google programmeringssproget Carbon?
Ydeevnekritisk software er fortsat for det meste skrevet i C++, som har enorme og ekspanderende kodebaser og investeringer.
Det har dog problemer med at komme videre og opfylde kravene fra udviklere som nævnt ovenfor, hovedsageligt på grund af opbygning af mange års teknologisk gæld.
Det er ekstremt vanskeligt gradvist at forbedre C++ på grund af den tekniske gæld, det har påløbet, samt vanskeligheder med dets udviklingsproces.
Den ideelle tilgang til at løse disse problemer er at starte med et stærkt sprogfundament, såsom et moderne generisk system, modulær kodestruktur og konsistent, ligetil syntaks, snarere end direkte at nedarve traditionen med C eller C++.
Go, Swift, Kotlin, Rust og mange flere andre moderne sprog tilbyder allerede en enestående udviklingsoplevelse. Det burde udviklere, der er i stand til at bruge et af disse nuværende sprog.
Desværre er adoption og migrering fra C++ alvorligt hæmmet af disse sprogs design. Disse forhindringer omfatter ydeevneoverhead og ændringer af softwarens idiomatiske design.
Kulstof er ikke et forsøg på gradvist at forbedre C++; snarere er det en efterfølgende sprogstrategi. Dets fokus er på C++-interoperabilitet, samt udbredt accept og migrering for udviklere og kodebaser, der i øjeblikket bruger C++.
Et C++-erstatningssprog skal have:
- Ydeevne sammenlignelig med C++ er en afgørende egenskab for udviklere.
- En overskuelig læringskurve og kendskabsniveau for C++ programmører
- Migration, der er skalerbar og inkluderer en vis kilde-til-kilde idiomatisk C++-kodeoversættelse.
- Lignende udtryksevne og støtte til arkitektur og design af aktuel software.
- Interoperabilitet med C++, der er problemfri og tovejsbestemt, hvilket gør det muligt for ethvert bibliotek at adoptere Carbon uden at skulle portere resten af stakken.
Med denne strategi tilføjer Google det økosystem, der allerede eksisterer for C++, og inkorporerer nuværende investeringer, kodebaser og udviklingsfællesskaber.
Nogle få sprog har taget denne tilgang til forskellige økosystemer, og Carbon søger at spille en lignende funktion som C++ i disse situationer:
- Java – Kotlin
- JavaScript – TypeScript
- C++ – Kulstof
C++ VS Carbon-kode
Carbon bør have en lav indlæringskurve, hvis du allerede er en C++-udvikler. Den er sammensat af et fast sæt grammatiske konstruktioner, der skal lyde naturlige og være nemme at læse og forstå.
Et eksempel på C++ kode:
Denne kulstofkode svarer til:
Kulstof vs rust
Et andet moderne sprog, der udtrykkeligt er designet til at opfylde kravene til hukommelsessikre ydeevneapplikationer, kaldes Rust.
Så hvorfor ikke bare bruge Rust?
Mens nogle hævder, at Rust, der startede som et Mozilla-projekt og efterfølgende er vokset til at have en betydelig offentlig tilslutning, er en efterfølger til C++, tvivler Carruth på, om parallellen stadig er gyldig.
Rust er utvivlsomt et fantastisk sprog at starte et nyt projekt med, men da det mangler "tovejs interoperabilitet" af sprog som Java & Kotlin, er det udfordrende at gå over til det gradvist.
Carruth holdt et foredrag på CPP North og opfordrede folk, der allerede brugte Rust, til at blive ved med at gøre det. Udviklere, der allerede har betydelige C++-kodebaser, der er udfordrende at konvertere til Rust, bør bruge Carbon.
Carbon er især, hvad Carruth omtalte som et "efterfølgersprog", som er konstrueret oven på et eksisterende økosystem, i dette tilfælde C++.
Til det formål er Carbon beregnet til at være fuldstændig kompatibel med den nuværende C++-kode, selvom den har mange formål med Rust, såsom at hjælpe programmører med at skabe "ydelseskritiske applikationer."
Derudover er det meningen at flytte fra C++ til Carbon så enkelt som muligt.
Konklusion
Endelig gjorde Carbon-sprogskabere en indsats for at være opmærksomme på skabelsesprocessen. Projektets kode er tilgængelig for anmodning og gemt åbent på Github, og dens kultur er defineret som rummelig og åben for både private borgere og it-sektoren.
Carbon-teamet mente, at Carbon skulle være et selvstændigt projekt drevet af fællesskabet og ikke kun et projekt drevet af Google for at udvikle sig i fremtiden.
Caruth tilføjede, at på trods af interesse fra en række it-virksomheder, er dette koncept stadig i den eksperimentelle fase.
Giv en kommentar