V snahe nahradiť úctyhodný, ale pomalý C++ výskumníci spoločnosti Google predstavili úplne nový „experimentálny“ programovací jazyk s otvoreným zdrojom s názvom Carbon.
Carbon by mohol slúžiť ako nástupnícky jazyk C++, ktorý poskytuje vývojárom jednoduchý východiskový bod pre novší jazyk, ktorý rieši súčasné vývojové koncepty, ako je bezpečnosť pamäte a generika.
Bolo by to podobné tomu, ako Microsoft vytvoril Typescript na aktualizáciu JavaScriptu a Kotlin na posilnenie slabín v Jave.
Spoločnosť Google v priebehu rokov vyvinula množstvo programovacích jazykov, z ktorých niektoré si získali významnú známosť a význam.
Napríklad Golang (alebo len Go) bol vyvinutý na uľahčenie vytvárania serverov a distribuovaných systémov a následne ho prijala široká verejnosť.
Šípka programovací jazyk, ktorý bol vytvorený ako náhrada JavaScriptu, sa stal známym až po spustení aplikácie Flutter.
Chandler Carruth, zamestnanec spoločnosti Google, predstavil svoj nápad na nový programovací jazyk s názvom Carbon 19. júla 2022 na zjazde Cpp North v Toronte, podľa Conora Hoekstru, ktorí sa zúčastnili a nahrali snímky.
Aby sa nastavil scenár, Carruth demonštroval, ako niekoľko z najpopulárnejších programovacích jazykov súčasnosti má potomkov, ktorí umožňujú vývojárom rýchlo byť produktívni a tiež ťažiť zo súčasného jazykového dizajnu.
Začnime všeobecným predstavením programovacieho jazyka Carbon, vrátane jeho funkcií, účelu jeho vynálezu spoločnosťou Google a ďalších.
Úvod do programovacieho jazyka Carbon
19. júla 2022 Google odhalil Carbon ako najnovší programovací jazyk, ktorý vytvoril. Jeho cieľom bolo experimentálne nahradiť C++.
Vďaka a generický systém, čo eliminuje potrebu dvojitej kontroly kódu pre každú inštanciu, bude Carbon postavený na základe moderných programovacích konceptov.
Do konca roka plánuje dizajn poskytnúť základnú prevádzkovú verziu (verzia 0.1).
Integrita pamäte je kľúčovým prvkom, ktorý C++ chýba. Jedným z hlavných zdrojov bezpečnostných chýb sú problémy s prístupom do pamäte.
Vývoj dynamických kontrol hraníc, lepšie sledovanie neinicializovaných stavov a dôkladný predvolený režim vytvárania ladenia sú všetky ciele tímu Carbon. Tvorcovia majú v úmysle časom vytvoriť bezpečnú podskupinu Carbon.
Nasledujú však niektoré kľúčové charakteristiky nového programovacieho jazyka:
- Na pomenovanie typov použite výrazy.
- Silné generiká s kontrolou definície
- Typy špecificky vykonávajú rozhrania
- úvodné frázy a základná gramatika
- Ukazovatele umožňujú neobmedzený prístup a mutáciu.
- Hodnoty vstupných parametrov funkcií sú len na čítanie.
- Koreňový menný priestor je balík.
- Rozhrania API je možné importovať pomocou ich názvov balíkov.
- Metóda je deklarovaná prostredníctvom explicitného parametra objektu.
- Triedy sú štandardne konečné; existuje len jedno dedičstvo
Vlastnosti uhlíka
Moderné a rozvíjajúce sa
- Upgrady medzi verziami Carbon sú jednoduché a založené na nástrojoch.
- Silné jazykové základy, najmä ak ste používali C++, a jednoduché na učenie
- Bezpečnejšie základy a postupný prístup k podmnožine bezpečnej pamäte
Vítame komunitu open source
- Komunita, ktorá sa snaží byť vrúcna, akceptujúca a pozývajúca
- Jeho ciele a priority sú odlišné a silné riadenie
- Stratégia typu všetko v jednom s kompilátorom, knižnicami, dokumentáciou, nástrojmi, správou balíkov a ďalšími
Rýchle a kompatibilné s C++
- Pracujte spolu s C ++ kód už máte, vrátane dedičstva a šablón
- S LLVM výkon porovnateľný s C++ a nízkoúrovňový prístup k bitom a adresám
- Zostavy, ktoré sú rýchle a škálovateľné a kompatibilné s vašimi existujúcimi zostavovacími systémami C++
Prečo Google vytvoril programovací jazyk Carbon?
Softvér kritický z hľadiska výkonu sa naďalej väčšinou píše v jazyku C++, ktorý má obrovské a rozširujúce sa kódové základne a investície.
Má však problémy napredovať a plniť požiadavky vývojárov, ako je uvedené vyššie, najmä kvôli hromadeniu dlhoročného technologického dlhu.
Je mimoriadne ťažké postupne zlepšovať C++ kvôli technickému dlhu, ktorý nahromadil, ako aj ťažkostiam s procesom jeho vývoja.
Ideálnym prístupom k riešeniu týchto problémov je začať so silným jazykovým základom, ako je súčasný generický systém, modulárna štruktúra kódu a konzistentná, priama syntax, namiesto priameho dedenia tradície C alebo C++.
Go, Swift, Kotlin, Rust a mnohé ďalšie súčasné jazyky už ponúkajú vynikajúce skúsenosti s vývojom. Vývojári, ktorí sú schopní používať jeden z týchto súčasných jazykov, by mali.
Žiaľ, adopcia a migrácia z C++ sú výrazne brzdené dizajnom týchto jazykov. Tieto prekážky zahŕňajú réžiu výkonu a úpravy idiomatického dizajnu softvéru.
Carbon nie je pokus o postupné zlepšovanie C++; ide skôr o nástupnícku jazykovú stratégiu. Zameriava sa na interoperabilitu C++, ako aj na rozšírené prijatie a migráciu pre vývojárov a kódové základne, ktoré v súčasnosti používajú C++.
Náhradný jazyk C++ musí mať:
- Výkon porovnateľný s C++ je pre vývojárov kľúčovou charakteristikou.
- Zvládnuteľná krivka učenia a úroveň znalosti pre programátorov C++
- Migrácia, ktorá je škálovateľná a zahŕňa určitý preklad idiomatického kódu C++ zo zdroja do zdroja.
- Podobná výraznosť a podpora architektúry a dizajnu súčasného softvéru.
- Interoperabilita s C++, ktorá je bezproblémová a obojsmerná, umožňuje akejkoľvek knižnici osvojiť si Carbon bez nutnosti portovať zvyšok zásobníka.
Touto stratégiou Google pridáva do ekosystému, ktorý už existuje pre C++, a zahŕňa súčasné investície, kódové základne a vývojové komunity.
Niekoľko jazykov prijalo tento prístup pre rôzne ekosystémy a Carbon sa snaží hrať podobnú funkciu ako C++ v týchto situáciách:
- Java – Kotlin
- JavaScript – TypeScript
- C++ – uhlík
C++ VS uhlíkový kód
Carbon by mal mať nízku krivku učenia, ak ste už vývojár v C++. Skladá sa z pevného súboru gramatických konštrukcií, ktoré by mali pôsobiť prirodzene a byť ľahko čitateľné a pochopiteľné.
Príklad kódu C++:
Tento uhlíkový kód zodpovedá:
Karbón vs hrdza
Ďalší súčasný jazyk navrhnutý výslovne na splnenie požiadaviek pamäťovo bezpečných aplikácií sa nazýva Rust.
Tak prečo jednoducho nepoužiť Rust?
Zatiaľ čo niektorí argumentujú, že Rust, ktorý začal ako projekt Mozilly a následne sa rozrástol na početnú verejnosť, je nástupcom C++, Carruth pochybuje, či táto paralela stále platí.
Rust je nepochybne fantastický jazyk, s ktorým možno začať nový projekt, ale keďže mu chýba „obojsmerná interoperabilita“ jazykov ako Java a Kotlin, je náročné naň postupne prejsť.
Carruth mal prednášku na CPP North a povzbudil ľudí, ktorí už Rust používali, aby v tom pokračovali. Vývojári, ktorí už majú rozsiahle kódové základne C++, ktoré je náročné previesť na Rust, by mali používať Carbon.
Najmä Carbon je to, čo Carruth označil ako „nástupnícky jazyk“, ktorý je vytvorený na vrchole existujúceho ekosystému, v tomto prípade C++.
Na tento účel má byť Carbon úplne kompatibilný so súčasným kódom C++, aj keď má s Rustom veľa cieľov, ako napríklad pomáhať programátorom pri vytváraní „aplikácií kritických pre výkon“.
Navyše je určený na čo najjednoduchší prechod z C++ na Carbon.
záver
Nakoniec sa tvorcovia jazyka Carbon snažili venovať pozornosť procesu tvorby. Kód projektu je k dispozícii na vyžiadanie a je voľne uložený GitHub, a jej kultúra je definovaná ako inkluzívna a otvorená pre súkromných občanov aj pre IT sektor.
Tím Carbon si myslel, že Carbon musí byť autonómny projekt riadený komunitou a nielen projekt podporovaný spoločnosťou Google, aby sa mohol v budúcnosti rozvíjať.
Caruth dodal, že napriek záujmu zo strany viacerých IT firiem je tento koncept stále v experimentálnej fáze.
Nechaj odpoveď