Inhoudsopgave[Zich verstoppen][Laten zien]
In een poging om de eerbiedwaardige maar trage C++ te vervangen, hebben Google-onderzoekers een gloednieuwe "experimentele" open source programmeertaal geïntroduceerd, genaamd Carbon.
Carbon zou kunnen dienen als een vervolgtaal voor C++, een taal die ontwikkelaars een eenvoudig startpunt biedt voor een nieuwere taal die hedendaagse ontwikkelingsconcepten zoals geheugenveiligheid en generieke geneesmiddelen aanpakt.
Dit zou vergelijkbaar zijn met hoe Microsoft Typescript heeft gebouwd om JavaScript en Kotlin bij te werken om zwakke punten in Java te versterken.
Google heeft door de jaren heen een aantal programmeertalen ontwikkeld, waarvan sommige aanzienlijke bekendheid en bekendheid hebben gekregen.
Golang (of gewoon Go) is bijvoorbeeld ontwikkeld om het maken van servers en gedistribueerde systemen te vergemakkelijken en is vervolgens omarmd door het grote publiek.
De Dart programmeertaal, dat is gemaakt als een JavaScript-substituut, werd pas bekend bij de lancering van Flutter.
Chandler Carruth, een Google-medewerker, presenteerde zijn idee voor een nieuwe programmeertaal genaamd Carbon op 19 juli 2022 op de Cpp North-conventie in Toronto, volgens Conor Hoekstra, die de dia's bijwoonde en opnam.
Om het scenario te bepalen, demonstreerde Carruth hoe verschillende van de meest geliefde programmeertalen van vandaag afstammelingen hadden die ontwikkelaars in staat stelden snel productief te zijn en ook te profiteren van hedendaags taalontwerp.
Laten we beginnen met een algemene introductie van de programmeertaal Carbon, inclusief de functies, het doel van Google's uitvinding ervan en meer.
Inleiding tot de programmeertaal Carbon
Op 19 juli 2022 onthulde Google Carbon als de nieuwste programmeertaal die het had gemaakt. Het was bedoeld om C++ experimenteel te vervangen.
Dank aan a generiek systeem, waardoor het niet meer nodig is om de code voor elke instantie opnieuw te controleren, wordt Carbon gebouwd op een fundament van moderne programmeerconcepten.
Tegen het einde van het jaar wil het ontwerp een operationele basisversie leveren (versie 0.1).
Geheugenintegriteit is een cruciaal element dat C++ mist. Een van de belangrijkste bronnen van beveiligingsfouten zijn problemen met geheugentoegang.
De ontwikkeling van dynamische grenscontroles, het beter volgen van niet-geïnitialiseerde toestanden en een grondige standaard debug-bouwmodus zijn allemaal doelen van het Carbon-team. De makers zijn van plan om in de loop van de tijd een veilige Carbon-subset te creëren.
De volgende zijn echter enkele cruciale kenmerken van de nieuwe programmeertaal:
- Gebruik uitdrukkingen om typen een naam te geven.
- Sterke generieke geneesmiddelen met definitiecontroles
- Typen voeren specifiek interfaces uit
- introductiezinnen en basisgrammatica
- Pointers zorgen voor onbeperkte toegang en mutatie.
- Waarden voor functie-invoerparameters zijn alleen-lezen.
- De rootnaamruimte is het pakket.
- API's kunnen worden geïmporteerd met behulp van hun pakketnamen.
- Een methode wordt gedeclareerd via een expliciete objectparameter.
- De lessen zijn standaard definitief; er is maar één erfenis
Kenmerken van koolstof
Modern en in ontwikkeling
- Upgrades tussen Carbon-versies zijn eenvoudig en gebaseerd op tools.
- Sterke taalonderbouwing, vooral als je C++ hebt gebruikt, en eenvoudig te leren
- Veiligere basis en een stapsgewijze benadering van een geheugenveilige subset
De gemeenschap van open source verwelkomen
- Een gemeenschap die ernaar streeft warm, accepterend en uitnodigend te zijn
- De doelstellingen en prioriteiten zijn duidelijk en sterk bestuur
- Een alles-in-één strategie met een compiler, bibliotheken, documentatie, tools, pakketbeheer en meer
Snel en compatibel met C++
- Werk samen met de C ++ - code die u al heeft, inclusief overerving en sjablonen
- Met LLVM, prestaties vergelijkbaar met C++ en toegang op laag niveau tot bits en adressen
- Builds die snel en schaalbaar zijn en compatibel zijn met uw bestaande C++-buildsystemen
Waarom heeft Google de programmeertaal Carbon gebouwd?
Prestatiekritieke software wordt nog steeds meestal geschreven in C++, dat enorme en groeiende codebases en investeringen heeft.
Het heeft echter problemen om vooruitgang te boeken en te voldoen aan de eisen van ontwikkelaars zoals hierboven vermeld, grotendeels vanwege het vergaren van jarenlange technologische schulden.
Het is buitengewoon moeilijk om C++ stapsgewijs te verbeteren vanwege de technische schuld die het heeft opgebouwd en vanwege de problemen met het evolutieproces.
De ideale benadering om deze problemen op te lossen is om te beginnen met een sterke taalbasis, zoals een eigentijds generiek systeem, een modulaire codestructuur en een consistente, rechttoe rechtaan syntaxis, in plaats van de traditie van C of C++ rechtstreeks over te nemen.
Go, Swift, Kotlin, Rust en nog veel meer andere hedendaagse talen bieden al een uitstekende ontwikkelingservaring. Ontwikkelaars die een van deze huidige talen kunnen gebruiken, zouden dat moeten doen.
Helaas worden adoptie en migratie van C++ ernstig belemmerd door de ontwerpen van deze talen. Deze obstakels omvatten prestatieoverhead en aanpassingen aan het idiomatische ontwerp van de software.
Carbon is geen poging om C++ geleidelijk te verbeteren; het is eerder een vervolgtaalstrategie. De focus ligt op C++-interoperabiliteit, evenals brede acceptatie en migratie voor ontwikkelaars en codebases die momenteel C++ gebruiken.
Een C++ vervangende taal moet hebben:
- Prestaties vergelijkbaar met C++ zijn een cruciaal kenmerk voor ontwikkelaars.
- Een beheersbare leercurve en vertrouwdheidsniveau voor C++-programmeurs
- Migratie die schaalbaar is en enige bron-naar-bron idiomatische C++-codevertaling bevat.
- Vergelijkbare expressiviteit en ondersteuning voor de architectuur en het ontwerp van huidige software.
- Interoperabiliteit met C++ die naadloos en bidirectioneel is, waardoor elke bibliotheek Carbon kan gebruiken zonder de rest van de stapel te hoeven overdragen.
Met deze strategie voegt Google iets toe aan het ecosysteem dat al bestaat voor C++ en omvat het huidige investeringen, codebases en ontwikkelingsgemeenschappen.
Een paar talen hebben deze benadering voor verschillende ecosystemen overgenomen en Carbon wil in deze situaties een vergelijkbare functie spelen als C ++:
- Java – Kotlin
- JavaScript – TypScript
- C++ – Koolstof
C++ VS koolstofcode
Carbon zou een lage leercurve moeten hebben als je al een C++-ontwikkelaar bent. Het is samengesteld uit een vaste reeks grammaticale constructies die natuurlijk moeten klinken en eenvoudig te lezen en te begrijpen zijn.
Een voorbeeld van C++-code:
Deze koolstofcode komt overeen met:
Koolstof versus roest
Een andere moderne taal die uitdrukkelijk is ontworpen om te voldoen aan de vereisten van geheugenveilige prestatietoepassingen, wordt Rust genoemd.
Dus waarom niet gewoon Rust gebruiken?
Terwijl sommigen beweren dat Rust, dat begon als een Mozilla-project en vervolgens is uitgegroeid tot een aanzienlijke publieke aanhang, een opvolger is van C++, betwijfelt Carruth of de parallel nog steeds geldig is.
Rust is ongetwijfeld een fantastische taal om een nieuw project mee te beginnen, maar omdat het de "bidirectionele interoperabiliteit" van talen als Java en Kotlin mist, is het een uitdaging om er geleidelijk naar over te stappen.
Carruth gaf een lezing bij CPP North en moedigde mensen die Rust al gebruikten aan om dit te blijven doen. Ontwikkelaars die al aanzienlijke C++-codebases hebben die moeilijk te converteren zijn naar Rust, moeten Carbon gebruiken.
Carbon is in het bijzonder wat Carruth een 'opvolgertaal' noemde, die bovenop een bestaand ecosysteem is gebouwd, in dit geval C++.
Voor dat doel is Carbon bedoeld om volledig compatibel te zijn met de huidige C++-code, zelfs als het veel doelen heeft met Rust, zoals het helpen van programmeurs bij het maken van 'prestatiekritieke applicaties'.
Daarnaast is het de bedoeling om de overstap van C++ naar Carbon zo eenvoudig mogelijk te maken.
Conclusie
Ten slotte hebben de makers van Carbon-taal moeite gedaan om aandacht te besteden aan het creatieproces. De projectcode is op aanvraag beschikbaar en wordt openlijk opgeslagen op: GitHub, en haar cultuur wordt gedefinieerd als inclusief en open voor zowel particulieren als de IT-sector.
Het Carbon-team vond dat Carbon een autonoom project moest zijn dat door de gemeenschap werd aangestuurd en niet alleen een project dat werd aangewakkerd door Google om zich in de toekomst te kunnen ontwikkelen.
Caruth voegde eraan toe dat dit concept, ondanks interesse van een aantal IT-bedrijven, zich nog in de experimentele fase bevindt.
Laat een reactie achter