Püüdes asendada auväärset, kuid loid C++, on Google'i teadlased kasutusele võtnud uhiuue "eksperimentaalse" avatud lähtekoodiga programmeerimiskeele nimega Carbon.
Carbon võiks olla C++ järeltulija, mis annab arendajatele lihtsa lähtepunkti uuemale keelele, mis käsitleb tänapäevaseid arenduskontseptsioone, nagu mäluohutus ja geneerilised ravimid.
See sarnaneks sellega, kuidas Microsoft lõi JavaScripti värskendamiseks Typescripti ja Java nõrkade külgede tugevdamiseks Kotlini.
Google on aastate jooksul välja töötanud mitmeid programmeerimiskeeli, millest mõned on kogunud märkimisväärset tuntust ja silmapaistvust.
Näiteks Golang (või lihtsalt Go) töötati välja serverite ja hajutatud süsteemide loomise hõlbustamiseks ning on hiljem üldsusele omaks võtnud.
Noolemäng programmeerimiskeel, mis loodi JavaScripti aseainena, sai tuntuks alles Flutteri käivitamisel.
Google'i töötaja Chandler Carruth esitles oma ideed uue programmeerimiskeele kohta nimega Carbon 19. juulil 2022 Torontos Cpp Northi konverentsil. Conor Hoekstra sõnul, kes osales ja salvestas slaide.
Stsenaariumi paika panemiseks demonstreeris Carruth, kuidas mitmel tänapäeva kõige populaarsemal programmeerimiskeelel on järeltulijad, mis võimaldavad arendajatel kiiresti produktiivsust saada ja kasu saada ka kaasaegsest keelekujundusest.
Alustame Carboni programmeerimiskeele üldise tutvustusega, sealhulgas selle funktsioonide, Google'i selle leiutamise eesmärgi ja muuga.
Sissejuhatus süsiniku programmeerimiskeelde
19. juulil 2022 avalikustas Google Carboni kui uusima enda loodud programmeerimiskeele. Selle eesmärk oli asendada eksperimentaalselt C++.
Tänu a geneeriliste ravimite süsteem, mis välistab vajaduse iga korduse koodi üle kontrollida. Carbon konstrueeritakse kaasaegsete programmeerimiskontseptsioonide alusel.
Aasta lõpuks plaanitakse välja töötada baasversioon (versioon 0.1).
Mälu terviklikkus on ülioluline element, millest C++ puudub. Üks peamisi turvavigade allikaid on mälu juurdepääsu probleemid.
Dünaamiliste piiride kontrollide arendamine, initsialiseerimata olekute parem jälgimine ja põhjalik vaikesilumisrežiim on kõik Carboni meeskonna eesmärgid. Loojad kavatsevad aja jooksul luua turvalise süsiniku alamhulga.
Järgmised on aga mõned uue programmeerimiskeele olulised omadused:
- Tüüpide nimetamiseks kasutage väljendeid.
- Tugevad geneerilised ravimid definitsioonikontrollidega
- Tüübid teostavad spetsiaalselt liideseid
- sissejuhatavad fraasid ja põhiline grammatika
- Osutajad võimaldavad piiramatut juurdepääsu ja mutatsiooni.
- Funktsiooni sisendparameetrite väärtused on kirjutuskaitstud.
- Juurnimeruum on pakett.
- API-sid saab importida nende paketinimede abil.
- Meetod deklareeritakse selgesõnalise objektiparameetri kaudu.
- Klassid on vaikimisi lõplikud; on ainult üks pärand
Süsiniku omadused
Kaasaegne ja arenev
- Carboni versioonide versiooniuuendused on lihtsad ja tööriistapõhised.
- Tugev keeleline alus, eriti kui olete kasutanud C++, ja lihtne õppida
- Ohutumad alused ja samm-sammuline lähenemine mälukindlale alamhulgale
Avatud lähtekoodiga kogukonna tervitamine
- Kogukond, mis püüab olla soe, aktsepteeriv ja kutsuv
- Selle eesmärgid ja prioriteedid on selged ja tugevad valitsemisviisid
- Kõik-ühes strateegia koos kompilaatori, teekide, dokumentatsiooni, tööriistade, paketihalduse ja muuga
Kiire ja ühildub C++-ga
- Töötage koos C ++ kood teil juba on, sealhulgas pärand ja mallid
- LLVM-iga on C++-ga võrreldav jõudlus ja madal juurdepääs bittidele ja aadressidele
- Järgid, mis on kiired ja skaleeritavad ning ühilduvad teie olemasolevate C++ ehitussüsteemidega
Miks Google lõi programmeerimiskeele Carbon?
Jõudluskriitiline tarkvara on jätkuvalt peamiselt kirjutatud C++ keeles, millel on tohutult ja laienevad koodibaasid ja investeeringud.
Siiski on sellel raskusi edenemise ja arendajate nõudmiste täitmisega, nagu eespool mainitud, suuresti tänu aastatepikkuse tehnoloogilise võla kogumisele.
C++-i järkjärguline täiustamine on ülimalt keeruline nii kogunenud tehnilise võla kui ka selle arendusprotsessiga seotud raskuste tõttu.
Ideaalne lähenemisviis nende probleemide lahendamiseks on alustada tugevast keelealusest, nagu kaasaegne geneeriline süsteem, modulaarne koodistruktuur ja järjekindel, sirgjooneline süntaks, selle asemel, et pärida otse C või C++ traditsiooni.
Go, Swift, Kotlin, Rust ja paljud teised kaasaegsed keeled pakuvad juba silmapaistvat arenduskogemust. Arendajad, kes on võimelised kasutama mõnda neist praegustest keeltest, peaksid seda tegema.
Kahjuks takistavad nende keelte kujundused tõsiselt C++ kasutuselevõttu ja üleminekut. Need takistused hõlmavad jõudlust ja tarkvara idiomaatilise disaini muudatusi.
Süsinik ei ole katse järk-järgult parandada C++; pigem on see keelestrateegia järglane. Selle fookuses on C++ koostalitlusvõime, aga ka praegu C++ kasutavate arendajate ja koodibaaside laialdane aktsepteerimine ja migratsioon.
C++ asenduskeeles peab olema:
- C++-ga võrreldav jõudlus on arendajate jaoks ülioluline omadus.
- Hallatav õppimiskõver ja teadmiste tase C++ programmeerijatele
- Migratsioon, mis on skaleeritav ja sisaldab idiomaatilist C++-koodi tõlget allikast allikasse.
- Sarnane väljendusvõime ja tugi praeguse tarkvara arhitektuurile ja disainile.
- Koostalitlusvõime C++-ga, mis on sujuv ja kahesuunaline, võimaldades igal raamatukogul kasutada Carbonit, ilma et peaks ülejäänud pinu portima.
Selle strateegiaga lisab Google C++ jaoks juba olemasoleva ökosüsteemi ning hõlmab praeguseid investeeringuid, koodibaase ja arenduskogukondi.
Mõned keeled on selle lähenemisviisi kasutanud erinevate ökosüsteemide jaoks ja Carbon püüab täita C++-ga sarnast funktsiooni järgmistes olukordades:
- Java – Kotlin
- JavaScript – TypeScript
- C++ – süsinik
C++ VS süsinikukood
Kui olete juba C++ arendaja, peaks Carbonil olema madal õppimiskõver. See koosneb kindlast grammatiliste konstruktsioonide komplektist, mis peaksid kõlama loomulikult ning olema kergesti loetavad ja arusaadavad.
C++ koodi näide:
See süsinikukood vastab:
Süsinik vs rooste
Teine kaasaegne keel, mis on loodud spetsiaalselt mälukindlate jõudlusrakenduste nõuete täitmiseks, on Rust.
Miks mitte siis lihtsalt Rusti kasutada?
Kuigi mõned väidavad, et Rust, mis sai alguse Mozilla projektist ja on hiljem suure avalikkuseni kasvanud, on C++ järglane, siis Carruth kahtleb, kas paralleel ikka kehtib.
Rust on kahtlemata fantastiline keel, millega uut projekti alustada, kuid kuna sellel puudub selliste keelte nagu Java ja Kotlin kahesuunaline koostalitlusvõime, on sellele järk-järgult üleminek keeruline.
Carruth pidas CPP Northis loengu ja julgustas inimesi, kes juba Rusti kasutasid, seda jätkama. Arendajad, kellel on juba suured C++ koodibaasid, mida on keeruline Rustiks teisendada, peaksid kasutama Carbonit.
Täpsemalt, Carbon on see, mida Carruth nimetas "järglaseks", mis on konstrueeritud olemasoleva ökosüsteemi, antud juhul C++ peale.
Sel eesmärgil peaks Carbon olema täielikult ühilduv praeguse C++ koodiga, isegi kui sellel on Rustiga palju eesmärke, näiteks abistada programmeerijaid "jõudluskriitiliste rakenduste" loomisel.
Lisaks tahetakse teha üleminek C++-lt Carbonile võimalikult lihtsaks.
Järeldus
Lõpuks püüdsid süsiniku keele loojad pöörata tähelepanu loomisprotsessile. Projekti kood on päringu saamiseks saadaval ja avalikult salvestatud Githubja selle kultuur on defineeritud kui kaasav ja avatud nii eraisikutele kui ka IT-sektorile.
Carboni meeskond arvas, et Carbon peab tulevikus arenemiseks olema autonoomne projekt, mida juhib kogukond, mitte ainult Google'i toel.
Caruth lisas, et vaatamata mitmete IT-ettevõtete huvile on see kontseptsioon veel katsejärgus.
Jäta vastus