I et forsøk på å erstatte det ærverdige, men trege C++, har Google-forskere introdusert et helt nytt «eksperimentelt» programmeringsspråk med åpen kildekode kalt Carbon.
Carbon kan tjene som et etterfølgerspråk til C++, et som gir et enkelt utgangspunkt for utviklere til et nyere språk som tar for seg moderne utviklingskonsepter som minnesikkerhet og generiske stoffer.
Dette vil ligne på hvordan Microsoft bygde Typescript for å oppdatere JavaScript og Kotlin for å styrke svakhetene i Java.
Google har utviklet en rekke programmeringsspråk gjennom årene, hvorav noen har fått betydelig beryktethet og fremtredende plass.
For eksempel ble Golang (eller bare Go) utviklet for å lette opprettelsen av servere og distribuerte systemer og har senere blitt omfavnet av allmennheten.
Dart programmeringsspråk, som ble opprettet som en JavaScript-erstatning, ble ikke kjent før lanseringen av Flutter.
Chandler Carruth, en Google-ansatt, presenterte ideen sin for et nytt programmeringsspråk kalt Carbon 19. juli 2022 på Cpp North-konferansen i Toronto, ifølge Conor Hoekstra, som deltok og tok opp lysbildene.
For å sette scenariet demonstrerte Carruth hvordan flere av de mest populære programmeringsspråkene i dag hadde etterkommere som gjør det mulig for utviklere å raskt være produktive og også dra nytte av moderne språkdesign.
La oss starte med en generell introduksjon av programmeringsspråket Carbon, inkludert dets funksjoner, formålet med Googles oppfinnelse av det og mer.
Introduksjon til karbonprogrammeringsspråk
19. juli 2022 avslørte Google Carbon som det nyeste programmeringsspråket det hadde laget. Det var ment å erstatte C++ eksperimentelt.
Takket være a generisk system, som eliminerer behovet for å dobbeltsjekke koden for hver instansiasjon, vil Carbon bli bygget på et grunnlag av moderne programmeringskonsepter.
Ved utgangen av året planlegger designet å gi en grunnleggende operativ versjon (versjon 0.1).
Minneintegritet er et avgjørende element som C++ mangler. En av de primære kildene til sikkerhetsfeil er problemer med minnetilgang.
Utviklingen av dynamiske grensekontroller, bedre sporing av uinitialiserte tilstander og en grundig standard debug build-modus er alle mål for Carbon-teamet. Skaperne har til hensikt å lage et sikkert Carbon-undersett over tid.
Følgende er imidlertid noen avgjørende kjennetegn ved det nye programmeringsspråket:
- For å navngi typer, bruk uttrykk.
- Sterke generiske med definisjonssjekker
- Typer utfører spesifikt grensesnitt
- introduksjonsfraser og grunnleggende grammatikk
- Pekere tillater ubegrenset tilgang og mutasjon.
- Verdier for funksjonsinndataparametere er skrivebeskyttet.
- Rotnavneområdet er pakken.
- API-er kan importeres ved å bruke pakkenavnene deres.
- En metode er deklarert via en eksplisitt objektparameter.
- Klassene er endelige som standard; det er bare én arv
Karbons egenskaper
Moderne og utviklende
- Oppgraderinger mellom Carbon-versjoner er enkle og verktøybaserte.
- Sterkt språklig fundament, spesielt hvis du har brukt C++, og enkelt å lære
- Sikrere grunnlag og en trinnvis tilnærming til en minnesikker undergruppe
Velkommen til fellesskapet av åpen kildekode
- Et fellesskap som streber etter å være varmt, aksepterende og innbydende
- Dens mål og prioriteringer er tydelig og sterk styring
- En alt-i-ett-strategi med kompilator, biblioteker, dokumentasjon, verktøy, pakkehåndtering og mer
Rask og kompatibel med C++
- Arbeid sammen med C ++ - kode du allerede har, inkludert arv og maler
- Med LLVM, ytelse som kan sammenlignes med C++ og tilgang på lavt nivå til biter og adresser
- Bygg som er raske og skalerbare og kompatible med dine eksisterende C++ byggesystemer
Hvorfor bygde Google programmeringsspråket Carbon?
Ytelseskritisk programvare er fortsatt stort sett skrevet i C++, som har enorme og ekspanderende kodebaser og investeringer.
Den har imidlertid problemer med å gå videre og møte kravene til utviklere som nevnt ovenfor, hovedsakelig på grunn av å samle årevis med teknologisk gjeld.
Det er ekstremt vanskelig å gradvis forbedre C++ på grunn av den tekniske gjelden den har påløpt, samt vanskeligheter med utviklingsprosessen.
Den ideelle tilnærmingen til å løse disse problemene er å starte med et sterkt språkfundament, for eksempel et moderne generisk system, modulær kodestruktur og konsistent, enkel syntaks, i stedet for å direkte arve tradisjonen til C eller C++.
Go, Swift, Kotlin, Rust og mange flere andre moderne språk tilbyr allerede en enestående utviklingsopplevelse. Utviklere som er i stand til å bruke et av disse nåværende språkene bør gjøre det.
Dessverre er adopsjon og migrering fra C++ sterkt hemmet av utformingen av disse språkene. Disse hindringene inkluderer ytelsesoverhead og modifikasjoner av programvarens idiomatiske design.
Karbon er ikke et forsøk på å gradvis forbedre C++; snarere er det en etterfølger språkstrategi. Fokuset er på C++ interoperabilitet, samt utbredt aksept og migrering for utviklere og kodebaser som for tiden bruker C++.
Et C++-erstatningsspråk må ha:
- Ytelse som kan sammenlignes med C++ er en avgjørende egenskap for utviklere.
- En håndterbar læringskurve og kjennskapsnivå for C++-programmerere
- Migrering som er skalerbar og inkluderer noen kilde-til-kilde idiomatisk C++-kodeoversettelse.
- Lignende uttrykksevne og støtte for arkitektur og design av gjeldende programvare.
- Interoperabilitet med C++ som er sømløs og toveis, slik at ethvert bibliotek kan ta i bruk Carbon uten å måtte portere resten av stabelen.
Med denne strategien legger Google til økosystemet som allerede eksisterer for C++ og inkluderer nåværende investeringer, kodebaser og utviklingsfellesskap.
Noen få språk har tatt i bruk denne tilnærmingen for ulike økosystemer, og Carbon søker å spille en lignende funksjon som C++ i disse situasjonene:
- Java – Kotlin
- JavaScript – TypeScript
- C++ – Karbon
C++ VS Carbon Code
Carbon bør ha en lav læringskurve hvis du allerede er en C++-utvikler. Den er satt sammen av et fast sett med grammatiske konstruksjoner som skal høres naturlig ut og være enkelt å lese og forstå.
Et eksempel på C++-kode:
Denne karbonkoden tilsvarer:
Karbon vs rust
Et annet moderne språk som er utformet for å oppfylle kravene til minnesikre ytelsesapplikasjoner, kalles Rust.
Så hvorfor ikke bare bruke Rust?
Mens noen hevder at Rust, som begynte som et Mozilla-prosjekt og senere har vokst til å ha en betydelig offentlig tilhengerskare, er en etterfølger til C++, tviler Carruth på om parallellen fortsatt er gyldig.
Rust er utvilsomt et fantastisk språk å starte et nytt prosjekt med, men siden det mangler "toveis interoperabilitet" til språk som Java og Kotlin, er det utfordrende å gå over til det gradvis.
Carruth holdt et foredrag på CPP North og oppfordret folk som allerede brukte Rust til å fortsette å gjøre det. Utviklere som allerede har store C++-kodebaser som er utfordrende å konvertere til Rust bør bruke Carbon.
Spesielt Carbon er det Carruth refererte til som et "etterfølgerspråk", som er konstruert på toppen av et eksisterende økosystem, i dette tilfellet C++.
For det formålet er Carbon ment å være fullstendig kompatibel med gjeldende C++-kode, selv om den har mange mål med Rust, for eksempel å hjelpe programmerere med å lage "ytelseskritiske applikasjoner."
I tillegg er det ment å gjøre overgangen fra C++ til Carbon så enkel som mulig.
konklusjonen
Til slutt gjorde Carbon-språkskapere en innsats for å ta hensyn til opprettelsesprosessen. Prosjektets kode er tilgjengelig for forespørsel og lagret åpent på Github, og kulturen er definert som inkluderende og åpen for både private og IT-sektoren.
Carbon-teamet mente at Carbon måtte være et autonomt prosjekt drevet av fellesskapet og ikke bare et prosjekt drevet av Google for å utvikle seg i fremtiden.
Caruth la til at til tross for interesse fra en rekke IT-bedrifter, er dette konseptet fortsatt i det eksperimentelle stadiet.
Legg igjen en kommentar