I ett försök att ersätta det ärevördiga men tröga C++ har Googles forskare introducerat ett helt nytt "experimentellt" programmeringsspråk med öppen källkod som kallas Carbon.
Carbon skulle kunna fungera som ett efterföljande språk till C++, ett som ger en enkel utgångspunkt för utvecklare till ett nyare språk som tar upp samtida utvecklingskoncept som minnessäkerhet och generika.
Detta skulle likna hur Microsoft byggde Typescript för att uppdatera JavaScript och Kotlin för att stärka svagheter i Java.
Google har utvecklat ett antal programmeringsspråk genom åren, av vilka några har fått betydande ryktbarhet och framträdande plats.
Till exempel utvecklades Golang (eller bara Go) för att underlätta skapandet av servrar och distribuerade system och har sedan anammats av allmänheten.
Dart programmeringsspråk, som skapades som en JavaScript-ersättning, blev inte välkänd förrän lanseringen av Flutter.
Chandler Carruth, en Google-anställd, presenterade sin idé till ett nytt programmeringsspråk som heter Carbon den 19 juli 2022 på Cpp North-kongressen i Toronto, enligt Conor Hoekstra, som deltog och spelade in bilderna.
För att ställa scenariot demonstrerade Carruth hur flera av de mest omtyckta programmeringsspråken i dag hade ättlingar som gör det möjligt för utvecklare att snabbt vara produktiva och även dra nytta av modern språkdesign.
Låt oss börja med en allmän introduktion av programmeringsspråket Carbon, inklusive dess funktioner, syftet med Googles uppfinning av det och mer.
Introduktion till kolprogrammeringsspråk
Den 19 juli 2022 avslöjade Google Carbon som det senaste programmeringsspråket som det hade skapat. Det var tänkt att ersätta C++ experimentellt.
Tack vare a generiskt system, vilket eliminerar behovet av att dubbelkolla koden för varje instansiering, kommer Carbon att byggas på en grund av moderna programmeringskoncept.
I slutet av året planerar konstruktionen att tillhandahålla en grundläggande operativ version (version 0.1).
Minnesintegritet är ett avgörande element som C++ saknas. En av de primära källorna till säkerhetsbrister är problem med minnesåtkomst.
Utvecklingen av dynamiska gränskontroller, bättre spårning av oinitierade tillstånd och ett grundligt standardfelsökningsbygge är alla mål för Carbon-teamet. Skaparna har för avsikt att skapa en säker Carbon-delmängd över tiden.
Men följande är några avgörande egenskaper hos det nya programmeringsspråket:
- Använd uttryck för att namnge typer.
- Starka generika med definitionskontroller
- Typer utför specifikt gränssnitt
- introduktionsfraser och grundläggande grammatik
- Pekare tillåter obegränsad åtkomst och mutation.
- Värden för funktionsingångsparametrar är skrivskyddade.
- Rotnamnutrymmet är paketet.
- API:er kan importeras med deras paketnamn.
- En metod deklareras via en explicit objektparameter.
- Klasser är slutgiltiga som standard; det finns bara ett arv
Karbons egenskaper
Modernt och utvecklande
- Uppgraderingar mellan Carbon-versioner är enkla och verktygsbaserade.
- Starkt språkunderlag, speciellt om du har använt C++, och lätt att lära sig
- Säkrare grunder och ett steg-för-steg tillvägagångssätt för en minnessäker delmängd
Välkomna gemenskapen av öppen källkod
- En gemenskap som strävar efter att vara varm, accepterande och inbjudande
- Dess mål och prioriteringar är distinkt och stark styrning
- En allt-i-ett-strategi med en kompilator, bibliotek, dokumentation, verktyg, pakethantering och mer
Snabb och kompatibel med C++
- Arbeta tillsammans med C ++ - kod du redan har, inklusive arv och mallar
- Med LLVM, prestanda jämförbar med C++ och lågnivååtkomst till bitar och adresser
- Bygger som är snabba och skalbara och kompatibla med dina befintliga C++-byggsystem
Varför byggde Google programmeringsspråket Carbon?
Prestandakritisk programvara fortsätter att vara mest skriven i C++, som har enorma och expanderande kodbaser och investeringar.
Det har dock problem med att avancera och möta kraven från utvecklare som nämnts ovan, till stor del på grund av att samla år av tekniska skulder.
Det är oerhört svårt att stegvis förbättra C++ på grund av den tekniska skuld som den har samlat på sig samt svårigheter med dess utvecklingsprocess.
Det ideala tillvägagångssättet för att lösa dessa problem är att börja med en stark språkbas, såsom ett modernt generiskt system, modulär kodstruktur och konsekvent, okomplicerad syntax, snarare än att direkt ärva traditionen av C eller C++.
Go, Swift, Kotlin, Rust och många fler andra samtida språk erbjuder redan en enastående utvecklingsupplevelse. Utvecklare som kan använda ett av dessa nuvarande språk borde göra det.
Tyvärr hämmas adoption och migrering från C++ kraftigt av utformningen av dessa språk. Dessa hinder inkluderar prestandaoverhead och modifieringar av programvarans idiomatiska design.
Kol är inte ett försök att gradvis förbättra C++; snarare är det en efterföljande språkstrategi. Dess fokus ligger på C++ interoperabilitet, såväl som utbredd acceptans och migrering för utvecklare och kodbaser som för närvarande använder C++.
Ett C++-ersättningsspråk måste ha:
- Prestanda jämförbar med C++ är en avgörande egenskap för utvecklare.
- En hanterbar inlärningskurva och förtrogenhetsnivå för C++-programmerare
- Migrering som är skalbar och inkluderar en del idiomatisk C++-kodöversättning från källa till källa.
- Liknande uttrycksfullhet och stöd för arkitektur och design av aktuell mjukvara.
- Interoperabilitet med C++ som är sömlös och dubbelriktad, vilket gör att alla bibliotek kan använda Carbon utan att behöva porta resten av stacken.
Med den här strategin lägger Google till det ekosystem som redan finns för C++ och inkluderar nuvarande investeringar, kodbaser och utvecklingsgemenskaper.
Ett fåtal språk har antagit detta tillvägagångssätt för olika ekosystem, och Carbon försöker spela en liknande funktion som C++ i dessa situationer:
- Java – Kotlin
- JavaScript – TypeScript
- C++ – Kol
C++ VS Carbon Code
Carbon bör ha en låg inlärningskurva om du redan är en C++-utvecklare. Den är sammansatt av en fast uppsättning grammatiska konstruktioner som borde låta naturliga och vara lätta att läsa och förstå.
Ett exempel på C++-kod:
Denna kolkod motsvarar:
Kol vs rost
Ett annat modernt språk som uttryckligen är utformat för att uppfylla kraven för minnessäkra prestandaapplikationer kallas Rust.
Så varför inte helt enkelt använda Rust?
Medan vissa hävdar att Rust, som började som ett Mozilla-projekt och sedan har vuxit till att ha en betydande publik efterföljare, är en efterträdare till C++, tvivlar Carruth på om parallellen fortfarande är giltig.
Rust är utan tvekan ett fantastiskt språk att starta ett nytt projekt med, men eftersom det saknar "dubbelriktad interoperabilitet" för språk som Java och Kotlin, är det utmanande att gradvis övergå till det.
Carruth höll en föreläsning på CPP North och uppmuntrade människor som redan använde Rust att fortsätta göra det. Utvecklare som redan har betydande C++-kodbaser som är utmanande att konvertera till Rust bör använda Carbon.
I synnerhet är Carbon det som Carruth kallade ett "efterträdarspråk", som är konstruerat ovanpå ett befintligt ekosystem, i det här fallet C++.
För det ändamålet är Carbon tänkt att vara helt kompatibel med nuvarande C++-kod, även om den har många mål med Rust, som att hjälpa programmerare att skapa "prestandakritiska applikationer."
Dessutom är det tänkt att göra övergången från C++ till Carbon så enkel som möjligt.
Slutsats
Slutligen gjorde Carbon-språkskapare ett försök att uppmärksamma skapelseprocessen. Projektets kod finns tillgänglig för begäran och lagras öppet på Github, och dess kultur definieras som inkluderande och öppen för både privata medborgare och IT-sektorn.
Carbon-teamet tyckte att Carbon behövde vara ett självständigt projekt som drivs av samhället och inte bara ett projekt som drivs av Google för att kunna utvecklas i framtiden.
Caruth tillade att trots intresse från ett antal IT-företag är detta koncept fortfarande på experimentstadiet.
Kommentera uppropet