Googlen tutkijat ovat ottaneet käyttöön upouuden "kokeellisen" avoimen lähdekoodin ohjelmointikielen, nimeltään Carbon.
Carbon voisi toimia C++:n seuraajakielenä, joka tarjoaa kehittäjille yksinkertaisen lähtökohdan uudempaan kieleen, joka käsittelee nykyaikaisia kehityskonsepteja, kuten muistiturvallisuutta ja geneerisiä aineita.
Tämä olisi samanlainen kuin Microsoft rakensi Typescriptin päivittämään JavaScriptin ja Kotlinin vahvistamaan Java-puutteita.
Google on kehittänyt useita ohjelmointikieliä vuosien varrella, joista osa on saavuttanut huomattavaa mainetta ja näkyvyyttä.
Esimerkiksi Golang (tai vain Go) kehitettiin palvelimien ja hajautettujen järjestelmien luomisen helpottamiseksi, ja se on sittemmin omaksunut suuren yleisön.
Dart ohjelmointikieli, joka luotiin JavaScriptin korvikkeena, tuli tunnetuksi vasta Flutterin julkaisussa.
Chandler Carruth, Googlen työntekijä, esitteli ideansa uudesta ohjelmointikielestä nimeltä Carbon 19. heinäkuuta 2022 Cpp North -kongressissa Torontossa. Conor Hoekstran mukaan, joka osallistui ja äänitti diat.
Skenaarion asettamiseksi Carruth osoitti, kuinka useilla tämän päivän suosituimmista ohjelmointikielistä oli jälkeläisiä, joiden avulla kehittäjät voivat olla nopeasti tuottavia ja myös hyötyä nykyaikaisesta kielisuunnittelusta.
Aloitetaan Carbon-ohjelmointikielen yleisellä esittelyllä, mukaan lukien sen ominaisuudet, Googlen keksinnän tarkoitus ja paljon muuta.
Johdatus Carbon-ohjelmointikieleen
19. heinäkuuta 2022 Google julkisti Carbonin uusimpana ohjelmointikielenä. Sen oli tarkoitus korvata C++ kokeellisesti.
Kiitos a geneerinen järjestelmä, mikä eliminoi tarpeen tarkistaa jokaisen ilmentymän koodia uudelleen, Carbon rakennetaan nykyaikaisten ohjelmointikonseptien pohjalle.
Vuoden loppuun mennessä suunnittelussa on tarkoitus toimittaa peruskäyttöinen versio (versio 0.1).
Muistin eheys on tärkeä elementti, joka puuttuu C++:sta. Yksi tärkeimmistä tietoturvaongelmien lähteistä on muistin käyttöongelmat.
Dynaamisten rajojen tarkistusten kehittäminen, alustamattomien tilojen parempi seuranta ja perusteellinen oletusvirheenkorjaustila ovat kaikki Carbon-tiimin tavoitteita. Tekijät aikovat luoda turvallisen hiilidioksidin osajoukon ajan myötä.
Seuraavat ovat kuitenkin joitain uuden ohjelmointikielen tärkeitä ominaisuuksia:
- Käytä ilmaisuja nimeäksesi tyypit.
- Vahvat geneeriset lääkkeet määritelmätarkistuksilla
- Tyypit suorittavat erityisesti rajapintoja
- johdantolauseita ja peruskielioppia
- Osoittimet mahdollistavat rajoittamattoman pääsyn ja mutaation.
- Toimintojen syöttöparametrien arvot ovat vain luku -tilassa.
- Päänimiavaruus on paketti.
- API:t voidaan tuoda käyttämällä niiden paketin nimiä.
- Menetelmä ilmoitetaan eksplisiittisen objektiparametrin kautta.
- Luokat ovat oletuksena lopullisia; on vain yksi perintö
Hiilen ominaisuudet
Moderni ja kehittyvä
- Päivitykset Carbon-versioiden välillä ovat yksinkertaisia ja työkalupohjaisia.
- Vahvat kieliperustat, varsinkin jos olet käyttänyt C++:aa, ja helppo oppia
- Turvallisempi perusta ja vaiheittainen lähestymistapa muistiturvalliseen osajoukkoon
Tervetuloa avoimen lähdekoodin yhteisöön
- Yhteisö, joka pyrkii olemaan lämmin, hyväksyvä ja kutsuva
- Sen tavoitteet ja painopisteet ovat selkeät ja vahvat hallintotavat
- All-in-one-strategia, jossa on kääntäjä, kirjastot, dokumentaatio, työkalut, paketinhallinta ja paljon muuta
Nopea ja yhteensopiva C++:n kanssa
- Työskentele yhdessä C ++ -koodi sinulla jo on, mukaan lukien perintö ja mallit
- LLVM:n avulla suorituskyky on verrattavissa C++:aan ja matalan tason pääsy bitteihin ja osoitteisiin
- Koonnit ovat nopeita ja skaalautuvia ja yhteensopivia olemassa olevien C++-koontijärjestelmien kanssa
Miksi Google loi Carbon-ohjelmointikielen?
Suorituskykykriittiset ohjelmistot kirjoitetaan edelleen pääosin C++-kielellä, jolla on valtavat ja laajenevat koodikannat ja investoinnit.
Sillä on kuitenkin vaikeuksia edistyä ja vastata kehittäjien vaatimuksiin, kuten edellä mainittiin, suurelta osin vuosien mittaisen teknologisen velan keräämisen vuoksi.
C++:n asteittainen parantaminen on äärimmäisen vaikeaa sen kertyneen teknisen velan ja sen kehitysprosessin vaikeuksien vuoksi.
Ihanteellinen lähestymistapa näiden ongelmien ratkaisemiseen on aloittaa vahvalla kieliperustalla, kuten nykyaikaisella geneerisellä järjestelmällä, modulaarisella koodirakenteella ja johdonmukaisella, suoraviivaisella syntaksilla, sen sijaan, että periisi suoraan C- tai C++-perinteitä.
Go, Swift, Kotlin, Rust ja monet muut nykykielet tarjoavat jo erinomaisen kehityskokemuksen. Kehittäjien, jotka pystyvät käyttämään jotakin näistä nykyisistä kielistä, pitäisi.
Valitettavasti näiden kielten suunnittelu haittaa vakavasti käyttöönottoa ja siirtymistä C++:sta. Näitä esteitä ovat suorituskyvyn lisäkustannukset ja ohjelmiston idiomaattisen suunnittelun muutokset.
Hiili ei ole yritys asteittain parantaa C++:aa; pikemminkin se on seuraajakielistrategia. Sen painopiste on C++:n yhteentoimivuudessa sekä C++:aa tällä hetkellä käyttävien kehittäjien ja koodikantojen laajassa hyväksymisessä ja siirrossa.
C++-korvauskielessä on oltava:
- C++:aan verrattavissa oleva suorituskyky on kehittäjille tärkeä ominaisuus.
- Hallittava oppimiskäyrä ja perehtyneisyys C++-ohjelmoijille
- Siirto, joka on skaalautuva ja sisältää jonkin verran idiomaattista C++-koodin käännöstä lähteestä lähteeseen.
- Samanlainen ilmaisukyky ja tuki nykyisten ohjelmistojen arkkitehtuurille ja suunnittelulle.
- Yhteentoimivuus C++:n kanssa, joka on saumaton ja kaksisuuntainen, mikä mahdollistaa minkä tahansa kirjaston omaksuvan Carbonin ilman, että sen tarvitsee siirtää loput pinosta.
Tällä strategialla Google lisää C++:lle jo olemassa olevaa ekosysteemiä ja sisältää nykyiset sijoitukset, koodikannat ja kehitysyhteisöt.
Muutamat kielet ovat omaksuneet tämän lähestymistavan eri ekosysteemeissä, ja Carbon pyrkii toimimaan samankaltaisena tehtävänä kuin C++ näissä tilanteissa:
- Java – Kotlin
- JavaScript – TypeScript
- C++ – hiili
C++ VS hiilikoodi
Carbonilla pitäisi olla alhainen oppimiskäyrä, jos olet jo C++-kehittäjä. Se koostuu kiinteästä joukosta kieliopillisia rakenteita, joiden pitäisi kuulostaa luonnolliselta ja olla helppolukuisia ja ymmärrettäviä.
Esimerkki C++-koodista:
Tämä hiilikoodi vastaa:
Hiili vs ruoste
Toinen nykyaikainen kieli, joka on suunniteltu nimenomaan täyttämään muistia säästävien suorituskykysovellusten vaatimukset, on nimeltään Rust.
Joten miksi et vain käytä rustia?
Vaikka jotkut väittävät, että Rust, joka alkoi Mozilla-projektina ja on sittemmin kasvanut suureksi yleisöksi, on C++:n seuraaja, Carruth epäilee, onko rinnakkaisuus edelleen voimassa.
Rust on epäilemättä fantastinen kieli uuden projektin aloittamiseen, mutta koska siitä puuttuu Javan ja Kotlinin kaltaisten kielten "kaksisuuntainen yhteentoimivuus", siihen on haastavaa siirtyä asteittain.
Carruth piti luennon CPP Northissa ja rohkaisi ihmisiä, jotka jo käyttivät Rustia, jatkamaan niin. Kehittäjien, joilla on jo mittavat C++-koodikannat, joiden muuntaminen Rustiksi on haastavaa, tulisi käyttää Carbonia.
Erityisesti Carbon on se, mitä Carruth kutsui "seuraajakieleksi", joka on rakennettu olemassa olevan ekosysteemin, tässä tapauksessa C++, päälle.
Tätä tarkoitusta varten Carbonin on tarkoitus olla täysin yhteensopiva nykyisen C++-koodin kanssa, vaikka sillä on monia tavoitteita Rustin kanssa, kuten ohjelmoijien avustaminen "suorituskykykriittisten sovellusten" luomisessa.
Lisäksi siirtyminen C++:sta Carboniin on tarkoitus tehdä mahdollisimman yksinkertaiseksi.
Yhteenveto
Lopuksi Carbon-kielen tekijät yrittivät kiinnittää huomiota luomisprosessiin. Projektin koodi on saatavilla pyynnöstä ja tallennettu avoimesti Github, ja sen kulttuuri määritellään osallistavaksi ja avoimeksi sekä yksityisille kansalaisille että IT-sektorille.
Carbon-tiimi katsoi, että Carbonin on oltava itsenäinen yhteisön vetämä projekti eikä vain Googlen ruokkima projekti, jotta se voisi kehittyä tulevaisuudessa.
Caruth lisäsi, että useiden IT-yritysten kiinnostuksesta huolimatta tämä konsepti on vielä kokeiluvaiheessa.
Jätä vastaus