V prizadevanju, da bi nadomestili častitljivi, a počasni C++, so Googlovi raziskovalci uvedli popolnoma nov "eksperimentalni" odprtokodni programski jezik, imenovan Carbon.
Carbon bi lahko služil kot naslednik jezika C++, ki razvijalcem ponuja preprosto izhodišče za novejši jezik, ki obravnava sodobne razvojne koncepte, kot sta varnost pomnilnika in generika.
To bi bilo podobno temu, kako je Microsoft zgradil Typescript za posodobitev JavaScripta in Kotlin za krepitev slabosti v Javi.
Google je skozi leta razvil številne programske jezike, od katerih so nekateri pridobili velik sloves in pomembnost.
Na primer, Golang (ali samo Go) je bil razvit za olajšanje ustvarjanja strežnikov in porazdeljenih sistemov, nato pa ga je sprejela širša javnost.
Puščica programski jezik, ki je bil ustvarjen kot nadomestek za JavaScript, ni postal dobro znan do lansiranja Flutterja.
Chandler Carruth, uslužbenec Googla, je 19. julija 2022 na konvenciji Cpp North v Torontu predstavil svojo idejo za nov programski jezik, imenovan Carbon, po besedah Conorja Hoekstre, ki se je udeležila in posnela diapozitive.
Da bi določil scenarij, je Carruth pokazal, kako je več najbolj priljubljenih programskih jezikov današnjega časa imelo potomce, ki razvijalcem omogočajo hitro produktivnost in imajo tudi koristi od sodobne jezikovne zasnove.
Začnimo s splošno predstavitvijo programskega jezika Carbon, vključno z njegovimi značilnostmi, namenom Googlovega izuma in še več.
Uvod v programski jezik Carbon
19. julija 2022 je Google razkril Carbon kot najnovejši programski jezik, ki ga je ustvaril. Namenjen je bil poskusni zamenjavi C++.
Zahvaljujoč a generični sistem, ki odpravlja potrebo po dvojnem preverjanju kode za vsako instanciacijo, bo Carbon zgrajen na temeljih sodobnih konceptov programiranja.
Do konca leta načrtuje oblikovanje osnovne operativne različice (verzija 0.1).
Celovitost pomnilnika je ključni element, ki C++ manjka. Eden od glavnih virov varnostnih napak so težave z dostopom do pomnilnika.
Razvoj dinamičnih preverjanj meja, boljše sledenje neinicializiranim stanjem in temeljit privzeti način gradnje za odpravljanje napak so vsi cilji ekipe Carbon. Ustvarjalci nameravajo sčasoma ustvariti varno podnabor Carbon.
Vendar pa je naslednjih nekaj ključnih značilnosti novega programskega jezika:
- Za poimenovanje tipov uporabite izraze.
- Močna generična zdravila s pregledi definicij
- Vrste posebej izvajajo vmesnike
- uvodni stavki in osnovna slovnica
- Kazalci omogočajo neomejen dostop in mutacijo.
- Vrednosti za vhodne parametre funkcije so samo za branje.
- Korenski imenski prostor je paket.
- API-je je mogoče uvoziti z uporabo njihovih imen paketov.
- Metoda je deklarirana prek eksplicitnega parametra objekta.
- Razredi so privzeto končni; dedovanje je samo eno
Lastnosti ogljika
Moderno in v razvoju
- Nadgradnje med različicami Carbon so preproste in temeljijo na orodju.
- Močna jezikovna podlaga, še posebej, če ste uporabljali C++, in preprosta za učenje
- Varnejši temelji in pristop korak za korakom do podnabora, varnega za pomnilnik
Pozdravljamo odprtokodno skupnost
- Skupnost, ki si prizadeva biti topla, sprejemljiva in vabljiva
- Njegovi cilji in prednostne naloge so jasno in močno upravljanje
- Strategija vse v enem s prevajalnikom, knjižnicami, dokumentacijo, orodji, upravljanjem paketov in še več
Hitro in združljivo s C++
- Delajte skupaj z Koda C ++ že imate, vključno z dedovanjem in predlogami
- Z LLVM zmogljivost, primerljiva s C++, in nizkonivojski dostop do bitov in naslovov
- Zgradbe, ki so hitre in razširljive ter združljive z vašimi obstoječimi sistemi gradnje C++
Zakaj je Google zgradil programski jezik Carbon?
Zmogljivostno kritična programska oprema je še naprej večinoma napisana v C++, ki ima ogromne in razširljive kodne baze in naložbe.
Vendar pa ima težave z napredovanjem in izpolnjevanjem zahtev razvijalcev, kot je omenjeno zgoraj, predvsem zaradi kopičenja večletnega tehnološkega dolga.
Izjemno težko je postopno izboljšati C++ zaradi tehničnega dolga, ki si ga je nabral, pa tudi zaradi težav z njegovim razvojnim procesom.
Idealen pristop k reševanju teh težav je začeti z močno jezikovno osnovo, kot je sodoben generični sistem, modularna struktura kode in dosledna, preprosta sintaksa, namesto neposrednega podedovanja tradicije C ali C++.
Go, Swift, Kotlin, Rust in številni drugi sodobni jeziki že ponujajo izjemno razvojno izkušnjo. Razvijalci, ki znajo uporabljati enega od teh trenutnih jezikov, bi morali.
Na žalost sta zasnova teh jezikov močno ovirana sprejetje in prehod iz C++. Te ovire vključujejo stroške delovanja in spremembe idiomatske zasnove programske opreme.
Carbon ni poskus postopnega izboljšanja C++; prej je naslednika jezikovne strategije. Njegov poudarek je na interoperabilnosti C++, pa tudi na široki sprejemljivosti in migraciji za razvijalce in kodne baze, ki trenutno uporabljajo C++.
Nadomestni jezik C++ mora imeti:
- Zmogljivost, primerljiva s C++, je ključna lastnost razvijalcev.
- Obvladljiva krivulja učenja in raven poznavanja za programerje C++
- Selitev, ki je razširljiva in vključuje nekaj prevodov idiomatske kode C++ od vira do vira.
- Podobna izraznost in podpora za arhitekturo in oblikovanje trenutne programske opreme.
- Interoperabilnost s C++, ki je brezhibna in dvosmerna, kar kateri koli knjižnici omogoča, da sprejme Carbon, ne da bi bilo treba prenesti preostali del sklada.
S to strategijo Google prispeva k ekosistemu, ki že obstaja za C++, in vključuje trenutne naložbe, kodne baze in razvojne skupnosti.
Nekaj jezikov je sprejelo ta pristop za različne ekosisteme in Carbon poskuša igrati podobno funkcijo kot C++ v teh situacijah:
- Java – Kotlin
- JavaScript – TypeScript
- C++ – Carbon
C++ VS Carbon Code
Carbon bi moral imeti nizko krivuljo učenja, če že razvijate C++. Sestavljen je iz določenega nabora slovničnih konstrukcij, ki bi morale zveneti naravno ter biti preproste za branje in razumevanje.
Primer kode C++:
Ta koda Carbon ustreza:
Ogljik proti rji
Drug sodoben jezik, ki je izrecno zasnovan za izpolnjevanje zahtev pomnilniško varnih aplikacij, se imenuje Rust.
Zakaj torej preprosto ne bi uporabili Rusta?
Medtem ko nekateri trdijo, da je Rust, ki se je začel kot Mozillin projekt in je pozneje zrasel v precejšnjo javnost, naslednik C++, Carruth dvomi, da je vzporednica še vedno veljavna.
Rust je nedvomno fantastičen jezik, s katerim lahko začnete nov projekt, a ker nima "dvosmerne interoperabilnosti" jezikov, kot sta Java in Kotlin, je postopen prehod nanj izziv.
Carruth je imel predavanje na CPP North in spodbudil ljudi, ki že uporabljajo Rust, naj to počnejo še naprej. Razvijalci, ki že imajo obsežne kodne baze C++, ki jih je težko pretvoriti v Rust, naj uporabljajo Carbon.
Zlasti Carbon je tisto, kar je Carruth označil kot "jezik naslednik", ki je zgrajen na vrhu obstoječega ekosistema, v tem primeru C++.
V ta namen naj bi bil Carbon popolnoma združljiv s trenutno kodo C++, tudi če ima veliko ciljev z Rust, kot je pomoč programerjem pri ustvarjanju "aplikacij, ki so kritične za zmogljivost."
Poleg tega je namenjen čim preprostejšemu prehodu s C++ na Carbon.
zaključek
Nazadnje so se ustvarjalci jezika Carbon potrudili posvetiti pozornost procesu ustvarjanja. Koda projekta je na voljo za zahtevo in odprto shranjena na GitHub, njegova kultura pa je opredeljena kot vključujoča in odprta tako za zasebne državljane kot za IT sektor.
Ekipa Carbon je menila, da mora biti Carbon avtonomen projekt, ki ga vodi skupnost, in ne le projekt, ki ga spodbuja Google, da bi se razvijal v prihodnosti.
Caruth je dodal, da je kljub zanimanju številnih IT podjetij ta koncept še vedno v poskusni fazi.
Pustite Odgovori