Table of Contents[Hide][Show]
Nyob rau hauv kev rau siab los hloov lub venerable tab sis sluggish C ++, Google cov kws tshawb fawb tau qhia ib tug brand-new "sim" qhib qhov programming lus dubbed Carbon.
Cov pa roj carbon monoxide tuaj yeem ua ib hom lus ua tiav rau C ++, ib qho uas muab qhov pib yooj yim rau cov neeg tsim khoom rau cov lus tshiab uas hais txog kev txhim kho niaj hnub xws li kev nco txog kev nyab xeeb thiab cov generics.
Qhov no yuav zoo ib yam li Microsoft tsim Typescript los hloov JavaScript thiab Kotlin los txhawb qhov tsis muaj zog hauv Java.
Google tau tsim ntau hom lus programming thoob plaws hauv lub xyoo, qee qhov tau txais cov npe nrov thiab muaj npe nrov.
Piv txwv li, Golang (lossis tsuas yog Mus) tau tsim los pab txhawb kev tsim cov servers thiab cov tshuab xa tawm thiab tau txais kev txhawb nqa los ntawm cov pej xeem.
Lub Dart cov lus programming, uas tau tsim los ua ib qho kev hloov JavaScript, tsis tau paub zoo txog thaum pib ntawm Flutter.
Chandler Carruth, tus neeg ua haujlwm hauv Google, tau nthuav tawm nws lub tswv yim rau cov lus programming tshiab hu ua Carbon thaum Lub Xya Hli 19, 2022, ntawm Cpp North convention hauv Toronto, Raws li Conor Hoekstra, leej twg tuaj koom thiab kaw cov slides.
Txhawm rau teeb tsa qhov xwm txheej, Carruth qhia tau hais tias yuav ua li cas ob peb yam lus nyiam tshaj plaws hauv lub sijhawm tam sim no muaj cov xeeb leej xeeb ntxwv uas ua rau cov neeg tsim khoom tau txais txiaj ntsig sai thiab tseem tau txais txiaj ntsig los ntawm kev tsim cov lus niaj hnub no.
Cia peb pib nrog kev qhia dav dav ntawm Carbon programming lus, suav nrog nws cov yam ntxwv, lub hom phiaj ntawm Google qhov kev tsim nws, thiab ntau dua.
Taw qhia rau Carbon Programming lus
Thaum Lub Xya Hli 19, 2022, Google tau tshaj tawm Carbon ua hom lus tshiab tshaj plaws uas nws tau tsim. Nws tau npaj los hloov C ++ sim.
Tsaug a generics system, uas tshem tawm qhov yuav tsum tau kuaj xyuas ob zaug rau txhua qhov instantiation, Carbon yuav raug tsim los ntawm lub hauv paus ntawm cov ntsiab lus niaj hnub programming.
Thaum kawg ntawm lub xyoo, tus tsim npaj yuav muab cov kev ua haujlwm yooj yim (version 0.1).
Nco kev ncaj ncees yog lub ntsiab tseem ceeb uas C ++ ploj lawm. Ib qho ntawm cov ntsiab lus tseem ceeb ntawm kev ruaj ntseg tsis zoo yog teeb meem nco txog kev nkag.
Txoj kev loj hlob ntawm dynamic bounds checks, ntau dua taug qab ntawm uninitialized xeev, thiab ib tug tag nrho default debug tsim hom yog tag nrho cov hom phiaj ntawm pab neeg Carbon. Cov neeg tsim khoom npaj tsim kom muaj kev ruaj ntseg Carbon subset nyob rau lub sijhawm.
Txawm li cas los xij, cov hauv qab no yog qee qhov tseem ceeb ntawm cov lus programming tshiab:
- Rau npe hom, siv cov lus qhia.
- Muaj zog generics nrog txhais cov tshev
- Hom tshwj xeeb nqa tawm interfaces
- cov kab lus qhia thiab cov qauv sau ntawv yooj yim
- Cov taw qhia tso cai rau kev nkag mus tsis txwv thiab hloov pauv.
- Tus nqi rau kev ua haujlwm input parameter yog nyeem nkaus xwb.
- Lub hauv paus namespace yog pob.
- APIs tuaj yeem raug xa mus siv lawv cov npe pob.
- Ib txoj hauv kev tau tshaj tawm los ntawm cov khoom tsis pom tseeb.
- Cov chav kawm yog zaum kawg los ntawm lub neej ntawd; tsuas muaj ib qho qub txeeg qub teg xwb
Cov yam ntxwv ntawm Carbon
Niaj hnub nimno thiab kev loj hlob
- Kev hloov kho tshiab ntawm Carbon versions yog qhov yooj yim thiab cov cuab yeej siv.
- Cov lus muaj zog txhawb nqa, tshwj xeeb tshaj yog tias koj tau siv C ++, thiab yooj yim kawm
- Kev nyab xeeb lub hauv paus thiab ib kauj ruam los ntawm kauj ruam mus rau lub cim xeeb-kev nyab xeeb subset
Zoo siab txais tos rau cov zej zog ntawm kev qhib qhov chaw
- Ib lub zej zog uas siv zog ua kom sov, txais, thiab caw
- Nws lub hom phiaj thiab qhov tseem ceeb yog qhov sib txawv thiab kev tswj hwm muaj zog
- Ib qho zoo tagnrho-hauv-ib lub tswv yim nrog lub compiler, cov tsev qiv ntawv, cov ntaub ntawv, cov cuab yeej, kev tswj pob, thiab lwm yam
Ceev thiab sib xws nrog C ++
- Ua haujlwm nrog cov C ++ code koj twb muaj, nrog rau cov qub txeeg qub teg thiab cov qauv
- Nrog LLVM, kev ua tau zoo piv rau C ++ thiab qib qis nkag mus rau cov khoom thiab chaw nyob
- Tsim kom ceev thiab scalable thiab sib haum nrog koj C ++ tsim systems uas twb muaj lawm
Vim li cas Google thiaj tsim Carbon programming lus?
Kev ua tau zoo-tseem ceeb software txuas ntxiv feem ntau sau rau hauv C ++, uas muaj ntau thiab nthuav cov codebases thiab kev nqis peev.
Txawm li cas los xij, nws tab tom muaj teeb meem nce qib thiab ua tau raws li qhov xav tau ntawm cov neeg tsim khoom raws li tau hais los saum toj no, feem ntau vim muaj txiaj ntsig ntau xyoo ntawm cov nuj nqis thev naus laus zis.
Nws yog qhov nyuaj heev los txhim kho C ++ vim tias cov nuj nqis kev txawj ntse nws tau nce ntxiv nrog rau cov teeb meem nrog nws cov txheej txheem evolution.
Txoj hauv kev zoo tshaj plaws los daws cov teeb meem no yog pib nrog lub hauv paus lus muaj zog, xws li cov txheej txheem niaj hnub no, cov qauv qauv qauv, thiab zoo ib yam, ncaj nraim syntax, tsis yog ncaj qha rau kev coj noj coj ua ntawm C lossis C ++.
Mus, Swift, Kotlin, Rust, thiab ntau lwm yam lus tam sim no twb muaj kev txhim kho zoo heev. Cov neeg tsim khoom uas muaj peev xwm siv ib yam lus tam sim no yuav tsum tau.
Hmoov tsis zoo, kev saws me nyuam thiab kev tsiv teb tsaws chaw los ntawm C ++ yog qhov cuam tshuam loj heev los ntawm cov qauv ntawm cov lus no. Cov teeb meem no suav nrog kev ua haujlwm nyiaj siv ua haujlwm thiab kev hloov kho rau software tsim idiomatic.
Carbon tsis yog ib qho kev sim maj mam txhim kho C ++; es, nws yog ib tug successor lus zoo. Nws lub hom phiaj yog ntawm C ++ kev sib cuam tshuam, nrog rau kev lees paub dav dav thiab kev tsiv teb tsaws rau cov neeg tsim khoom thiab cov codebases tam sim no siv C ++.
Ib hom lus hloov C ++ yuav tsum muaj:
- Kev ua tau zoo piv rau C ++ yog tus yam ntxwv tseem ceeb rau cov neeg tsim khoom.
- Txoj kev kawm tswj tau thiab qib kev paub zoo rau C ++ programmers
- Kev tsiv teb tsaws chaw uas tuaj yeem hloov tau thiab suav nrog qee qhov chaw-rau-qhov idiomatic C ++ code txhais lus.
- Cov kev nthuav qhia zoo sib xws thiab kev txhawb nqa rau kev tsim qauv thiab tsim cov software tam sim no.
- Kev sib cuam tshuam nrog C ++ uas yog seamless thiab bidirectional, tso cai rau txhua lub tsev qiv ntawv los txais yuav Carbon yam tsis tas yuav xa cov khoom seem.
Nrog rau lub tswv yim no, Google ntxiv rau cov ecosystem uas twb muaj lawm rau C ++ thiab suav nrog kev nqis peev tam sim no, codebases, thiab cov zej zog kev loj hlob.
Ob peb hom lus tau txais txoj hauv kev no rau ntau lub ecosystems, thiab Carbon nrhiav kev ua si zoo ib yam li C ++ hauv cov xwm txheej no:
- Java – Kotlin
- JavaScript – TypeScript
- C++ - Carbon
C++ VS Carbon Code
Cov pa roj carbon yuav tsum muaj qhov kev kawm qis yog tias koj yog tus tsim tawm C ++ lawm. Nws yog tsim los ntawm cov txheej txheem grammatical uas yuav tsum tau ua suab nrov thiab yooj yim nyeem thiab nkag siab.
Ib qho piv txwv ntawm C ++ code:
Cov Carbon code no sib raug rau:
Carbon Vs Rust
Lwm yam lus niaj hnub tsim los qhia kom ua tau raws li qhov yuav tsum tau ua ntawm kev siv lub cim xeeb-kev nyab xeeb yog hu ua Rust.
Yog li vim li cas ho tsis tsuas siv Rust?
Thaum qee qhov sib cav tias Rust, uas tau pib ua Mozilla qhov project thiab tom qab ntawd tau loj hlob kom muaj cov pej xeem loj hauv qab no, yog tus ua tiav rau C ++, Carruth tsis ntseeg yog tias qhov sib npaug tseem siv tau.
Rust yog undoubtedly ib tug zoo heev lus uas yuav pib ib tug tshiab project, tab sis raws li nws tsis muaj "bidirectional interoperability" ntawm hom lus xws li Java & Kotlin, nws yog ib qho nyuaj rau hloov mus rau nws maj mam.
Carruth tau hais lus qhuab qhia ntawm CPP North thiab txhawb cov neeg uas twb tau siv Rust kom ua li ntawd. Cov tsim tawm uas twb muaj qhov loj C ++ codebases uas nyuaj rau hloov mus rau Rust yuav tsum siv Carbon.
Tshwj xeeb, Carbon yog qhov Carruth hu ua "cov lus txuas ntxiv," uas yog tsim los rau saum cov ecosystem uas twb muaj lawm, hauv qhov piv txwv no C ++.
Rau lub hom phiaj ntawd, Carbon txhais tau tias ua tau tiav nrog C ++ code tam sim no, txawm tias nws muaj ntau lub hom phiaj nrog Rust, xws li pab cov programmer hauv kev tsim "kev ua haujlwm-kev siv tseem ceeb."
Tsis tas li ntawd, nws yog npaj kom txav los ntawm C ++ mus rau Carbon kom yooj yim li sai tau.
xaus
Thaum kawg, Cov neeg tsim cov lus Carbon tau siv zog los ua tib zoo mloog cov txheej txheem tsim. Txoj haujlwm tus lej yog muaj rau kev thov thiab khaws cia qhib rau github, thiab nws kab lis kev cai txhais tau tias suav nrog thiab qhib rau cov pej xeem ntiag tug thiab IT sector.
Pab pawg Carbon xav tias Carbon yuav tsum yog ib txoj haujlwm tswj hwm tus kheej uas tau tsav los ntawm zej zog thiab tsis yog ib txoj haujlwm txhawb nqa los ntawm Google txhawm rau txhim kho yav tom ntej.
Caruth hais ntxiv tias txawm tias muaj kev txaus siab los ntawm ntau lub lag luam IT, lub tswv yim no tseem nyob rau theem kev sim.
Sau ntawv cia Ncua