U nastojanju da zamijene časni, ali tromi C++, Googleovi istraživači predstavili su potpuno novi "eksperimentalni" programski jezik otvorenog koda nazvan Carbon.
Carbon bi mogao poslužiti kao nasljednik C++-a, jezik koji programerima pruža jednostavnu polaznu točku za noviji jezik koji se bavi suvremenim razvojnim konceptima kao što su sigurnost memorije i generički.
To bi bilo slično onome kako je Microsoft napravio Typescript za ažuriranje JavaScripta i Kotlin za jačanje slabosti u Javi.
Google je tijekom godina razvio brojne programske jezike, od kojih su neki stekli značajan glas i važnost.
Na primjer, Golang (ili samo Go) razvijen je za olakšavanje stvaranja poslužitelja i distribuiranih sustava, a kasnije ga je prihvatila šira javnost.
Pikado programski jezik, koji je nastao kao zamjena za JavaScript, nije postao poznat sve do lansiranja Fluttera.
Chandler Carruth, Googleov zaposlenik, predstavio je svoju ideju za novi programski jezik pod nazivom Carbon 19. srpnja 2022. na Cpp North konvenciji u Torontu, prema Conoru Hoekstri, koji je prisustvovao i snimio dijapozitive.
Kako bi postavio scenarij, Carruth je demonstrirao kako je nekoliko najomiljenijih programskih jezika današnjice imalo potomke koji programerima omogućuju brzu produktivnost i iskorištavanje suvremenog jezičnog dizajna.
Počnimo s općim uvodom u programski jezik Carbon, uključujući njegove značajke, svrhu Googleovog izuma i više.
Uvod u programski jezik Carbon
19. srpnja 2022. Google je otkrio Carbon kao najnoviji programski jezik koji je stvorio. Namijenjen je eksperimentalnoj zamjeni C++.
Zahvaljujući a generički sustav, koji eliminira potrebu za dvostrukom provjerom koda za svaku instanciju, Carbon će biti izgrađen na temeljima modernih koncepata programiranja.
Do kraja godine dizajn planira osigurati osnovnu operativnu verziju (verzija 0.1).
Integritet memorije je ključni element koji C++ nedostaje. Jedan od primarnih izvora sigurnosnih nedostataka su problemi s pristupom memoriji.
Razvoj dinamičkih provjera granica, bolje praćenje neinicijaliziranih stanja i temeljit zadani način izgradnje za otklanjanje pogrešaka ciljevi su tima Carbon. Kreatori namjeravaju s vremenom stvoriti siguran Carbon podskup.
Međutim, sljedeće su neke ključne karakteristike novog programskog jezika:
- Za imenovanje tipova koristite izraze.
- Jaki generici s provjerama definicija
- Tipovi specifično provode sučelja
- uvodni izrazi i osnovna gramatika
- Pokazivači omogućuju neograničeni pristup i mutaciju.
- Vrijednosti za ulazne parametre funkcije samo su za čitanje.
- Korijenski imenski prostor je paket.
- API-ji se mogu uvesti pomoću naziva njihovih paketa.
- Metoda se deklarira putem eksplicitnog parametra objekta.
- Klase su prema zadanim postavkama konačne; samo je jedno nasljedstvo
Značajke ugljika
Moderno iu razvoju
- Nadogradnje između verzija Carbon jednostavne su i temeljene na alatima.
- Snažna jezična podloga, osobito ako ste koristili C++, i jednostavan za naučiti
- Sigurniji temelji i pristup korak po korak podskupu koji je siguran za memoriju
Pozdravljamo zajednicu otvorenog koda
- Zajednica koja nastoji biti topla, prihvatljiva i gostoljubiva
- Njegovi ciljevi i prioriteti su jasno i snažno upravljanje
- Sveobuhvatna strategija s kompajlerom, bibliotekama, dokumentacijom, alatima, upravljanjem paketima i više
Brz i kompatibilan sa C++
- Radite zajedno s C ++ kôd već imate, uključujući nasljeđe i predloške
- Uz LLVM, performanse usporedive s C++ i niska razina pristupa bitovima i adresama
- Gradnje koje su brze i skalabilne i kompatibilne s vašim postojećim C++ sustavima izgradnje
Zašto je Google napravio programski jezik Carbon?
Softver koji je kritičan za performanse i dalje se uglavnom piše u C++, koji ima goleme i sve veće baze kodova i ulaganja.
Međutim, ima problema s napredovanjem i ispunjavanjem zahtjeva programera kao što je gore spomenuto, uglavnom zbog gomilanja dugogodišnjeg tehnološkog duga.
Iznimno je teško postupno poboljšati C++ zbog tehničkog duga koji je nagomilao, kao i poteškoća s njegovim razvojnim procesom.
Idealan pristup rješavanju ovih problema je započeti s jakim jezičnim temeljima, kao što je suvremeni generički sustav, modularna struktura koda i dosljedna, jednostavna sintaksa, umjesto izravnog nasljeđivanja tradicije C ili C++.
Go, Swift, Kotlin, Rust i mnogi drugi suvremeni jezici već nude izvanredno razvojno iskustvo. Programeri koji su sposobni koristiti jedan od ovih trenutnih jezika trebali bi to učiniti.
Nažalost, usvajanje i migracija s C++ ozbiljno su ometeni dizajnom ovih jezika. Te prepreke uključuju opterećenje performansi i izmjene idiomatskog dizajna softvera.
Carbon nije pokušaj postupnog poboljšanja C++; nego je to nasljedna jezična strategija. Njegov fokus je na interoperabilnosti C++, kao i širokom prihvaćanju i migraciji za programere i baze kodova koji trenutno koriste C++.
Zamjenski jezik C++ mora imati:
- Performanse usporedive s C++ ključna su karakteristika za programere.
- Upravljiva krivulja učenja i razina poznavanja za C++ programere
- Migracija koja je skalabilna i uključuje prijevod idiomatskog C++ koda s izvora na izvor.
- Slična izražajnost i podrška za arhitekturu i dizajn postojećeg softvera.
- Interoperabilnost sa C++ koja je besprijekorna i dvosmjerna, što omogućuje svakoj biblioteci da usvoji Carbon bez potrebe za prijenosom ostatka stoga.
Ovom strategijom Google dodaje ekosustavu koji već postoji za C++ i uključuje trenutna ulaganja, baze kodova i razvojne zajednice.
Nekoliko je jezika usvojilo ovaj pristup za različite ekosustave, a Carbon nastoji igrati sličnu funkciju kao C++ u ovim situacijama:
- Java – Kotlin
- JavaScript – TypeScript
- C++ – ugljik
C++ VS Carbon Code
Carbon bi trebao imati nisku krivulju učenja ako ste već C++ programer. Sastoji se od fiksnog skupa gramatičkih konstrukcija koje bi trebale zvučati prirodno i biti jednostavne za čitanje i razumijevanje.
Primjer C++ koda:
Ovaj ugljični kod odgovara:
Ugljik protiv hrđe
Još jedan suvremeni jezik koji je izričito osmišljen kako bi zadovoljio zahtjeve aplikacija za performanse sigurnih za memoriju zove se Rust.
Pa zašto jednostavno ne biste koristili Rust?
Dok neki tvrde da je Rust, koji je započeo kao Mozillin projekt i koji je kasnije izrastao u znatnu publiku, nasljednik C++-a, Carruth sumnja je li ta paralela još uvijek važeća.
Rust je nedvojbeno fantastičan jezik s kojim se može započeti novi projekt, ali kako mu nedostaje "dvosmjerna interoperabilnost" jezika poput Jave i Kotlina, izazovno je postupno prijeći na njega.
Carruth je održao predavanje na CPP North i potaknuo ljude koji su već koristili Rust da nastave s tim. Programeri koji već imaju pozamašne C++ baze kodova koje je teško pretvoriti u Rust trebali bi koristiti Carbon.
Konkretno, Carbon je ono što je Carruth nazvao "jezikom nasljednikom", koji je izgrađen na vrhu postojećeg ekosustava, u ovom slučaju C++.
U tu svrhu, Carbon bi trebao biti potpuno kompatibilan s trenutnim C++ kodom, čak i ako ima mnogo ciljeva s Rustom, kao što je pomoć programerima u stvaranju "aplikacija kritičnih za performanse".
Osim toga, namjera mu je učiniti prelazak sa C++ na Carbon što jednostavnijim.
Zaključak
Konačno, kreatori jezika Carbon potrudili su se obratiti pozornost na proces stvaranja. Projektni kod je dostupan na zahtjev i otvoreno pohranjen na Github, a njegova je kultura definirana kao uključiva i otvorena i za građane i za IT sektor.
Carbon tim smatrao je da Carbon treba biti autonoman projekt kojeg pokreće zajednica, a ne samo projekt koji potiče Google kako bi se razvijao u budućnosti.
Caruth je dodao da je unatoč interesu niza IT tvrtki ovaj koncept još uvijek u eksperimentalnoj fazi.
Ostavi odgovor