Edukien aurkibidea[Ezkutatu][Erakutsi]
C++ agurgarri baina geldoa ordezkatzeko ahaleginean, Google ikertzaileek kode irekiko programazio-lengoaia "esperimental" berri bat aurkeztu dute Carbon izenekoa.
Carbon C++-ren ondorengo lengoaia izan liteke, garatzaileei memoria-segurtasuna eta generikoak bezalako garapen-kontzeptu garaikideei jorratzen dien lengoaia berriago bati abiapuntu sinple bat eskaintzen diena.
Microsoft-ek Typescript JavaScript eta Kotlin eguneratzeko Java-ren ahuleziak indartzeko moduaren antzekoa izango litzateke.
Google-k hainbat programazio-lengoaia garatu ditu urteetan zehar, eta horietako batzuek ospe eta protagonismo handia lortu dute.
Esaterako, Golang (edo besterik gabe Go) zerbitzariak eta sistema banatuak sortzea errazteko garatu zen eta, ondoren, publiko orokorrak bereganatu du.
Dardo programazio hizkuntza, JavaScript ordezko gisa sortu zena, ez zen ezagun egin Flutter abian jarri arte.
Chandler Carruth-ek, Google-ko langileak, Carbon izeneko programazio-lengoaia berri baten ideia aurkeztu zuen 19ko uztailaren 2022an, Torontoko Cpp North konbentzioan, Conor Hoekstraren arabera, bertaratu eta diapositibak grabatu zituen.
Eszenatokia ezartzeko, Carruth-ek frogatu zuen nola gaur egungo programazio-lengoaiarik gustukoenek izan dituzten ondorengoak, garatzaileek azkar produktiboak izan daitezen eta hizkuntza-diseinu garaikideari etekina ateratzeko.
Has gaitezen Carbon programazio-lengoaiaren sarrera orokor batekin, bere ezaugarriak, Google-k asmatzearen helburua eta abar barne.
Carbon Programazio lengoaiaren sarrera
19ko uztailaren 2022an, Googlek Carbon aurkeztu zuen sortu zuen programazio-lengoaia berriena zela. C++ esperimentalki ordezkatu nahi zen.
Eskerrik asko sistema generikoak, instantziazio bakoitzeko kodea bikoiztu beharra ezabatzen duena, Carbon programazio-kontzeptu modernoen oinarrian eraikiko da.
Urte amaierarako, diseinuak oinarrizko bertsio operatibo bat eskaintzea aurreikusten du (0.1 bertsioa).
Memoriaren osotasuna C++ falta den elementu erabakigarria da. Segurtasun akatsen iturri nagusietako bat memoria atzitzeko arazoak dira.
Muga dinamikoen egiaztapenak garatzea, hasieratu gabeko egoeren jarraipen handiagoa eta arazketa-eraikitze modu lehenetsi zehatza dira Carbon taldearen helburuak. Sortzaileek denboran zehar Karbono azpimultzo seguru bat sortzeko asmoa dute.
Hala ere, honako hauek dira programazio-lengoaia berriaren funtsezko ezaugarri batzuk:
- Motak izendatzeko, erabili esamoldeak.
- Generiko sendoak definizio egiaztapenekin
- Motek berariaz egiten dituzte interfazeak
- sarrerako esaldiak eta oinarrizko gramatika
- Erakusleek mugarik gabeko sarbidea eta mutazioa ahalbidetzen dute.
- Funtzio sarrerako parametroen balioak irakurtzeko soilik dira.
- Erroko izen-espazioa paketea da.
- APIak beren paketeen izenak erabiliz inporta daitezke.
- Metodo bat objektu-parametro esplizitu baten bidez deklaratzen da.
- Klaseak behin betikoak dira berez; ondare bakarra dago
Karbonoaren ezaugarriak
Modernoa eta garatzen ari dena
- Carbon bertsioen arteko bertsio berritzeak sinpleak eta tresnan oinarritutakoak dira.
- Hizkuntzaren oinarri sendoak, batez ere C++ erabili baduzu, eta ikasteko erraza
- Oinarri seguruagoak eta memoria segururako azpimultzo baterako urratsez urrats hurbiltzea
Kode irekiko komunitateari ongietorria ematea
- Epela, onargarria eta gonbidatzen ahalegintzen den komunitatea
- Bere helburuak eta lehentasunak gobernu desberdinak eta sendoak dira
- Bat-bateko estrategia konpilatzailea, liburutegiak, dokumentazioa, tresnak, paketeen kudeaketa eta abarrekin
Azkarra eta C++-rekin bateragarria
- rekin batera lan egin C ++ kodea dagoeneko badituzu, herentzia eta txantiloiak barne
- LLVM-rekin, C++-ren errendimendua eta maila baxuko sarbidea bit eta helbideetarako
- Azkarrak eta eskalagarriak eta lehendik dituzun C++ eraikitze sistemekin bateragarriak diren eraikuntzak
Zergatik eraiki zuen Google-k Carbon programazio-lengoaia?
Errendimendurako software kritikoak C++-n idazten jarraitzen du gehienbat, kode-oinarri eta inbertsio izugarriak eta zabaltzen dituena.
Hala ere, arazoak izaten ari da aurrera egiteko eta garatzaileen eskaerei erantzuteko arestian aipatu bezala, neurri handi batean urteetako zor teknologikoa pilatzeagatik.
Izugarri zaila da C++ mailaz hobetzea, sortutako zor teknikoagatik eta bere eboluzio-prozesuarekin dituen zailtasunengatik.
Arazo hauek konpontzeko planteamendu aproposa hizkuntzaren oinarri sendo batekin hastea da, hala nola, sistema generiko garaikide bat, kode-egitura modularra eta sintaxi koherentea eta zuzena, C edo C++-ren tradizioa zuzenean heredatu beharrean.
Go, Swift, Kotlin, Rust eta beste hizkuntza garaikide askok garapen esperientzia bikaina eskaintzen dute dagoeneko. Gaur egungo hizkuntza horietako bat erabiltzeko gai diren garatzaileek egin beharko lukete.
Zoritxarrez, C++-tik hartzea eta migratzea oso oztopatzen dute hizkuntza horien diseinuek. Oztopo horien artean, errendimenduaren gainkostua eta softwarearen diseinu idiomatikoan aldaketak daude.
Carbon ez da pixkanaka C++ hobetzeko saiakera bat; aitzitik, ondorengo hizkuntza estrategia da. Bere ardatza C++ elkarreragingarritasuna da, baita gaur egun C++ erabiltzen duten garatzaileentzako eta kode-oinarrientzako onarpen eta migrazio hedatua ere.
C++ ordezko hizkuntza batek izan behar du:
- C++-ren pareko errendimendua funtsezko ezaugarria da garatzaileentzat.
- Ikasketa kurba eta ezagutza maila kudeagarria C++ programatzaileentzat
- Eskalagarria den migrazioa eta iturburutik iturrirako C++ kode idiomatikoen itzulpena barne hartzen duena.
- Egungo softwarearen arkitektura eta diseinurako antzeko adierazkortasuna eta euskarria.
- Elkarreragingarritasuna C++-rekin bateragarria eta bi norabidekoa dena, edozein liburutegik Carbon hartzea ahalbidetzen duena pilaren gainerako eraman beharrik gabe.
Estrategia honekin, Googlek C++-rako dagoen ekosistema gehitzen du eta gaur egungo inbertsioak, kode-oinarriak eta garapen-komunitateak sartzen ditu.
Hizkuntza gutxi batzuek planteamendu hau hartu dute hainbat ekosistemetarako, eta Carbon-ek C++-ren antzeko funtzioa bete nahi du egoera hauetan:
- Java - Kotlin
- JavaScript - TypeScript
- C++ - Karbonoa
C++ VS Karbono kodea
Karbonoak ikaskuntza-kurba baxua izan beharko luke dagoeneko C++ garatzailea bazara. Eraikuntza gramatikal multzo finko batez osatua dago, berezko soinua izan behar duena eta irakurtzeko eta ulertzeko erraza izan behar duena.
C++ kodearen adibide bat:
Karbono kode hau honi dagokio:
Karbonoa Vs Herdoila
Memoria seguruko errendimendu-aplikazioen eskakizunak betetzeko espresuki diseinatutako beste hizkuntza garaikide bat Rust deitzen da.
Beraz, zergatik ez erabili Rust?
Batzuek Rust, Mozilla proiektu gisa hasi eta gero jarraitzaile publiko handi bat izan arte, C++-ren oinordekoa dela dioten arren, Carruth-ek zalantzan jartzen du paraleloa oraindik balio ote den.
Rust, zalantzarik gabe, proiektu berri bat hasteko lengoaia zoragarria da, baina Java eta Kotlin bezalako lengoaien "bidirekzioko elkarreragingarritasuna" ez duenez, zaila da pixkanaka horretara igarotzea.
Carruth-ek hitzaldi bat eman zuen CPP North-en eta lehendik Rust erabiltzen ari ziren jendea horrela jarraitzera animatu zuen. Rust-era bihurtzeko erronka duten C++ kode-oinarri handiak dituzten garatzaileek Carbon erabili beharko lukete.
Bereziki, Carbon Carruth-ek "oinordeko hizkuntza" gisa aipatzen zuena, lehendik dagoen ekosistema baten gainean eraikitakoa da, kasu honetan C++.
Horretarako, Carbon egungo C++ kodearekin guztiz bateragarria izan nahi du, nahiz eta Rust-ekin helburu asko izan, hala nola programatzaileei "errendimendurako aplikazio kritikoak" sortzen laguntzea.
Horrez gain, C++-tik Carbonera pasatzea ahalik eta errazena egin nahi da.
Ondorioa
Azkenik, Carbon language sortzaileek sorkuntza prozesuari arreta jartzeko ahalegina egin zuten. Proiektuaren kodea eskuragarri dago eskaera egiteko eta modu irekian gordetzen da Github, eta bere kultura inklusibotzat eta irekita dago herritar pribatuentzat zein informatika sektorearentzat.
Carbon taldeak pentsatu zuen Carbon komunitateak bultzatutako proiektu autonomo bat izan behar zuela eta ez soilik Googlek bultzatutako proiektu bat etorkizunean garatzeko.
Caruth-ek gaineratu zuen IT negozio batzuen interesa izan arren, kontzeptu hau fase esperimentalean dagoela oraindik.
Utzi erantzun bat