Nan yon efò pou ranplase C++ venerable men paresseux, chèchè Google yo te entwodwi yon nouvo langaj pwogramasyon "eksperimantal" sous louvri yo rele Carbon.
Kabòn ta ka sèvi kòm yon lang siksesè nan C++, youn ki bay yon pwen depa senp pou devlopè nan yon lang ki pi nouvo ki adrese konsèp devlopman kontanporen tankou sekirite memwa ak jenerik.
Sa a ta sanble ak fason Microsoft te konstwi Typescript pou mete ajou JavaScript ak Kotlin pou ranfòse feblès nan Java.
Google te devlope yon kantite langaj pwogramasyon pandan tout ane yo, kèk nan yo te genyen siyifikatif notoryete ak enpòtans.
Pou egzanp, Golang (oswa jis Go) te devlope pou fasilite kreyasyon sèvè ak sistèm distribiye epi li te annapre annapre pa piblik la an jeneral.
Flèch la pwogram langaj, ki te kreye kòm yon ranplasan JavaScript, pa t 'vin byen li te ye jiskaske lansman Flutter.
Chandler Carruth, yon anplwaye Google, te prezante lide li pou yon nouvo langaj pwogram ki rele Carbon le 19 jiyè 2022 nan konvansyon Cpp North nan Toronto, dapre Conor Hoekstra, ki te asiste ak anrejistre glisad yo.
Pou mete senaryo a, Carruth te demontre kijan plizyè nan lang pwogramasyon ki pi renmen jodi a te gen desandan ki pèmèt devlopè yo byen vit pwodiktif epi tou benefisye de konsepsyon langaj kontanporen.
Ann kòmanse ak yon entwodiksyon jeneral nan langaj pwogram Carbon la, ki gen ladan karakteristik li yo, objektif Google envansyon li, ak plis ankò.
Entwodiksyon nan langaj pwogram kabòn
19 jiyè 2022, Google te revele Carbon kòm dernye lang pwogramasyon li te kreye. Li te gen entansyon ranplase C++ eksperimantal.
Mèsi a yon sistèm jenerik, ki elimine nesesite pou tcheke an doub kòd la pou chak enstansyasyon, Carbon pral konstwi sou yon fondasyon konsèp pwogram modèn.
Rive nan fen ane a, konsepsyon an planifye bay yon vèsyon debaz operasyonèl (vèsyon 0.1).
Entegrite memwa se yon eleman enpòtan ke C++ manke. Youn nan sous prensipal defo sekirite yo se pwoblèm aksè memwa.
Devlopman nan chèk fwontyè dinamik, pi gwo swivi nan eta ki pa inisyalize, ak yon bon jan mòd debug bati defo se tout objektif ekip Carbon la. Kreyatè yo gen entansyon kreye yon sou-ansanm Kabòn an sekirite sou tan.
Sepandan, sa ki annapre yo se kèk karakteristik enpòtan nan nouvo langaj pwogramasyon an:
- Pou nonmen kalite yo, sèvi ak ekspresyon.
- Jenerik fò ak chèk definisyon
- Kalite espesyalman pote soti nan interfaces
- fraz entwodiksyon ak gramè debaz
- Endikasyon pèmèt aksè san restriksyon ak mitasyon.
- Valè pou paramèt opinyon fonksyon yo lekti sèlman.
- Espas non rasin lan se pake a.
- API yo ka enpòte lè l sèvi avèk non pake yo.
- Yon metòd deklare atravè yon paramèt objè eksplisit.
- Klas yo final pa default; gen yon sèl eritaj
Karakteristik nan Kabòn
Modèn ak devlope
- Amelyorasyon ant vèsyon Carbon yo senp epi ki baze sou zouti.
- Bonjan baz langaj, sitou si w te itilize C++, ak senp pou aprann
- Fondasyon ki pi an sekirite ak yon apwòch etap-pa-etap nan yon sou-ansanm memwa ki an sekirite
Akeyi kominote sous louvri
- Yon kominote ki fè efò pou yo cho, aksepte, ak envite
- Objektif li yo ak priyorite yo se yon gouvènans diferan ak solid
- Yon estrateji tout-an-yon ak yon du, bibliyotèk, dokimantasyon, zouti, jesyon pake, ak plis ankò
Rapid ak konpatib ak C++
- Travay ansanm ak la C ++ kòd ou deja genyen, ki gen ladan eritaj ak modèl
- Avèk LLVM, pèfòmans konparab ak C++ ak aksè nan nivo ki ba nan ti moso ak adrès
- Bati ki rapid ak évolutive ak konpatib ak sistèm konstriksyon C++ ou ki egziste deja
Poukisa Google te bati langaj pwogramasyon Carbon la?
Lojisyèl ki enpòtan pou pèfòmans yo kontinye ekri sitou nan C++, ki gen baz kod ak envèstisman gwo ak agrandi.
Sepandan, li gen pwoblèm pou avanse ak satisfè demand yo nan devlopè jan mansyone pi wo a, lajman akòz akimile valè ane nan dèt teknolojik.
Li trè difisil pou amelyore C++ dezagreman akòz dèt teknik li te akimile ak difikilte ak pwosesis evolisyon li yo.
Apwòch ideyal la pou rezoud pwoblèm sa yo se kòmanse ak yon fondasyon lang ki solid, tankou yon sistèm jenerik kontanporen, estrikti kòd modilè, ak sentaks ki konsistan, senp, olye ke dirèkteman eritye tradisyon an nan C oswa C++.
Go, Swift, Kotlin, Rust, ak anpil lòt lang kontanporen deja ofri yon eksperyans devlopman eksepsyonèl. Devlopè ki kapab itilize youn nan lang aktyèl sa yo ta dwe.
Malerezman, adopsyon ak migrasyon soti nan C++ yo sevèman anpeche pa desen yo nan lang sa yo. Obstak sa yo gen ladan pèfòmans anlè ak modifikasyon nan konsepsyon idyomatik lojisyèl an.
Kabòn se pa yon tantativ pou amelyore piti piti C++; pito, se yon estrateji lang siksesè. Konsantre li se sou entèoperabilite C++, osi byen ke akseptasyon toupatou ak migrasyon pou devlopè ak baz kod kounye a k ap itilize C++.
Yon lang ranplasman C++ dwe genyen:
- Pèfòmans ki konparab ak C++ se yon karakteristik enpòtan pou devlopè yo.
- Yon koub aprantisaj jere ak nivo abitye pou pwogramè C++
- Migrasyon ki évolutive e ki gen ladann kèk tradiksyon kòd idyomatik C++ sous-a-sous.
- Menm jan ekspresyon ak sipò pou achitekti ak konsepsyon lojisyèl aktyèl la.
- Entèoperabilite ak C++ ki san pwoblèm ak bidireksyon, ki pèmèt nenpòt bibliyotèk adopte Carbon san yo pa bezwen pò rès la nan pil la.
Avèk estrateji sa a, Google ajoute nan ekosistèm ki deja egziste pou C++ ak enkòpore envestisman aktyèl, baz kod, ak kominote devlopman.
Kèk lang te adopte apwòch sa a pou divès ekosistèm, ak Carbon ap chèche jwe yon fonksyon menm jan ak C++ nan sitiyasyon sa yo:
- Java - Kotlin
- JavaScript - TypeScript
- C++ - Kabòn
C++ VS Kòd Kabòn
Kabòn ta dwe gen yon koub aprantisaj ki ba si ou se yon pwomotè C++ deja. Li konpoze de yon seri fiks konstriksyon gramatikal ki ta dwe son natirèl epi ki senp pou li ak konprann.
Yon egzanp kòd C++:
Kòd kabòn sa a koresponn ak:
Kabòn vs rouye
Yon lòt lang kontanporen ki fèt ekspreseman pou satisfè kondisyon aplikasyon pou pèfòmans memwa ki an sekirite yo rele Rust.
Se konsa, poukisa pa tou senpleman itilize Rust?
Pandan ke gen kèk diskite ke Rust, ki te kòmanse kòm yon pwojè Mozilla epi ki te vin apre vin gen yon gwo sa yo piblik, se yon siksesè nan C++, Carruth doute si paralèl la toujou valab.
Rust se san dout yon lang kokenn ak ki kòmanse yon nouvo pwojè, men kòm li manke "entèoperabilite nan bidireksyon" nan lang tankou Java & Kotlin, li se defi tranzisyon nan li piti piti.
Carruth te bay yon konferans nan CPP North epi ankouraje moun ki te deja itilize Rust pou yo kontinye fè sa. Devlopè ki deja gen gwo kod C++ ki difisil pou konvèti nan Rust ta dwe itilize Carbon.
An patikilye, Carbon se sa Carruth refere yo kòm yon "langaj siksesè," ki konstwi sou tèt yon ekosistèm ki deja egziste, nan egzanp sa a C++.
Pou rezon sa a, Carbon vle di yo konplètman konpatib ak kòd aktyèl C++, menm si li gen anpil objektif ak Rust, tankou ede pwogramè yo nan kreye "aplikasyon pèfòmans-kritik."
Anplis de sa, li gen entansyon fè deplase soti nan C ++ nan Carbon kòm senp ke posib.
konklizyon
Finalman, kreyatè lang Carbon te fè yon efò pou peye atansyon sou pwosesis kreyasyon an. Kòd pwojè a disponib pou demann epi estoke ouvètman sou Github, epi kilti li yo defini kòm enklizif epi ouvè a tou de sitwayen prive ak sektè IT la.
Ekip Carbon la te panse ke Carbon te bezwen yon pwojè otonòm kondwi pa kominote a epi li pa sèlman yon pwojè alimenté pa Google yo nan lòd yo devlope nan lavni an.
Caruth te ajoute ke malgre enterè yon kantite biznis IT, konsèp sa a toujou nan etap eksperimantal la.
Kite yon Reply