Mewn ymdrech i ddisodli’r C++ hybarch ond swrth, mae ymchwilwyr Google wedi cyflwyno iaith raglennu ffynhonnell agored “arbrofol” newydd sbon o’r enw Carbon.
Gallai Carbon wasanaethu fel iaith olynol i C++, un sy'n darparu man cychwyn syml i ddatblygwyr iaith fwy newydd sy'n mynd i'r afael â chysyniadau datblygu cyfoes fel diogelwch cof a generig.
Byddai hyn yn debyg i sut y gwnaeth Microsoft adeiladu Typescript i ddiweddaru JavaScript a Kotlin i gryfhau gwendidau yn Java.
Mae Google wedi datblygu nifer o ieithoedd rhaglennu dros y blynyddoedd, ac mae rhai ohonynt wedi dod yn enwog ac amlygrwydd sylweddol.
Er enghraifft, datblygwyd Golang (neu dim ond Go) i hwyluso'r gwaith o greu gweinyddwyr a systemau gwasgaredig ac mae wedi cael ei groesawu gan y cyhoedd ers hynny.
Y Dart iaith raglennu, a grëwyd fel eilydd JavaScript, ni ddaeth yn adnabyddus tan lansiad Flutter.
Cyflwynodd Chandler Carruth, un o weithwyr Google, ei syniad ar gyfer iaith raglennu newydd o’r enw Carbon ar Orffennaf 19, 2022, yng nghonfensiwn Cpp North yn Toronto, yn ôl Conor Hoekstra, a fynychodd a recordiodd y sleidiau.
Er mwyn gosod y senario, dangosodd Carruth sut yr oedd gan nifer o ieithoedd rhaglennu mwyaf poblogaidd y presennol ddisgynyddion sy'n galluogi datblygwyr i fod yn gynhyrchiol yn gyflym a hefyd elwa o ddylunio iaith gyfoes.
Gadewch i ni ddechrau gyda chyflwyniad cyffredinol o'r iaith raglennu Carbon, gan gynnwys ei nodweddion, pwrpas dyfeisio Google ohoni, a mwy.
Cyflwyniad i iaith Rhaglennu Carbon
Ar Orffennaf 19, 2022, datgelodd Google Carbon fel yr iaith raglennu fwyaf newydd yr oedd wedi'i chreu. Y bwriad oedd disodli C++ yn arbrofol.
Diolch i system generig, sy'n dileu'r angen i wirio'r cod ar gyfer pob amrantiad, bydd Carbon yn cael ei adeiladu ar sylfaen o gysyniadau rhaglennu modern.
Erbyn diwedd y flwyddyn, mae'r dyluniad yn bwriadu darparu fersiwn weithredol sylfaenol (fersiwn 0.1).
Mae cywirdeb cof yn elfen hanfodol bod C ++ ar goll. Un o brif ffynonellau diffygion diogelwch yw materion mynediad cof.
Mae datblygu gwiriadau terfynau deinamig, mwy o olrhain gwladwriaethau anghyfarwydd, a dull adeiladu dadfygio rhagosodedig trylwyr i gyd yn nodau i'r tîm Carbon. Mae'r crewyr yn bwriadu creu is-set Carbon diogel dros amser.
Fodd bynnag, mae'r canlynol yn rhai o nodweddion hanfodol yr iaith raglennu newydd:
- I enwi mathau, defnyddiwch ymadroddion.
- Generig gref gyda gwiriadau diffiniad
- Mae mathau yn cyflawni rhyngwynebau yn benodol
- ymadroddion cyflwyniad a gramadeg sylfaenol
- Mae awgrymiadau yn caniatáu mynediad anghyfyngedig a threiglo.
- Mae gwerthoedd ar gyfer paramedrau mewnbwn swyddogaeth yn ddarllenadwy yn unig.
- Y gofod enw gwraidd yw'r pecyn.
- Gellir mewnforio APIs gan ddefnyddio eu henwau pecyn.
- Mae dull yn cael ei ddatgan trwy baramedr gwrthrych penodol.
- Mae dosbarthiadau yn derfynol yn ddiofyn; nid oes ond un etifeddiaeth
Nodweddion Carbon
Modern a datblygol
- Mae uwchraddio rhwng fersiynau Carbon yn syml ac yn seiliedig ar offer.
- Seiliau iaith cryf, yn enwedig os ydych chi wedi defnyddio C++, ac yn syml i'w ddysgu
- Sylfeini mwy diogel ac ymagwedd gam wrth gam at is-set cof-diogel
Croesawu'r gymuned ffynhonnell agored
- Cymuned sy'n ymdrechu i fod yn gynnes, yn derbyn, ac yn gwahodd
- Mae ei nodau a'i flaenoriaethau yn lywodraethu pendant a chadarn
- Strategaeth popeth-mewn-un gyda chasglwr, llyfrgelloedd, dogfennaeth, offer, rheoli pecynnau, a mwy
Yn gyflym ac yn gydnaws â C ++
- Gweithio ynghyd â'r Cod C ++ sydd gennych eisoes, gan gynnwys etifeddiaeth a thempledi
- Gyda LLVM, perfformiad tebyg i C++ a mynediad lefel isel i ddarnau a chyfeiriadau
- Adeiladau sy'n gyflym ac yn raddadwy ac yn gydnaws â'ch systemau adeiladu C++ presennol
Pam adeiladodd Google yr iaith raglennu Carbon?
Mae meddalwedd sy'n hanfodol i berfformiad yn parhau i gael ei ysgrifennu yn C++ yn bennaf, sydd â chronfeydd codau a buddsoddiadau enfawr sy'n ehangu.
Fodd bynnag, mae'n cael trafferth symud ymlaen a chwrdd â gofynion datblygwyr fel y crybwyllwyd uchod, yn bennaf oherwydd cronni gwerth blynyddoedd o ddyled dechnolegol.
Mae'n hynod o anodd gwella C++ yn raddol oherwydd y ddyled dechnegol y mae wedi'i chronni yn ogystal ag anawsterau gyda'i broses esblygiad.
Y dull delfrydol o ddatrys y materion hyn yw dechrau gyda sylfaen iaith gref, megis system generig gyfoes, strwythur cod modiwlaidd, a chystrawen gyson, syml, yn hytrach nag etifeddu traddodiad C neu C++ yn uniongyrchol.
Mae Go, Swift, Kotlin, Rust, a llawer mwy o ieithoedd cyfoes eraill eisoes yn cynnig profiad datblygu rhagorol. Dylai datblygwyr sy'n gallu defnyddio un o'r ieithoedd cyfredol hyn wneud hynny.
Yn anffodus, mae mabwysiadu a mudo o C++ yn cael eu rhwystro'n ddifrifol gan ddyluniadau'r ieithoedd hyn. Mae'r rhwystrau hyn yn cynnwys perfformiad uwchben ac addasiadau i ddyluniad idiomatig y meddalwedd.
Nid yw carbon yn ymgais i wella C++ yn raddol; yn hytrach, strategaeth iaith olynol ydyw. Mae'n canolbwyntio ar ryngweithredu C++, yn ogystal â derbyniad a mudo eang i ddatblygwyr a chronfeydd cod sy'n defnyddio C++ ar hyn o bryd.
Rhaid i iaith amnewid C++ gael:
- Mae perfformiad tebyg i C++ yn nodwedd hanfodol i ddatblygwyr.
- Cromlin ddysgu hylaw a lefel cynefindra ar gyfer rhaglenwyr C++
- Mudo sy'n raddadwy ac sy'n cynnwys rhywfaint o gyfieithu cod C++ idiomatig o ffynhonnell-i-ffynhonnell.
- Mynegiant tebyg a chefnogaeth ar gyfer pensaernïaeth a dyluniad meddalwedd gyfredol.
- Rhyngweithredu â C ++ sy'n ddi-dor ac yn ddeugyfeiriadol, gan ganiatáu i unrhyw lyfrgell fabwysiadu Carbon heb orfod porthladdu gweddill y pentwr.
Gyda'r strategaeth hon, mae Google yn ychwanegu at yr ecosystem sydd eisoes yn bodoli ar gyfer C ++ ac yn ymgorffori buddsoddiadau cyfredol, cronfeydd codau a chymunedau datblygu.
Mae rhai ieithoedd wedi mabwysiadu’r dull hwn ar gyfer ecosystemau amrywiol, ac mae Carbon yn ceisio chwarae swyddogaeth debyg i C++ yn y sefyllfaoedd hyn:
- Java - Kotlin
- JavaScript - TypeScript
- C++ – Carbon
C++ Cod Carbon VS
Dylai fod gan garbon gromlin ddysgu isel os ydych chi eisoes yn ddatblygwr C++. Mae'n cynnwys set sefydlog o gystrawennau gramadegol a ddylai swnio'n naturiol a bod yn syml i'w darllen a'u deall.
Enghraifft o god C++:
Mae'r cod Carbon hwn yn cyfateb i:
Carbon Vs Rust
Iaith gyfoes arall sydd wedi'i chynllunio'n benodol i fodloni gofynion cymwysiadau perfformiad cof-ddiogel yw Rust.
Felly beth am ddefnyddio Rust yn unig?
Er bod rhai yn dadlau bod Rust, a ddechreuodd fel prosiect Mozilla ac sydd wedi tyfu i fod â dilyniant cyhoeddus sylweddol, yn olynydd i C++, mae Carruth yn amau a yw'r paralel yn dal yn ddilys.
Heb os, mae Rust yn iaith wych i ddechrau prosiect newydd â hi, ond gan nad oes ganddi “rhyngweithredu deugyfeiriadol” ieithoedd fel Java a Kotlin, mae'n heriol trosglwyddo iddi yn raddol.
Rhoddodd Carruth ddarlith yn CPP North ac anogodd bobl a oedd eisoes yn defnyddio Rust i barhau i wneud hynny. Dylai datblygwyr sydd eisoes â chronfeydd cod C ++ sylweddol sy'n anodd eu trosi i Rust ddefnyddio Carbon.
Yn benodol, Carbon yw'r hyn y cyfeiriodd Carruth ato fel “iaith olynol,” sydd wedi'i hadeiladu ar ben ecosystem sy'n bodoli, yn yr achos hwn C ++.
At y diben hwnnw, mae Carbon i fod i fod yn gwbl gydnaws â chod C ++ cyfredol, hyd yn oed os oes ganddo lawer o amcanion gyda Rust, megis cynorthwyo rhaglenwyr i greu “cymwysiadau sy'n hanfodol i berfformiad.”
Yn ogystal, bwriedir gwneud symud o C++ i Garbon mor syml â phosibl.
Casgliad
Yn olaf, gwnaeth crewyr iaith Carbon ymdrech i roi sylw i'r broses greu. Mae cod y prosiect ar gael i ofyn amdano ac wedi'i storio'n agored ymlaen Github, a diffinnir ei ddiwylliant fel un cynhwysol ac agored i ddinasyddion preifat a'r sector TG.
Roedd y tîm Carbon o'r farn bod angen i Garbon fod yn brosiect ymreolaethol wedi'i yrru gan y gymuned ac nid yn unig yn brosiect wedi'i danio gan Google er mwyn datblygu yn y dyfodol.
Ychwanegodd Caruth, er gwaethaf diddordeb gan nifer o fusnesau TG, mae'r cysyniad hwn yn dal i fod yn y cyfnod arbrofol.
Gadael ymateb