U nastojanju da zamijene poštovani, ali trom C++, Google istraživači su predstavili potpuno novi “eksperimentalni” programski jezik otvorenog koda nazvan Carbon.
Carbon bi mogao poslužiti kao jezik nasljednik C++, jezik koji programerima pruža jednostavnu početnu tačku za noviji jezik koji se bavi savremenim razvojnim konceptima kao što su sigurnost memorije i generika.
Ovo bi bilo slično načinu na koji je Microsoft izgradio Typescript za ažuriranje JavaScripta i Kotlina kako bi ojačao slabosti u Javi.
Google je tokom godina razvio niz programskih jezika, od kojih su neki stekli značajnu notornost i istaknutost.
Na primjer, Golang (ili samo Go) je razvijen da olakša kreiranje servera i distribuiranih sistema i kasnije je prihvaćen od strane javnosti.
Pikado programski jezik, koji je kreiran kao zamjena za JavaScript, nije postao poznat do lansiranja Fluttera.
Chandler Carruth, zaposlenik Google-a, predstavio je svoju ideju za novi programski jezik pod nazivom Carbon 19. jula 2022. godine na konvenciji Cpp North u Torontu, prema Conor Hoekstra, koji je prisustvovao i snimio slajdove.
Da bi postavio scenario, Carruth je demonstrirao kako nekoliko najomiljenijih programskih jezika današnjice ima potomke koji omogućavaju programerima da brzo budu produktivni i imaju koristi od savremenog dizajna jezika.
Počnimo s općim uvodom u programski jezik Carbon, uključujući njegove karakteristike, svrhu Googleovog izuma i još mnogo toga.
Uvod u programski jezik Carbon
Google je 19. jula 2022. otkrio Carbon kao najnoviji programski jezik koji je kreirao. Bio je namijenjen da eksperimentalno zamijeni C++.
Zahvaljujući a generički sistem, što eliminiše potrebu za dvostrukom provjerom koda za svaku instanciju, Carbon će biti konstruiran na temelju modernih programskih koncepata.
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 je problem pristupa memoriji.
Razvoj dinamičkih provjera granica, bolje praćenje neinicijaliziranih stanja i temeljni zadani način izgradnje debuga su ciljevi Carbon tima. Kreatori namjeravaju stvoriti siguran podskup ugljika tokom vremena.
Međutim, sljedeće su neke ključne karakteristike novog programskog jezika:
- Za imenovanje tipova koristite izraze.
- Jaki generici s provjerama definicija
- Tipovi posebno izvode interfejse
- uvodne fraze i osnovna gramatika
- Pokazivači omogućavaju neograničen pristup i mutaciju.
- Vrijednosti za ulazne parametre funkcije su samo za čitanje.
- Osnovni imenski prostor je paket.
- API-ji se mogu uvesti korištenjem njihovih naziva paketa.
- Metoda je deklarirana preko eksplicitnog parametra objekta.
- Klase su po defaultu konačne; postoji samo jedno nasledstvo
Karakteristike karbona
Moderan i u razvoju
- Nadogradnje između Carbon verzija su jednostavne i bazirane na alatima.
- Jaka jezička osnova, posebno ako ste koristili C++, i jednostavna za učenje
- Sigurnije osnove i korak po korak pristup memorijskom sigurnom podskupu
Pozdravljamo zajednicu otvorenog koda
- Zajednica koja nastoji da bude topla, prihvata i poziva
- Njegovi ciljevi i prioriteti su jasno i snažno upravljanje
- Sveobuhvatna strategija sa kompajlerom, bibliotekama, dokumentacijom, alatima, upravljanjem paketima i još mnogo toga
Brz i kompatibilan sa C++
- Radite zajedno sa C ++ kôd već imate, uključujući nasljeđivanje i šablone
- Sa LLVM, performanse su uporedive sa C++ i pristup na niskom nivou bitovima i adresama
- Građevine koje su brze i skalabilne i kompatibilne sa vašim postojećim C++ sistemima gradnje
Zašto je Google napravio programski jezik Carbon?
Softver koji je kritičan za performanse i dalje je uglavnom napisan na C++, koji ima ogromne i sve šire baze kodova i ulaganja.
Međutim, ima problema s napredovanjem i ispunjavanjem zahtjeva programera kao što je gore spomenuto, uglavnom zbog gomilanja tehnološkog duga koji se godinama gomila.
Izuzetno je teško postepeno poboljšati C++ zbog tehničkog duga koji je akumulirao, kao i poteškoća s njegovim procesom evolucije.
Idealan pristup rešavanju ovih problema je da se počne sa jakim jezičkim osnovama, kao što je savremeni generički sistem, modularna struktura koda i dosledna, jasna sintaksa, umesto direktnog nasleđivanja tradicije C ili C++.
Go, Swift, Kotlin, Rust i mnogi drugi savremeni jezici već nude izvanredno razvojno iskustvo. Programeri koji mogu koristiti jedan od ovih trenutnih jezika bi trebali.
Nažalost, usvajanje i migracija sa C++-a su ozbiljno otežani dizajnom ovih jezika. Ove prepreke uključuju troškove performansi i modifikacije idiomatskog dizajna softvera.
Carbon nije pokušaj postepenog poboljšanja C++; radije, to je jezička strategija naslednika. Njegov fokus je na C++ interoperabilnosti, kao i na širokom prihvatanju i migraciji za programere i baze kodova koji trenutno koriste C++.
Zamjenski jezik C++ mora imati:
- Performanse uporedive sa C++ su ključna karakteristika za programere.
- Upravljiva kriva učenja i nivo poznavanja za C++ programere
- Migracija koja je skalabilna i uključuje neke idiomatske prevode C++ koda od izvora do izvora.
- Slična ekspresivnost i podrška za arhitekturu i dizajn trenutnog softvera.
- Interoperabilnost sa C++ koja je besprekorna i dvosmerna, omogućavajući bilo kojoj biblioteci da usvoji Carbon bez potrebe za portiranjem ostatka steka.
Ovom strategijom, Google dodaje ekosistemu koji već postoji za C++ i uključuje trenutna ulaganja, baze koda i razvojne zajednice.
Nekoliko jezika je usvojilo ovaj pristup za različite ekosisteme, a Carbon nastoji igrati sličnu funkciju kao C++ u ovim situacijama:
- Java – Kotlin
- JavaScript – TypeScript
- C++ – ugljenik
C++ VS Carbon Code
Carbon bi trebao imati nisku krivu 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:
Carbon vs Rust
Još jedan savremeni jezik dizajniran izričito da ispuni zahtjeve aplikacija za performanse koje su sigurne u memoriji zove se Rust.
Pa zašto jednostavno ne koristite Rust?
Dok neki tvrde da je Rust, koji je počeo kao Mozilla projekat, a kasnije je narastao i imao priličnu javnost, nasljednik C++-a, Carruth sumnja da li je paralela još uvijek važeća.
Rust je nesumnjivo fantastičan jezik sa kojim se može započeti novi projekat, ali kako mu nedostaje „dvosmjerna interoperabilnost“ jezika kao što su Java i Kotlin, teško je preći na njega postepeno.
Carruth je održao predavanje na CPP North i ohrabrio ljude koji su već koristili Rust da to nastave. Programeri koji već imaju značajne C++ baze koda 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 ekosistema, u ovom slučaju C++.
U tu svrhu, Carbon treba da bude potpuno kompatibilan sa trenutnim C++ kodom, čak i ako ima mnogo ciljeva sa Rustom, kao što je pomoć programerima u kreiranju „aplikacija kritičnih za performanse“.
Osim toga, namjerava se učiniti što jednostavnijim prelazak sa C++ na Carbon.
zaključak
Konačno, kreatori Carbon jezika su se potrudili da obrate pažnju na proces stvaranja. Kod projekta je dostupan na zahtjev i otvoreno pohranjen na GitHub, a njegova kultura je definirana kao inkluzivna i otvorena kako za privatne građane tako i za IT sektor.
Carbon tim je smatrao da Carbon treba da bude autonoman projekat koji vodi zajednica, a ne samo projekat koji pokreće Google kako bi se razvijao u budućnosti.
Caruth je dodao da je, uprkos interesovanju brojnih IT kompanija, ovaj koncept još uvijek u eksperimentalnoj fazi.
Ostavite odgovor