Fi sforz biex jissostitwixxu s-C++ venerabbli iżda kajman, ir-riċerkaturi ta 'Google introduċew lingwa ta' programmar ta 'sors miftuħ "sperimentali" ġdida fjamanta msejħa Carbon.
Il-karbonju jista' jservi bħala lingwa suċċessur għal C++, waħda li tipprovdi punt ta' tluq sempliċi għall-iżviluppaturi għal lingwa aktar ġdida li tindirizza kunċetti ta' żvilupp kontemporanju bħas-sikurezza tal-memorja u l-ġeneriċi.
Dan ikun simili għal kif Microsoft bena Typescript biex taġġorna JavaScript u Kotlin biex issaħħaħ id-dgħufijiet f'Java.
Google żviluppat numru ta' lingwi ta' programmar matul is-snin, li wħud minnhom kisbu notorjetà u prominenza sinifikanti.
Pereżempju, Golang (jew sempliċement Go) ġie żviluppat biex jiffaċilita l-ħolqien ta 'servers u sistemi distribwiti u sussegwentement ġie mħaddan mill-pubbliku ġenerali.
Id-Dart lingwa ta 'programmar, li nħoloq bħala sostitut ta' JavaScript, ma sarx magħruf qabel it-tnedija ta' Flutter.
Chandler Carruth, impjegat ta' Google, ippreżenta l-idea tiegħu għal lingwa ta' programmar ġdida msejħa Carbon fid-19 ta' Lulju 2022, fil-konvenzjoni Cpp North f'Toronto, skond Conor Hoekstra, li attendew u rreġistraw is-slajds.
Sabiex jiġi stabbilit ix-xenarju, Carruth wera kif bosta mill-lingwi tal-programmazzjoni l-aktar popolari tal-lum kellhom dixxendenti li jippermettu lill-iżviluppaturi jkunu produttivi malajr u wkoll jibbenefikaw minn disinn tal-lingwa kontemporanja.
Ejja nibdew b'introduzzjoni ġenerali tal-lingwa ta 'programmar Carbon, inklużi l-karatteristiċi tagħha, l-iskop tal-invenzjoni ta' Google tagħha, u aktar.
Introduzzjoni għal-lingwa tal-Ipprogrammar tal-Karbonju
Fid-19 ta’ Lulju 2022, Google żvelat Carbon bħala l-aktar lingwa ta’ programmar ġdida li kienet ħolqot. Kien maħsub biex jissostitwixxi C++ b'mod sperimentali.
Grazzi għal a sistema ġeneriċi, li jelimina l-ħtieġa li jiġi ċċekkjat doppjament il-kodiċi għal kull instantiation, Carbon se jinbena fuq pedament ta 'kunċetti moderni ta' programmazzjoni.
Sal-aħħar tas-sena, id-disinn jippjana li jipprovdi verżjoni operattiva bażika (verżjoni 0.1).
L-integrità tal-memorja hija element kruċjali li C++ huwa nieqes. Wieħed mis-sorsi primarji ta 'difetti tas-sigurtà huwa kwistjonijiet ta' aċċess għall-memorja.
L-iżvilupp ta 'kontrolli tal-limiti dinamiċi, traċċar akbar ta' stati mhux inizjalizzati, u mod ta 'debug build bir-reqqa huma kollha għanijiet tat-tim tal-Karbonju. Il-ħallieqa għandhom l-intenzjoni li joħolqu subsett tal-Karbonju sikur maż-żmien.
Madankollu, dawn li ġejjin huma xi karatteristiċi kruċjali tal-lingwa tal-programmazzjoni l-ġdida:
- Biex issemmi tipi, uża espressjonijiet.
- Ġeneriċi b'saħħithom b'kontrolli tad-definizzjoni
- Tipi speċifikament iwettqu interfaces
- frażijiet ta' introduzzjoni u grammatika bażika
- Pointers jippermettu aċċess mhux ristrett u mutazzjoni.
- Il-valuri għall-parametri tad-dħul tal-funzjoni jinqraw biss.
- L-ispazju tal-isem tal-għeruq huwa l-pakkett.
- L-APIs jistgħu jiġu importati bl-użu tal-ismijiet tal-pakketti tagħhom.
- Metodu huwa ddikjarat permezz ta' parametru ta' oġġett espliċitu.
- Il-klassijiet huma finali awtomatikament; hemm wirt wieħed biss
Karatteristiċi tal-Karbonju
Moderna u li qed tiżviluppa
- L-aġġornamenti bejn il-verżjonijiet tal-Karbonju huma sempliċi u bbażati fuq l-għodda.
- Sostenimenti lingwistiċi b'saħħithom, speċjalment jekk użajt C++, u sempliċi biex titgħallem
- Fondazzjonijiet aktar sikuri u approċċ pass pass għal subsett bla periklu għall-memorja
Nilqgħu l-komunità ta 'sors miftuħ
- Komunità li tistinka biex tkun sħuna, taċċetta, u tistieden
- L-għanijiet u l-prijoritajiet tiegħu huma governanza distinta u b'saħħitha
- Strateġija kollha f'wieħed b'kompilatur, libreriji, dokumentazzjoni, għodod, ġestjoni tal-pakketti, u aktar
Malajr u kompatibbli ma 'C++
- Xogħol flimkien mal- Kodiċi C ++ diġà għandek, inkluż wirt u mudelli
- B'LLVM, prestazzjoni komparabbli ma' C++ u aċċess ta' livell baxx għal bits u indirizzi
- Bini li huwa rapidu u skalabbli u kompatibbli mas-sistemi eżistenti ta' bini C++ tiegħek
Għaliex Google bena l-lingwa tal-ipprogrammar Carbon?
Is-softwer kritiku għall-prestazzjoni jibqa' jinkiteb l-aktar f'C++, li għandu codebases u investimenti enormi u li qed jespandu.
Madankollu, qed ikollha diffikultà biex tavvanza u tissodisfa t-talbiet tal-iżviluppaturi kif imsemmi hawn fuq, l-aktar minħabba l-ammont ta 'snin ta' dejn teknoloġiku.
Huwa diffiċli ħafna li ttejjeb b'mod inkrementali C++ minħabba d-dejn tekniku li akkumula kif ukoll diffikultajiet bil-proċess ta 'evoluzzjoni tiegħu.
L-approċċ ideali biex jiġu solvuti dawn il-kwistjonijiet huwa li tibda b'pedament lingwistiku b'saħħtu, bħal sistema ġenerika kontemporanja, struttura ta 'kodiċi modulari, u sintassi konsistenti u sempliċi, aktar milli tirret direttament it-tradizzjoni ta' C jew C++.
Go, Swift, Kotlin, Rust, u ħafna lingwi oħra kontemporanji diġà joffru esperjenza ta’ żvilupp eċċellenti. L-iżviluppaturi li huma kapaċi jużaw waħda minn dawn il-lingwi attwali għandhom jagħmlu.
Sfortunatament, l-adozzjoni u l-migrazzjoni minn C++ huma mxekkla ħafna mid-disinji ta 'dawn il-lingwi. Dawn l-ostakli jinkludu overhead tal-prestazzjoni u modifiki għad-disinn idjomatiku tas-softwer.
Il-karbonju mhuwiex tentattiv biex itejjeb gradwalment is-C++; pjuttost, hija strateġija lingwistika suċċessiva. L-enfasi tagħha hija fuq l-interoperabbiltà tas-C++, kif ukoll l-aċċettazzjoni u l-migrazzjoni mifruxa għall-iżviluppaturi u l-kodiċijiet li bħalissa qed jużaw is-C++.
Lingwa ta' sostituzzjoni C++ għandu jkollha:
- Prestazzjoni komparabbli ma 'C++ hija karatteristika kruċjali għall-iżviluppaturi.
- Kurva ta 'tagħlim maniġġabbli u livell ta' familjarità għall-programmaturi C++
- Migrazzjoni li hija skalabbli u tinkludi xi traduzzjoni tal-kodiċi idjomatika C++ minn sors għal sors.
- Espressività simili u appoġġ għall-arkitettura u d-disinn tas-softwer kurrenti.
- Interoperabilità ma 'C++ li hija bla xkiel u bidirezzjonali, li tippermetti lil kwalunkwe librerija tadotta Carbon mingħajr ma jkollha bżonn port il-bqija tal-munzell.
B'din l-istrateġija, Google żżid mal-ekosistema li diġà teżisti għal C++ u tinkorpora investimenti attwali, bażijiet ta 'kodiċi, u komunitajiet ta' żvilupp.
Ftit lingwi adottaw dan l-approċċ għal diversi ekosistemi, u Carbon tfittex li jkollha funzjoni simili għal C++ f'dawn is-sitwazzjonijiet:
- Java – Kotlin
- JavaScript - TypeScript
- C++ – Karbonju
C++ VS Kodiċi tal-Karbonju
Il-karbonju għandu jkollu kurva ta' tagħlim baxxa jekk diġà int żviluppatur C++. Huwa magħmul minn sett fiss ta 'kostruzzjonijiet grammatikali li għandhom jinstema' naturali u jkunu sempliċi biex jinqraw u jinftiehmu.
Eżempju ta' kodiċi C++:
Dan il-kodiċi tal-karbonju jikkorrispondi għal:
Karbonju Vs Sadid
Lingwa kontemporanja oħra ddisinjata espressament biex tissodisfa r-rekwiżiti ta 'applikazzjonijiet ta' prestazzjoni bla periklu għall-memorja tissejjaħ Rust.
Allura għaliex ma tużax sempliċement Rust?
Filwaqt li xi wħud jargumentaw li Rust, li beda bħala proġett ta 'Mozilla u sussegwentement kiber biex ikollu segwenti pubbliċi mdaqqsa, huwa suċċessur għal C++, Carruth jiddubita jekk il-parallel għadux validu.
Is-sadid huwa bla dubju lingwa meraviljuża li biha tibda proġett ġdid, iżda peress li m'għandhiex l-"interoperabbiltà bidirezzjonali" ta' lingwi bħal Java & Kotlin, hija ta' sfida li ssir tranżizzjoni għaliha gradwalment.
Carruth tat taħdita fis-CPP North u ħeġġet lin-nies li diġà kienu qed jużaw Rust biex jibqgħu jagħmlu dan. Iżviluppaturi li diġà għandhom kodiċi C++ mdaqqsa li huma ta 'sfida biex jikkonvertu għal Rust għandhom jużaw Carbon.
B'mod partikolari, Carbon huwa dak li Carruth irreferiet bħala "lingwa suċċessur", li hija mibnija fuq ekosistema eżistenti, f'dan il-każ C++.
Għal dak il-għan, Carbon huwa maħsub biex ikun kompletament kompatibbli mal-kodiċi C++ attwali, anke jekk għandu ħafna għanijiet ma 'Rud, bħal li jgħin lill-programmaturi fil-ħolqien ta' "applikazzjonijiet kritiċi għall-prestazzjoni."
Barra minn hekk, huwa maħsub biex iċ-ċaqliq minn C++ għal Carbon sempliċi kemm jista 'jkun.
konklużjoni
Fl-aħħarnett, il-ħallieqa tal-lingwa Carbon għamlu sforz biex jagħtu attenzjoni lill-proċess tal-ħolqien. Il-kodiċi tal-proġett huwa disponibbli għat-talba u maħżun fil-miftuħ fuq GitHub, u l-kultura tagħha hija definita bħala inklużiva u miftuħa kemm għaċ-ċittadini privati kif ukoll għas-settur tal-IT.
It-tim tal-Carbon ħaseb li l-Carbon kien jeħtieġ li jkun proġett awtonomu mmexxi mill-komunità u mhux biss proġett alimentat minn Google sabiex jiżviluppa fil-futur.
Caruth żiedet tgħid li minkejja l-interess minn numru ta’ negozji tal-IT, dan il-kunċett għadu fi stadju sperimentali.
Ħalli Irrispondi