Në një përpjekje për të zëvendësuar C++-in e nderuar, por të ngadaltë, studiuesit e Google kanë prezantuar një gjuhë programimi krejt të re "eksperimentale" me burim të hapur të quajtur Carbon.
Carbon mund të shërbejë si një gjuhë pasardhëse e C++, një gjuhë që ofron një pikënisje të thjeshtë për zhvilluesit në një gjuhë më të re që trajton konceptet bashkëkohore të zhvillimit si siguria e kujtesës dhe gjenerikët.
Kjo do të ishte e ngjashme me mënyrën se si Microsoft ndërtoi Typescript për të përditësuar JavaScript dhe Kotlin për të forcuar dobësitë në Java.
Google ka zhvilluar një sërë gjuhësh programimi gjatë viteve, disa prej të cilave kanë fituar famë dhe rëndësi të madhe.
Për shembull, Golang (ose thjesht Go) u zhvillua për të lehtësuar krijimin e serverëve dhe sistemeve të shpërndara dhe më pas është përqafuar nga publiku i gjerë.
Shigjeta gjuhë programimi, i cili u krijua si një zëvendësues i JavaScript, nuk u bë i njohur deri në lançimin e Flutter.
Chandler Carruth, një punonjës i Google, prezantoi idenë e tij për një gjuhë të re programimi të quajtur Carbon më 19 korrik 2022, në konventën Cpp North në Toronto. sipas Conor Hoekstra, i cili mori pjesë dhe regjistroi sllajdet.
Për të vendosur skenarin, Carruth tregoi se si disa nga gjuhët më të pëlqyera të programimit të ditëve të sotme kishin pasardhës që u mundësojnë zhvilluesve të jenë me shpejtësi produktive dhe gjithashtu të përfitojnë nga dizajni bashkëkohor i gjuhës.
Le të fillojmë me një prezantim të përgjithshëm të gjuhës programuese Carbon, duke përfshirë veçoritë e saj, qëllimin e shpikjes së saj nga Google dhe më shumë.
Hyrje në gjuhën e programimit të karbonit
Më 19 korrik 2022, Google zbuloi Carbon si gjuhën më të re të programimit që kishte krijuar. Ai synonte të zëvendësonte C++ eksperimentalisht.
Falë një sistemi i gjenerikës, e cila eliminon nevojën për të kontrolluar dyfish kodin për çdo instancë, Carbon do të ndërtohet mbi një bazë të koncepteve moderne të programimit.
Deri në fund të vitit, dizajni planifikon të sigurojë një version bazë operacional (versioni 0.1).
Integriteti i memories është një element thelbësor që i mungon C++. Një nga burimet kryesore të defekteve të sigurisë janë çështjet e aksesit në kujtesë.
Zhvillimi i kontrolleve dinamike të kufijve, gjurmimi më i madh i gjendjeve të painitializuara dhe një modalitet i plotë i krijimit të korrigjimit të paracaktuar janë të gjitha qëllimet e ekipit të Carbon. Krijuesit synojnë të krijojnë një nëngrup të sigurt të karbonit me kalimin e kohës.
Megjithatë, këto janë disa karakteristika thelbësore të gjuhës së re të programimit:
- Për të emërtuar lloje, përdorni shprehje.
- Gjenerikë të fortë me kontrolle përkufizimi
- Llojet në mënyrë specifike kryejnë ndërfaqe
- frazat hyrëse dhe gramatika bazë
- Treguesit lejojnë akses dhe mutacion të pakufizuar.
- Vlerat për parametrat e hyrjes së funksionit janë vetëm për lexim.
- Hapësira e emrit të rrënjës është paketa.
- API-të mund të importohen duke përdorur emrat e paketave të tyre.
- Një metodë deklarohet nëpërmjet një parametri të qartë të objektit.
- Klasat janë përfundimtare si parazgjedhje; ka vetëm një trashëgimi
Karakteristikat e karbonit
Moderne dhe në zhvillim
- Përmirësimet ndërmjet versioneve të karbonit janë të thjeshta dhe të bazuara në vegla.
- Baza e fortë gjuhësore, veçanërisht nëse keni përdorur C++, dhe e thjeshtë për t'u mësuar
- Themelet më të sigurta dhe një qasje hap pas hapi për një nëngrup të sigurt për memorie
Duke mirëpritur komunitetin me burim të hapur
- Një komunitet që përpiqet të jetë i ngrohtë, pranues dhe ftues
- Qëllimet dhe prioritetet e tij janë qeverisje e dallueshme dhe e fortë
- Një strategji gjithëpërfshirëse me një përpilues, biblioteka, dokumentacion, mjete, menaxhim paketash dhe më shumë
I shpejtë dhe i pajtueshëm me C++
- Punoni së bashku me Kodi C ++ ju tashmë keni, duke përfshirë trashëgiminë dhe shabllonet
- Me LLVM, performancë e krahasueshme me C++ dhe akses të nivelit të ulët në bit dhe adresa
- Ndërtimet që janë të shpejta dhe të shkallëzueshme dhe të përputhshme me sistemet tuaja ekzistuese të ndërtimit të C++
Pse Google ndërtoi gjuhën e programimit Carbon?
Softueri kritik për performancën vazhdon të shkruhet kryesisht në C++, i cili ka baza dhe investime të mëdha kodesh dhe në zgjerim.
Megjithatë, ajo ka vështirësi në avancimin dhe përmbushjen e kërkesave të zhvilluesve siç u përmend më lart, kryesisht për shkak të grumbullimit të borxhit teknologjik prej vitesh.
Është jashtëzakonisht e vështirë të përmirësohet gradualisht C++ për shkak të borxhit teknik që ka akumuluar si dhe vështirësive me procesin e evolucionit të tij.
Qasja ideale për zgjidhjen e këtyre çështjeve është të fillohet me një bazë të fortë gjuhësore, si një sistem bashkëkohor i gjenerikës, strukturë kodi modular dhe sintaksë konsistente e të drejtpërdrejtë, në vend që të trashëgohet drejtpërdrejt traditën e C ose C++.
Go, Swift, Kotlin, Rust dhe shumë gjuhë të tjera bashkëkohore tashmë ofrojnë një përvojë të jashtëzakonshme zhvillimi. Zhvilluesit që janë të aftë të përdorin një nga këto gjuhë aktuale duhet ta bëjnë këtë.
Fatkeqësisht, adoptimi dhe migrimi nga C++ pengohen rëndë nga dizajnet e këtyre gjuhëve. Këto pengesa përfshijnë shpenzimet e përgjithshme të performancës dhe modifikimet në dizajnin idiomatik të softuerit.
Karboni nuk është një përpjekje për të përmirësuar gradualisht C++; përkundrazi, është një strategji gjuhësore pasardhëse. Fokusi i tij është në ndërveprimin e C++, si dhe pranimin dhe migrimin e gjerë për zhvilluesit dhe bazat e kodeve që përdorin aktualisht C++.
Një gjuhë zëvendësuese C++ duhet të ketë:
- Performanca e krahasueshme me C++ është një karakteristikë thelbësore për zhvilluesit.
- Një kurbë e menaxhueshme e të mësuarit dhe nivel familjariteti për programuesit C++
- Migrimi që është i shkallëzueshëm dhe përfshin disa përkthime idiomatike të kodit C++ nga burimi në burim.
- Ekspresivitet dhe mbështetje e ngjashme për arkitekturën dhe dizajnin e softuerit aktual.
- Ndërveprueshmëria me C++ që është e qetë dhe me dy drejtime, duke lejuar çdo bibliotekë të adoptojë karbon pa pasur nevojë të portojë pjesën tjetër të stivës.
Me këtë strategji, Google i shton ekosistemit që tashmë ekziston për C++ dhe përfshin investimet aktuale, bazat e kodeve dhe komunitetet e zhvillimit.
Disa gjuhë e kanë adoptuar këtë qasje për ekosisteme të ndryshme dhe Karboni kërkon të luajë një funksion të ngjashëm me C++ në këto situata:
- Java – Kotlin
- JavaScript – TypeScript
- C++ – Karboni
C++ VS Kodi i Karbonit
Karboni duhet të ketë një kurbë të ulët të të mësuarit nëse tashmë jeni një zhvillues i C++. Ai përbëhet nga një grup fiks ndërtimesh gramatikore që duhet të tingëllojnë të natyrshme dhe të jenë të thjeshta për t'u lexuar dhe kuptuar.
Një shembull i kodit C++:
Ky kod karboni korrespondon me:
Karboni kundër ndryshkut
Një gjuhë tjetër bashkëkohore e krijuar shprehimisht për të përmbushur kërkesat e aplikacioneve të performancës të sigurta për memorie quhet Rust.
Pra, pse të mos përdorni thjesht Rust?
Ndërsa disa argumentojnë se Rust, i cili filloi si një projekt i Mozilla-s dhe më pas është rritur duke pasur një ndjekës të konsiderueshëm publik, është një pasues i C++, Carruth dyshon nëse paralelja është ende e vlefshme.
Rust është padyshim një gjuhë fantastike me të cilën mund të fillohet një projekt i ri, por duke qenë se i mungon "ndërveprimi dydrejtues" i gjuhëve si Java dhe Kotlin, është sfiduese kalimi në të gradualisht.
Carruth dha një leksion në CPP North dhe inkurajoi njerëzit që tashmë po përdornin Rust të vazhdonin ta bënin këtë. Zhvilluesit që tashmë kanë baza të konsiderueshme të kodeve C++ që janë sfiduese për t'u konvertuar në Rust, duhet të përdorin Carbon.
Në veçanti, Carbon është ajo që Carruth e quajti një "gjuhë pasardhëse", e cila është ndërtuar në krye të një ekosistemi ekzistues, në këtë shembull C++.
Për këtë qëllim, Carbon është menduar të jetë plotësisht i pajtueshëm me kodin aktual C++, edhe nëse ka shumë objektiva me Rust, si p.sh. të ndihmojë programuesit në krijimin e "aplikacioneve kritike për performancën".
Për më tepër, synohet ta bëjë lëvizjen nga C++ në Carbon sa më të thjeshtë.
Përfundim
Më në fund, krijuesit e gjuhës së karbonit bënë një përpjekje për t'i kushtuar vëmendje procesit të krijimit. Kodi i projektit është i disponueshëm për kërkesë dhe ruhet hapur në Github, dhe kultura e saj përkufizohet si gjithëpërfshirëse dhe e hapur si për qytetarët privatë ashtu edhe për sektorin e IT.
Ekipi i Carbon mendoi se Carbon duhej të ishte një projekt autonom i drejtuar nga komuniteti dhe jo vetëm një projekt i nxitur nga Google në mënyrë që të zhvillohej në të ardhmen.
Caruth shtoi se pavarësisht interesimit nga një numër biznesesh IT, ky koncept është ende në fazën eksperimentale.
Lini një Përgjigju