Ve snaze nahradit úctyhodný, ale pomalý C++ představili výzkumníci Google zbrusu nový „experimentální“ programovací jazyk s otevřeným zdrojovým kódem nazvaný Carbon.
Carbon by mohl sloužit jako nástupnický jazyk C++, který poskytuje vývojářům jednoduchý výchozí bod pro novější jazyk, který řeší současné vývojové koncepty, jako je bezpečnost paměti a generika.
Bylo by to podobné tomu, jak Microsoft vytvořil Typescript pro aktualizaci JavaScriptu a Kotlin pro posílení slabin v Javě.
Google v průběhu let vyvinul řadu programovacích jazyků, z nichž některé si získaly značnou proslulost a výtečnost.
Například Golang (nebo jen Go) byl vyvinut pro usnadnění vytváření serverů a distribuovaných systémů a následně byl přijat širokou veřejností.
Šipka programovací jazyk, který byl vytvořen jako náhrada JavaScriptu, se stal známým až po spuštění Flutter.
Chandler Carruth, zaměstnanec společnosti Google, představil svůj nápad na nový programovací jazyk s názvem Carbon 19. července 2022 na sjezdu Cpp North v Torontu, podle Conora Hoekstra, kteří se zúčastnili a nahráli snímky.
Za účelem vytvoření scénáře Carruth demonstroval, jak několik z nejoblíbenějších programovacích jazyků současnosti má potomky, které umožňují vývojářům být rychle produktivní a také těžit ze současného jazykového designu.
Začněme obecným představením programovacího jazyka Carbon, včetně jeho funkcí, účelu jeho vynálezu Googlem a dalších.
Úvod do programovacího jazyka Carbon
19. července 2022 Google odhalil Carbon jako nejnovější programovací jazyk, který vytvořil. Jeho cílem bylo experimentálně nahradit C++.
Díky generický systém, což eliminuje potřebu dvojité kontroly kódu pro každou instanci, bude Carbon postaven na základě moderních programovacích konceptů.
Do konce roku plánuje design poskytnout základní provozní verzi (verze 0.1).
Integrita paměti je zásadním prvkem, který C++ chybí. Jedním z primárních zdrojů bezpečnostních chyb jsou problémy s přístupem do paměti.
Vývoj dynamických kontrol mezí, lepší sledování neinicializovaných stavů a důkladný výchozí režim ladění jsou všechny cíle týmu Carbon. Tvůrci mají v úmyslu časem vytvořit bezpečnou podmnožinu Carbon.
Nicméně, následující jsou některé zásadní vlastnosti nového programovacího jazyka:
- Chcete-li pojmenovat typy, použijte výrazy.
- Silná generika s kontrolami definic
- Typy specificky provádějí rozhraní
- úvodní fráze a základní gramatika
- Ukazatele umožňují neomezený přístup a mutaci.
- Hodnoty vstupních parametrů funkcí jsou pouze pro čtení.
- Kořenový jmenný prostor je balíček.
- Rozhraní API lze importovat pomocí jejich názvů balíčků.
- Metoda je deklarována prostřednictvím explicitního parametru objektu.
- Třídy jsou standardně konečné; existuje pouze jedno dědictví
Vlastnosti karbonu
Moderní a rozvíjející se
- Upgrady mezi verzemi Carbon jsou jednoduché a založené na nástrojích.
- Silné jazykové základy, zvláště pokud jste používali C++, a snadno se učí
- Bezpečnější základy a postupný přístup k podmnožině bezpečné paměti
Vítáme komunitu open source
- Komunita, která se snaží být vřelá, přijímající a zvoucí
- Jeho cíle a priority jsou odlišné a silné řízení
- Strategie vše v jednom s kompilátorem, knihovnami, dokumentací, nástroji, správou balíčků a dalšími
Rychlé a kompatibilní s C++
- Pracujte spolu s C ++ kód již máte, včetně dědictví a šablon
- S LLVM výkon srovnatelný s C++ a nízkoúrovňový přístup k bitům a adresám
- Sestavení, která jsou rychlá a škálovatelná a kompatibilní s vašimi stávajícími sestavovacími systémy C++
Proč Google vytvořil programovací jazyk Carbon?
Výkonově kritický software je i nadále většinou psán v C++, který má obrovské a rozšiřující se kódové základny a investice.
Má však problémy s postupem a plněním požadavků vývojářů, jak je uvedeno výše, především kvůli nahromadění letitého technologického dluhu.
Je nesmírně obtížné postupně zlepšovat C++ kvůli technickému dluhu, který nashromáždil, a také kvůli potížím s procesem jeho vývoje.
Ideálním přístupem k řešení těchto problémů je začít se silným jazykovým základem, jako je současný obecný systém, modulární struktura kódu a konzistentní, přímočará syntaxe, spíše než přímé zdědění tradice C nebo C++.
Go, Swift, Kotlin, Rust a mnoho dalších současných jazyků již nabízí vynikající vývojové zkušenosti. Vývojáři, kteří jsou schopni používat jeden z těchto současných jazyků, by měli.
Bohužel, adopce a migrace z C++ jsou silně brzděny návrhy těchto jazyků. Tyto překážky zahrnují režii výkonu a úpravy idiomatického designu softwaru.
Carbon není pokusem o postupné zlepšování C++; spíše je to nástupnická jazyková strategie. Zaměřuje se na interoperabilitu C++, stejně jako na široké přijetí a migraci pro vývojáře a kódové báze, které v současné době používají C++.
Náhradní jazyk C++ musí mít:
- Výkon srovnatelný s C++ je pro vývojáře zásadní charakteristikou.
- Zvládnutelná křivka učení a úroveň znalostí pro programátory C++
- Migrace, která je škálovatelná a zahrnuje některé idiomatické překlady kódu C++ ze zdroje do zdroje.
- Podobná expresivita a podpora architektury a designu současného softwaru.
- Interoperabilita s C++, která je bezproblémová a obousměrná, umožňuje jakékoli knihovně přijmout Carbon bez nutnosti portovat zbytek zásobníku.
Touto strategií Google přidává do ekosystému, který již pro C++ existuje, a zahrnuje současné investice, kódové základny a vývojové komunity.
Několik jazyků přijalo tento přístup pro různé ekosystémy a Carbon se snaží hrát podobnou funkci jako C++ v těchto situacích:
- Java - Kotlin
- JavaScript – TypeScript
- C++ – uhlík
C ++ vs. uhlíkový kód
Carbon by měl mít nízkou křivku učení, pokud jste již vývojář C++. Skládá se z pevného souboru gramatických konstrukcí, které by měly znít přirozeně a být snadno čitelné a srozumitelné.
Příklad kódu C++:
Tento uhlíkový kód odpovídá:
Karbon vs rez
Dalším současným jazykem navrženým výslovně pro splnění požadavků paměťově bezpečných aplikací se nazývá Rust.
Tak proč jednoduše nepoužít Rust?
Zatímco někteří tvrdí, že Rust, který začal jako projekt Mozilly a následně se rozrostl do značného počtu fanoušků, je nástupcem C++, Carruth pochybuje, zda tato paralela stále platí.
Rust je nepochybně fantastický jazyk, se kterým lze začít nový projekt, ale protože postrádá „obousměrnou interoperabilitu“ jazyků jako Java a Kotlin, je náročné na něj postupně přecházet.
Carruth měl přednášku na CPP North a povzbudil lidi, kteří již Rust používali, aby v tom pokračovali. Vývojáři, kteří již mají rozsáhlé kódové základny C++, které je obtížné převést na Rust, by měli používat Carbon.
Zejména Carbon je to, co Carruth označoval jako „nástupnický jazyk“, který je postaven nad existujícím ekosystémem, v tomto případě C++.
Za tímto účelem má být Carbon zcela kompatibilní se současným kódem C++, i když má s Rustem mnoho cílů, jako je pomoc programátorům při vytváření „výkonově kritických aplikací“.
Navíc má co nejvíce zjednodušit přechod z C++ na Carbon.
Proč investovat do čističky vzduchu?
Nakonec se tvůrci jazyka Carbon pokusili věnovat pozornost procesu tvorby. Kód projektu je k dispozici na vyžádání a je volně uložen na GitHub, a její kultura je definována jako inkluzivní a otevřená jak soukromým občanům, tak IT sektoru.
Tým Carbon si myslel, že Carbon musí být autonomním projektem řízeným komunitou a ne pouze projektem poháněným Googlem, aby se mohl v budoucnu rozvíjet.
Caruth dodal, že navzdory zájmu řady IT firem je tento koncept stále ve fázi experimentu.
Napsat komentář