A tiszteletreméltó, de lomha C++ leváltására törekedve a Google kutatói egy vadonatúj „kísérleti” nyílt forráskódú programozási nyelvet vezettek be, a Carbon névre keresztelt.
A Carbon a C++ utódnyelveként szolgálhat, amely egyszerű kiindulási alapot biztosít a fejlesztőknek egy újabb nyelvhez, amely olyan kortárs fejlesztési koncepciókkal foglalkozik, mint a memóriabiztonság és az általánosságok.
Ez hasonló lenne ahhoz, ahogy a Microsoft a Typescriptet a JavaScript frissítésére, a Kotlin-t pedig a Java gyenge pontjainak erősítésére építette.
A Google az évek során számos programozási nyelvet fejlesztett ki, amelyek közül néhány jelentős ismertségre és előtérbe került.
Például a Golang-ot (vagy csak a Go-t) szerverek és elosztott rendszerek létrehozásának megkönnyítésére fejlesztették ki, és ezt követően a nagyközönség is felkarolta.
A Dart programozási nyelv, amely JavaScript-helyettesítőként készült, csak a Flutter megjelenéséig vált ismertté.
Chandler Carruth, a Google egyik alkalmazottja 19. július 2022-én a torontói Cpp North kongresszuson bemutatta ötletét a Carbon nevű új programozási nyelvre vonatkozóan. Conor Hoekstra szerint, aki részt vett és rögzítette a diákat.
A forgatókönyv felállítása érdekében Carruth bemutatta, hogy napjaink legkedveltebb programozási nyelveinek utódai voltak, amelyek lehetővé teszik a fejlesztők számára, hogy gyorsan termelékenyek legyenek, és részesüljenek a kortárs nyelvi tervezésből.
Kezdjük a Carbon programozási nyelv általános bemutatásával, beleértve annak jellemzőit, a Google feltalálásának célját és még sok mást.
Bevezetés a Carbon programozási nyelvbe
19. július 2022-én a Google bemutatta a Carbont, mint az általa létrehozott legújabb programozási nyelvet. Kísérletileg a C++ helyettesítésére szánták.
Köszönhetően a generikus rendszer, ami szükségtelenné teszi a kód kétszeri ellenőrzését minden példányosításnál, a Carbon a modern programozási koncepciók alapján épül fel.
Az év végére a tervezés egy alapszintű működési verziót (0.1-es verziót) tervez.
A memória integritása olyan döntő elem, amely hiányzik a C++-ból. A biztonsági hibák egyik elsődleges forrása a memória-hozzáférési problémák.
A Carbon csapat célja a dinamikus határellenőrzések fejlesztése, az inicializálatlan állapotok nagyobb nyomon követése és az alapos alapértelmezett hibakeresési építési mód. Az alkotók egy biztonságos szén-dioxid-alkészletet kívánnak létrehozni idővel.
A következők azonban az új programozási nyelv néhány alapvető jellemzője:
- A típusok elnevezéséhez használjon kifejezéseket.
- Erős generikumok definíciós ellenőrzésekkel
- A típusok kifejezetten interfészeket végeznek
- bevezető kifejezések és alapvető nyelvtan
- A mutatók korlátlan hozzáférést és mutációt tesznek lehetővé.
- A funkció bemeneti paramétereinek értékei csak olvashatók.
- A gyökér névtér a csomag.
- Az API-k a csomagnevük használatával importálhatók.
- Egy metódust egy explicit objektumparaméteren keresztül deklarálnak.
- Az osztályok alapértelmezés szerint véglegesek; csak egy örökség van
A szén tulajdonságai
Modern és fejlődő
- A Carbon verziók közötti frissítés egyszerű és eszközalapú.
- Erős nyelvi alapok, különösen, ha C++-t használtál, és egyszerűen megtanulható
- Biztonságosabb alapok és lépésről lépésre a memóriabiztos részhalmazhoz
A nyílt forráskódú közösség üdvözlése
- Egy közösség, amely arra törekszik, hogy meleg, elfogadó és hívogató legyen
- Céljai és prioritásai különálló és erős kormányzás
- Mindent az egyben stratégia fordítóval, könyvtárakkal, dokumentációval, eszközökkel, csomagkezeléssel és még sok mással
Gyors és C++ kompatibilis
- Dolgozzon együtt a C ++ kód már rendelkezik, beleértve az öröklődést és a sablonokat
- Az LLVM-mel a C++-hoz hasonló teljesítmény, valamint a bitekhez és címekhez való alacsony szintű hozzáférés
- Gyors és méretezhető összeállítások, amelyek kompatibilisek a meglévő C++ build rendszerekkel
Miért építette fel a Google a Carbon programozási nyelvet?
A teljesítménykritikus szoftvereket továbbra is többnyire C++ nyelven írják, amely hatalmas és bővülő kódbázisokkal és befektetésekkel rendelkezik.
Azonban gondjai vannak a fejlődéssel és a fejlesztői igények kielégítésével, amint azt fentebb említettük, nagyrészt az évekig tartó technológiai adósság felhalmozódása miatt.
Rendkívül nehéz fokozatosan javítani a C++-t a felhalmozott technikai adósság, valamint az evolúciós folyamat nehézségei miatt.
E problémák megoldásának ideális megközelítése az, ha egy erős nyelvi alappal kezdjük, például egy kortárs általános rendszerrel, moduláris kódszerkezettel és következetes, egyszerű szintaxissal, ahelyett, hogy közvetlenül örökölnénk a C vagy C++ hagyományát.
A Go, Swift, Kotlin, Rust és még sok más kortárs nyelv már kiemelkedő fejlesztési élményt kínál. Azoknak a fejlesztőknek, akik képesek e jelenlegi nyelvek valamelyikét használni, meg kell tenniük.
Sajnos a C++-ról való átvételt és átállást súlyosan hátráltatja ezeknek a nyelveknek a kialakítása. Ezek az akadályok közé tartozik a többletteljesítmény és a szoftver idiomatikus kialakításának módosítása.
A szén nem a C++ fokozatos javítására tett kísérlet; hanem utódnyelvi stratégia. Középpontjában a C++ interoperabilitás, valamint a jelenleg C++-t használó fejlesztők és kódbázisok széles körű elfogadása és migrációja áll.
A C++ helyettesítő nyelvnek rendelkeznie kell:
- A C++-hoz hasonló teljesítmény döntő fontosságú a fejlesztők számára.
- Kezelhető tanulási görbe és ismeretségi szint a C++ programozók számára
- Skálázható migráció, amely tartalmaz némi forrás-forrás idiomatikus C++ kódfordítást.
- Hasonló kifejezőképesség és támogatás a jelenlegi szoftverek architektúrájához és tervezéséhez.
- Együttműködés a C++-szal, amely zökkenőmentes és kétirányú, lehetővé téve bármely könyvtár számára a Carbon átvételét anélkül, hogy a verem többi részét át kellene vinni.
Ezzel a stratégiával a Google hozzáadja a C++-hoz már meglévő ökoszisztémát, és magában foglalja a jelenlegi befektetéseket, kódbázisokat és fejlesztői közösségeket.
Néhány nyelv alkalmazta ezt a megközelítést különböző ökoszisztémákhoz, és a Carbon a C++-hoz hasonló funkciót kíván betölteni ezekben a helyzetekben:
- Java – Kotlin
- JavaScript – TypeScript
- C++ – szén
C++ VS Carbon Code
A Carbonnak alacsony tanulási görbéje kell lennie, ha Ön már C++ fejlesztő. Nyelvtani szerkezetek rögzített halmazából áll, amelyeknek természetesnek, könnyen olvashatónak és érthetőnek kell lenniük.
Példa a C++ kódra:
Ez a szén-dioxid kód a következőknek felel meg:
Carbon vs Rust
Egy másik kortárs nyelv, amelyet kifejezetten a memória biztonságos teljesítményű alkalmazások követelményeinek kielégítésére terveztek, a Rust.
Akkor miért ne használnánk egyszerűen a Rust-ot?
Míg egyesek azzal érvelnek, hogy a Rust, amely egy Mozilla-projektként indult, és később jelentős közönségre nőtt, a C++ utódja, Carruth kétségbe vonja, hogy a párhuzam továbbra is érvényes-e.
A Rust kétségtelenül fantasztikus nyelv egy új projekt elindításához, de mivel hiányzik belőle az olyan nyelvek „kétirányú átjárhatósága”, mint a Java és a Kotlin, nehéz fokozatosan áttérni rá.
Carruth előadást tartott a CPP North-on, és arra biztatta azokat, akik már használták a Rustot, hogy folytassák ezt. Azok a fejlesztők, akik már rendelkeznek jelentős C++ kódbázisokkal, amelyeket nehéz Rust-ba konvertálni, Carbont kell használniuk.
Különösen a Carbon az, amit Carruth „utódnyelvnek” nevezett, amely egy létező ökoszisztéma, jelen esetben a C++ tetején épül fel.
Ebből a célból a Carbonnak teljesen kompatibilisnek kell lennie a jelenlegi C++ kóddal, még akkor is, ha sok célja van a Rusttal, például a programozók segítése a „teljesítménykritikus alkalmazások” létrehozásában.
Ezenkívül a C++-ról a Carbonra való átállást a lehető legegyszerűbbé kívánják tenni.
Következtetés
Végül a Carbon nyelv alkotói igyekeztek odafigyelni az alkotás folyamatára. A projekt kódja kérésre elérhető és nyíltan tárolható GitHub, és kultúráját befogadónak és a magánszemélyek és az IT-szektor számára nyitottnak tekintik.
A Carbon csapata úgy gondolta, hogy a Carbonnak a közösség által vezérelt autonóm projektnek kell lennie, és nem csak a Google által táplált projektnek a jövőbeni fejlődés érdekében.
Caruth hozzátette, hogy számos IT-vállalkozás érdeklődése ellenére ez a koncepció még csak kísérleti stádiumban van.
Hagy egy Válaszol