Yn in poging om de earbiedweardige, mar trage C++ te ferfangen, hawwe Google-ûndersikers in gloednije "eksperimintele" iepen boarne programmeartaal yntrodusearre mei de namme Carbon.
Carbon koe tsjinje as opfolger fan C ++, ien dy't in ienfâldich útgongspunt biedt foar ûntwikkelders nei in nijere taal dy't hjoeddeistige ûntwikkelingskonsepten oanpakt lykas ûnthâldfeiligens en generika.
Dit soe gelyk wêze oan hoe't Microsoft Typescript boude om JavaScript en Kotlin te aktualisearjen om swakkens yn Java te fersterkjen.
Google hat troch de jierren hinne in oantal programmeartalen ûntwikkele, wêrfan guon wichtige bekendheid en promininsje hawwe krigen.
Bygelyks, Golang (of gewoan Go) waard ûntwikkele om it meitsjen fan servers en ferspraat systemen te fasilitearjen en is dêrnei omearme troch it algemiene publyk.
De Dart programmear taal, dat waard makke as in JavaScript-ferfanger, waard net bekend oant de lansearring fan Flutter.
Chandler Carruth, in Google-meiwurker, presintearre syn idee foar in nije programmeartaal neamd Carbon op 19 july 2022, op 'e Cpp North-konvinsje yn Toronto, neffens Conor Hoekstra, dy't bywenne en de dia's opnaam.
Om it senario yn te stellen, demonstrearre Carruth hoe't ferskate fan 'e meast populêre programmeartalen fan hjoed de dei neikommelingen hiene dy't ûntwikkelders yn steat meitsje om fluch produktyf te wêzen en ek te profitearjen fan hjoeddeistich taalûntwerp.
Litte wy begjinne mei in algemiene yntroduksje fan 'e Carbon-programmearringstaal, ynklusyf syn funksjes, it doel fan Google's útfining dêrfan, en mear.
Yntroduksje ta Carbon Programming taal
Op 19 july 2022 iepenbiere Google Carbon as de nijste programmeartaal dy't it hie makke. It wie bedoeld om C ++ eksperiminteel te ferfangen.
Mei tank oan in generika systeem, dy't de needsaak elimineert om de koade foar elke ynstânsje dûbel te kontrolearjen, sil Carbon wurde oanlein op in stifting fan moderne programmearringskonsepten.
Oan 'e ein fan it jier is it ûntwerp fan plan om in basis operative ferzje te leverjen (ferzje 0.1).
Unthâld yntegriteit is in krúsjaal elemint dat C ++ mist. Ien fan 'e primêre boarnen fan feiligensflaters is problemen mei ûnthâld tagong.
De ûntwikkeling fan dynamyske grinzenkontrôles, grutter folgjen fan net-initialisearre steaten, en in yngeande standertdebug-boumodus binne allegear doelen fan it Carbon-team. De makkers binne fan doel in feilige Carbon-subset oer de tiid te meitsjen.
De folgjende binne lykwols wat krúsjale skaaimerken fan 'e nije programmeartaal:
- Om typen te neamen, brûk útdrukkingen.
- Sterke generika mei definysjekontrôles
- Typen spesifyk útfiere ynterfaces
- ynlieding phrases en basis grammatika
- Pointers tastean foar ûnbeheinde tagong en mutaasje.
- Wearden foar funksje-ynfierparameters binne allinich lêzen.
- De root nammeromte is it pakket.
- API's kinne wurde ymporteare mei har pakketnammen.
- In metoade wurdt ferklearre fia in eksplisite objektparameter.
- Klassen binne standert definityf; der is mar ien erfskip
Eigenskippen fan Carbon
Modern en ûntwikkeljen
- Upgrades tusken Carbon ferzjes binne ienfâldich en ark-basearre.
- Sterke taalûnderfining, foaral as jo C++ hawwe brûkt, en ienfâldich om te learen
- Feiligere fûneminten en in stap-foar-stap oanpak fan in ûnthâld-feilige subset
Ferwolkomje de mienskip fan iepen boarne
- In mienskip dy't stribbet om waarm, akseptearjend en útnoegjend te wêzen
- De doelen en prioriteiten dêrfan binne dúdlik en sterk bestjoer
- In alles-yn-ien-strategy mei in kompilator, biblioteken, dokumintaasje, ark, pakketbehear, en mear
Fluch en kompatibel mei C ++
- Wurkje tegearre mei de C ++ koade do hast al, ynklusyf erfskip en sjabloanen
- Mei LLVM, prestaasjes fergelykber mei C ++ en leech nivo tagong ta bits en adressen
- Bouwen dy't fluch en skalberber binne en kompatibel binne mei jo besteande C++-bouwsystemen
Wêrom hat Google de programmeartaal Carbon boud?
Prestaasje-krityske software bliuwt meast skreaun yn C ++, dat hat enoarme en útwreidzjen codebases en ynvestearrings.
It hat lykwols problemen om foarút te gean en te foldwaan oan 'e easken fan ûntwikkelders lykas hjirboppe neamd, foar in grut part fanwegen it sammeljen fan jierren fan technologyske skuld.
It is heul lestich om C ++ stadichoan te ferbetterjen fanwegen de technyske skuld dy't it hat sammele as swierrichheden mei syn evolúsjeproses.
De ideale oanpak foar it oplossen fan dizze problemen is om te begjinnen mei in sterke taalbasis, lykas in hjoeddeistich generikasysteem, modulêre koadestruktuer, en konsekwinte, rjochtlinige syntaksis, ynstee fan direkt de tradysje fan C of C++ te erven.
Go, Swift, Kotlin, Rust, en folle mear oare hjoeddeistige talen biede al in treflike ûntwikkelingsûnderfining. Untwikkelders dy't yn steat binne ien fan dizze hjoeddeistige talen te brûken, moatte dat dwaan.
Spitigernôch wurde oannimmen en migraasje fan C++ slim hindere troch de ûntwerpen fan dizze talen. Dizze obstakels omfetsje prestaasjesoverhead en wizigingen oan it idiomatyske ûntwerp fan 'e software.
Koalstof is net in besykjen om stadichoan ferbetterje C ++; leaver, it is in opfolger taal strategy. De fokus is op C++ ynteroperabiliteit, lykas wiidferspraat akseptaasje en migraasje foar ûntwikkelders en koadebases dy't op it stuit C++ brûke.
In C++ ferfangende taal moat hawwe:
- Prestaasje fergelykber mei C ++ is in krúsjale karakteristyk foar ûntwikkelders.
- In behearbere learkurve en nivo fan bekendheid foar C ++ programmeurs
- Migraasje dy't skalberber is en omfettet wat boarne-nei-boarne idiomatyske C++-koade-oersetting.
- Fergelykbere ekspressiviteit en stipe foar de arsjitektuer en ûntwerp fan hjoeddeistige software.
- Ynteroperabiliteit mei C ++ dat is naadloos en bidirectioneel, wêrtroch't elke bibleteek Carbon kin oannimme sûnder de rest fan 'e stapel te hoegjen.
Mei dizze strategy foeget Google ta oan it ekosysteem dat al bestiet foar C ++ en omfettet hjoeddeistige ynvestearrings, koadebases en ûntwikkelingsmienskippen.
In pear talen hawwe dizze oanpak foar ferskate ekosystemen oannaam, en Carbon besiket in fergelykbere funksje te spyljen as C++ yn dizze situaasjes:
- Java - Kotlin
- JavaScript - TypeScript
- C++ - Koalstof
C ++ VS Carbon Code
Carbon moat in lege learkurve hawwe as jo al in C ++-ûntwikkelder binne. It is gearstald út in fêste set fan grammatikale konstruksjes dy't natuerlik klinke moatte en ienfâldich wêze moatte om te lêzen en te begripen.
In foarbyld fan C++-koade:
Dizze Carbon-koade komt oerien mei:
Koalstof tsjin Rust
In oare hjoeddeistige taal dy't útdruklik ûntworpen is om te foldwaan oan 'e easken fan ûnthâldfeilige prestaasjesapplikaasjes hjit Rust.
Dus wêrom net gewoan Rust brûke?
Wylst guon beweare dat Rust, dy't begon as in Mozilla-projekt en neitiid útgroeid is ta in grutte publyksfolging, is in opfolger fan C ++, twifelet Carruth oft de parallel noch jildich is.
Rust is sûnder mis in fantastyske taal om in nij projekt mei te begjinnen, mar om't it de "bidireksjonele ynteroperabiliteit" fan talen lykas Java & Kotlin mist, is it útdaagjend om der stadichoan oer te gean.
Carruth joech in lêzing by CPP Noard en moedige minsken oan dy't al Rust brûkten om dat troch te gean. Untwikkelders dy't al grutte C++-koadebases hawwe dy't útdaagjend binne om te konvertearjen nei Rust moatte Carbon brûke.
Benammen Carbon is wat Carruth oantsjut as in "opfolgertaal", dy't is konstruearre boppe op in besteand ekosysteem, yn dit gefal C++.
Foar dat doel is Carbon bedoeld om folslein kompatibel te wêzen mei hjoeddeistige C++-koade, sels as it in protte doelen hat mei Rust, lykas it assistearjen fan programmeurs by it meitsjen fan "prestaasjeskrityske applikaasjes."
Derneist is it bedoeld om it ferpleatsen fan C ++ nei Carbon sa ienfâldich mooglik te meitsjen.
Konklúzje
Uteinlik hawwe makkers fan Carbon-taal in poging makke om omtinken te jaan oan it skeppingsproses. De koade fan it projekt is beskikber foar oanfraach en iepen opslein op Github, en har kultuer wurdt definiearre as ynklusyf en iepen foar sawol partikuliere boargers as de IT-sektor.
It Carbon-team tocht dat Carbon in autonoom projekt moast wurde dreaun troch de mienskip en net allinich in projekt oandreaun troch Google om yn 'e takomst te ûntwikkeljen.
Caruth tafoege dat nettsjinsteande belangstelling fan in oantal IT-bedriuwen, dit konsept noch yn it eksperimintele stadium is.
Leave a Reply