Siekdami pakeisti garbingą, bet vangų C++, „Google“ mokslininkai pristatė visiškai naują „eksperimentinę“ atvirojo kodo programavimo kalbą, pavadintą „Carbon“.
„Carbon“ galėtų būti C++ kalbos įpėdinė, kuri suteikia paprastą atspirties tašką kūrėjams prie naujesnės kalbos, skirtos šiuolaikinėms kūrimo koncepcijoms, tokioms kaip atminties sauga ir bendrieji vaistai.
Tai būtų panašu į tai, kaip „Microsoft“ sukūrė „Typescript“, kad atnaujintų „JavaScript“, ir „Kotlin“, kad sustiprintų „Java“ trūkumus.
„Google“ per daugelį metų sukūrė daugybę programavimo kalbų, kai kurios iš jų įgijo didelį žinomumą ir žinomumą.
Pavyzdžiui, „Golang“ (arba tiesiog „Go“) buvo sukurtas siekiant palengvinti serverių ir paskirstytų sistemų kūrimą, o vėliau jį priėmė plačioji visuomenė.
Smiginis programavimo kalba, kuris buvo sukurtas kaip „JavaScript“ pakaitalas, nebuvo gerai žinomas iki „Flutter“ paleidimo.
19 m. liepos 2022 d. Cpp North konferencijoje Toronte Chandleris Carruthas, „Google“ darbuotojas, pristatė savo idėją sukurti naują programavimo kalbą, pavadintą „Carbon“. pagal Conor Hoekstra, kurie dalyvavo ir įrašė skaidres.
Siekdamas sukurti scenarijų, Carruthas pademonstravo, kaip kelios populiariausios šių dienų programavimo kalbos turėjo palikuonių, leidžiančių kūrėjams greitai dirbti produktyviai ir gauti naudos iš šiuolaikinio kalbos dizaino.
Pradėkime nuo bendro „Carbon“ programavimo kalbos pristatymo, įskaitant jos funkcijas, „Google“ išradimo tikslą ir dar daugiau.
Anglies programavimo kalbos įvadas
19 m. liepos 2022 d. „Google“ paskelbė „Carbon“ kaip naujausią savo sukurtą programavimo kalbą. Jis buvo skirtas eksperimentiškai pakeisti C++.
A generinių vaistų sistema, todėl nebereikės dar kartą tikrinti kodo kiekvienam egzemplioriui, „Carbon“ bus sukurta remiantis šiuolaikinėmis programavimo koncepcijomis.
Iki metų pabaigos projekte planuojama pateikti pagrindinę operacinę versiją (0.1 versija).
Atminties vientisumas yra esminis elementas, kurio trūksta C++. Vienas iš pagrindinių saugumo trūkumų šaltinių yra prieigos prie atminties problemos.
Dinaminių ribų patikrų kūrimas, didesnis neinicijuotų būsenų stebėjimas ir kruopštus numatytasis derinimo kūrimo režimas yra „Carbon“ komandos tikslai. Laikui bėgant kūrėjai ketina sukurti saugų anglies pogrupį.
Tačiau yra keletas esminių naujosios programavimo kalbos savybių:
- Norėdami pavadinti tipus, naudokite posakius.
- Stiprūs generiniai vaistai su apibrėžimo patikra
- Tipai specialiai atlieka sąsajas
- įvadinės frazės ir pagrindinė gramatika
- Rodyklės suteikia neribotą prieigą ir mutaciją.
- Funkcijų įvesties parametrų reikšmės yra tik skaitomos.
- Šakninė vardų sritis yra paketas.
- API galima importuoti naudojant jų paketų pavadinimus.
- Metodas deklaruojamas naudojant aiškų objekto parametrą.
- Klasės pagal nutylėjimą yra galutinės; yra tik vienas palikimas
Anglies savybės
Modernus ir besivystantis
- Carbon versijų atnaujinimas yra paprastas ir pagrįstas įrankiais.
- Tvirtas kalbos pagrindas, ypač jei naudojote C++, ir lengva išmokti
- Saugesni pamatai ir žingsnis po žingsnio požiūris į atmintį saugančią pogrupį
Sveikiname atvirojo kodo bendruomenę
- Bendruomenė, kuri stengiasi būti šilta, priimanti ir kviečianti
- Jos tikslai ir prioritetai yra skirtingi ir tvirti valdymas
- „Viskas viename“ strategija su kompiliatoriumi, bibliotekomis, dokumentacija, įrankiais, paketų valdymu ir kt.
Greitas ir suderinamas su C++
- Dirbkite kartu su C ++ kodas jau turite, įskaitant paveldėjimą ir šablonus
- Naudojant LLVM, našumas panašus į C++ ir žemo lygio prieiga prie bitų ir adresų
- Konstrukcijos, kurios yra greitos ir keičiamos bei suderinamos su esamomis C++ kūrimo sistemomis
Kodėl „Google“ sukūrė „Carbon“ programavimo kalbą?
Našumui svarbi programinė įranga ir toliau daugiausia rašoma C++ kalba, kuri turi milžiniškas ir besiplečiančias kodų bazes ir investicijas.
Tačiau jai sunku tobulėti ir tenkinti kūrėjų poreikius, kaip minėta pirmiau, daugiausia dėl daugelio metų besikaupiančių technologijų skolų.
Labai sunku laipsniškai tobulinti C++ dėl susikaupusių techninių skolų ir sunkumų, susijusių su jos raidos procesu.
Idealus būdas išspręsti šias problemas yra pradėti nuo tvirto kalbos pagrindo, pavyzdžiui, šiuolaikinės bendrosios sistemos, modulinės kodo struktūros ir nuoseklios, paprastos sintaksės, o ne tiesiogiai paveldėti C arba C++ tradiciją.
Go, Swift, Kotlin, Rust ir daugelis kitų šiuolaikinių kalbų jau siūlo puikią tobulinimo patirtį. Kūrėjai, galintys naudoti vieną iš šių dabartinių kalbų, turėtų.
Deja, šių kalbų dizainas labai apsunkina priėmimą ir perkėlimą iš C++. Šios kliūtys apima našumą ir programinės įrangos idiomiško dizaino pakeitimus.
Anglis nėra bandymas palaipsniui tobulinti C++; veikiau tai kalbos strategijos tęsėjas. Pagrindinis dėmesys skiriamas C++ sąveikai, taip pat plačiai paplitusiam kūrėjų ir kodų bazių, šiuo metu naudojančių C++, priėmimui ir perkėlimui.
C++ pakaitinėje kalboje turi būti:
- Našumas, panašus į C++, yra esminė kūrėjų savybė.
- Valdoma mokymosi kreivė ir C++ programuotojų pažinimo lygis
- Perkėlimas, kuris yra keičiamas ir apima tam tikrą idiomatinį C++ kodo vertimą iš šaltinio į šaltinį.
- Panašus išraiškingumas ir palaikymas dabartinės programinės įrangos architektūrai ir dizainui.
- Sąveika su C++, kuri yra vientisa ir dvikryptė, leidžianti bet kuriai bibliotekai priimti Carbon, neperkeliant likusios kamino dalies.
Naudodama šią strategiją „Google“ papildo C++ jau egzistuojančią ekosistemą ir apima dabartines investicijas, kodų bazes ir vystymo bendruomenes.
Kai kurios kalbos taiko šį metodą įvairioms ekosistemoms, o „Carbon“ siekia atlikti panašią funkciją kaip C++ šiose situacijose:
- Java – Kotlin
- JavaScript – TypeScript
- C++ – anglis
C++ VS anglies kodas
„Carbon“ mokymosi kreivė turėtų būti žema, jei jau esate C++ kūrėjas. Jį sudaro fiksuotas gramatinių konstrukcijų rinkinys, kuris turėtų skambėti natūraliai ir būti lengvai skaitomas bei suprantamas.
C++ kodo pavyzdys:
Šis anglies kodas atitinka:
Anglis prieš rūdis
Kita šiuolaikinė kalba, sukurta specialiai tam, kad atitiktų atminties saugaus veikimo programų reikalavimus, vadinama Rust.
Taigi kodėl gi nepasinaudojus „Rust“?
Nors kai kurie teigia, kad Rust, kuris prasidėjo kaip „Mozilla“ projektas ir vėliau išaugo iki nemažos publikos, yra C++ įpėdinis, Carruth abejoja, ar paralelė vis dar galioja.
Rust neabejotinai yra fantastiška kalba, su kuria galima pradėti naują projektą, tačiau kadangi jai trūksta kalbų, tokių kaip Java ir Kotlin, „dvikrypčio sąveikumo“, sunku prie jos pereiti palaipsniui.
Carruth skaitė paskaitą CPP North ir paskatino žmones, kurie jau naudoja Rust, toliau tai daryti. Kūrėjai, jau turintys dideles C++ kodų bazes, kurias sunku konvertuoti į Rust, turėtų naudoti Carbon.
Konkrečiai kalbant, Carbon yra tai, ką Carruth pavadino „įpėdine kalba“, kuri yra sukurta ant esamos ekosistemos, šiuo atveju C++.
Tuo tikslu „Carbon“ turi būti visiškai suderinama su dabartiniu C++ kodu, net jei ji turi daug tikslų su „Rust“, pavyzdžiui, padėti programuotojams kurti „našumui svarbias programas“.
Be to, perėjimas nuo C++ prie „Carbon“ turėtų būti kuo paprastesnis.
Išvada
Galiausiai anglies kalbos kūrėjai pasistengė atkreipti dėmesį į kūrimo procesą. Projekto kodas yra prieinamas paprašius ir saugomas atvirai GitHub, o jos kultūra apibrėžiama kaip įtrauki ir atvira tiek privatiems piliečiams, tiek IT sektoriui.
„Carbon“ komanda manė, kad „Carbon“ turi būti savarankiškas projektas, kurį skatina bendruomenė, o ne tik „Google“ skatinamas projektas, kad būtų galima plėtoti ateityje.
Caruthas pridūrė, kad nepaisant daugelio IT įmonių susidomėjimo, ši koncepcija vis dar yra eksperimentavimo stadijoje.
Palikti atsakymą