Inhaltsverzeechnes[Verstoppen][Show]
An engem Effort fir den éierlechen awer luesen C++ ze ersetzen, hunn Google Fuerscher eng fuschneie "experimentell" Open Source Programméierungssprooch agefouert, genannt Carbon.
Kuelestoff kéint als Nofolgersprooch fir C ++ déngen, eng déi en einfache Startpunkt fir Entwéckler zu enger méi neier Sprooch ubitt, déi zäitgenëssesch Entwécklungskonzepter wéi Erënnerungssécherheet a Generik adresséiert.
Dëst wier ähnlech wéi Microsoft Typescript gebaut huet fir JavaScript a Kotlin ze aktualiséieren fir Schwächen am Java ze stäerken.
Google huet eng Rei vu Programméierungssproochen duerch d'Joren entwéckelt, e puer vun deenen hunn bedeitend Notoritéit a Prominenz gewonnen.
Zum Beispill, Golang (oder just Go) gouf entwéckelt fir d'Schafe vu Serveren a verdeelt Systemer ze erliichteren an ass duerno vun der Allgemengheet ëmfaassend ginn.
Den Dart Programméierungssäit, deen als JavaScript-Ersatz erstallt gouf, gouf bis zum Start vu Flutter net bekannt.
Den Chandler Carruth, e Google Employé, huet seng Iddi fir eng nei Programméierungssprooch mam Numm Carbon den 19. Juli 2022 op der Cpp North Convention zu Toronto presentéiert, no Conor Hoekstra, déi dobäi waren an d'Rutschen opgeholl hunn.
Fir den Szenario ze setzen, huet de Carruth bewisen wéi verschidde vun de beléiftste Programméierungssprooche vun haut Nokommen haten, déi d'Entwéckler et erlaben séier produktiv ze sinn an och vum zäitgenëssesche Sproochendesign ze profitéieren.
Loosst eis mat enger allgemenger Aféierung vun der Carbon Programméiersprooch unzefänken, dorënner seng Features, den Zweck vun der Erfindung vu Google dovun, a méi.
Aféierung fir Carbon Programméiersprooch
Den 19. Juli 2022 huet Google Carbon opgedeckt als déi neist Programméierungssprooch déi se erstallt huet. Et war geduecht fir C ++ experimentell ze ersetzen.
Merci un eng Generik System, déi d'Noutwendegkeet eliminéiert fir de Code fir all Instantiatioun z'iwwerpréiwen, gëtt Carbon op enger Basis vu modernen Programméierungskonzepter gebaut.
Bis Enn vum Joer plangt den Design eng Basis operationell Versioun ze bidden (Versioun 0.1).
Gedächtnisintegritéit ass en entscheedende Element dat C ++ fehlt. Ee vun de primäre Quelle vu Sécherheetsfehler ass Erënnerungszougang Themen.
D'Entwécklung vun dynamesche Grenzkontrollen, méi grouss Tracking vun oninitialiséierte Staaten, an e grëndleche Standard Debug Build Modus sinn all Ziler vum Carbon Team. D'Creatoren hu wëlles e séchere Kuelestoff-Subset mat der Zäit ze kreéieren.
Wéi och ëmmer, déi folgend sinn e puer entscheedend Charakteristike vun der neier Programméierungssprooch:
- Fir Typen ze nennen, benotzt Ausdréck.
- Staark Generik mat Definitiounskontrollen
- Typen speziell Interfaces ausféieren
- Aféierung Ausdréck a Basis Grammatik
- Pointer erlaben onbeschränkten Zougang a Mutatioun.
- Wäerter fir Funktioun Input Parameteren sinn read-nëmmen.
- De Root Nummraum ass de Package.
- APIe kënnen importéiert ginn mat hire Paketnamen.
- Eng Method gëtt iwwer en expliziten Objektparameter deklaréiert.
- Klassen sinn Finale Par défaut; et gëtt nëmmen eng Ierfschaft
Features vu Carbon
Modern an Entwécklungslänner
- Upgrades tëscht Carbon Versiounen sinn einfach an Tool-baséiert.
- Staark Sproochunterricht, besonnesch wann Dir C ++ benotzt hutt, an einfach ze léieren
- Méi sécher Fundamenter an eng Schrëtt-fir-Schrëtt Approche zu engem Erënnerung-sécher Ënnerdeel
Begréissung der Gemeinschaft vun Open Source
- Eng Gemeinschaft déi beméit sech waarm ze sinn, akzeptéieren an invitéierend
- Seng Ziler a Prioritéite sinn ënnerschiddlech a staark Gouvernance
- Eng alles-zu-eent Strategie mat engem Compiler, Bibliothéiken, Dokumentatioun, Tools, Package Management, a méi
Schnell a kompatibel mat C ++
- Schafft zesumme mat der C ++ Code Dir hutt schonn, dorënner Ierfschaft a Schablounen
- Mat LLVM, Leeschtung vergläichbar mat C ++ an niddereg-Niveau Zougang zu Stécker an Adressen
- Baut déi séier a skalierbar a kompatibel sinn mat Ären existente C++ Build Systemer
Firwat huet Google d'Carbon Programméierungssprooch gebaut?
Leeschtungskritesch Software gëtt weider meeschtens an C ++ geschriwwe ginn, déi enorm an erweiderend Codebasen an Investitiounen huet.
Wéi och ëmmer, et huet Schwieregkeeten fir weiderzekommen an d'Ufuerderunge vun den Entwéckler ze treffen wéi hei uewen erwähnt, gréisstendeels wéinst der technologescher Schold vu Joeren ze sammelen.
Et ass extrem schwiereg fir C++ inkrementell ze verbesseren wéinst der technescher Schold déi et ugesammelt huet wéi och Schwieregkeete mat sengem Evolutiounsprozess.
Déi ideal Approche fir dës Themen ze léisen ass mat engem staarke Sproochefundament unzefänken, sou wéi en zäitgenëssesche Generiksystem, modulare Codestruktur, a konsequent, riichtaus Syntax, anstatt direkt d'Traditioun vu C oder C++ ze ierwen.
Go, Swift, Kotlin, Rust, a vill méi aner zäitgenëssesch Sprooche bidden schonn eng aussergewéinlech Entwécklungserfarung. Entwéckler déi fäeg sinn eng vun dësen aktuellen Sproochen ze benotzen, sollten dat maachen.
Leider sinn d'Adoptioun an d'Migratioun vu C++ staark behënnert vun den Designen vun dëse Sproochen. Dës Hindernisser enthalen d'Performance Overhead an d'Modifikatioune vum idiomatesche Design vun der Software.
Kuelestoff ass net e Versuch fir graduell C ++ ze verbesseren; éischter, et ass eng Nofolger Sprooch Strategie. Säi Fokus ass op C++ Interoperabilitéit, souwéi verbreet Akzeptanz a Migratioun fir Entwéckler a Codebasen déi aktuell C++ benotzen.
Eng C++ Ersatzsprooch muss hunn:
- Leeschtung vergläichbar mat C ++ ass eng entscheedend Charakteristik fir Entwéckler.
- Eng handhabbar Léierkurve an Niveau vu Bekanntheet fir C++ Programméierer
- Migratioun déi skalierbar ass an e puer Quell-zu-Quell idiomatesch C++ Code Iwwersetzung enthält.
- Ähnlech Expressivitéit an Ënnerstëtzung fir d'Architektur an Design vun der aktueller Software.
- Interoperabilitéit mat C++ déi nahtlos a bidirektional ass, wat all Bibliothéik erlaabt Kuelestoff ze adoptéieren ouni de Rescht vum Stack ze portéieren.
Mat dëser Strategie füügt Google dem Ökosystem bäi dat scho fir C++ existéiert an integréiert aktuell Investitiounen, Codebasen an Entwécklungsgemeinschaften.
E puer Sproochen hunn dës Approche fir verschidden Ökosystemer ugeholl, a Carbon probéiert eng ähnlech Funktioun wéi C++ an dëse Situatiounen ze spillen:
- Java - Kotlin
- JavaScript - TypeScript
- C++ - Kuelestoff
C++ VS Carbon Code
Carbon sollt eng niddereg Léierkurve hunn wann Dir schonn en C++ Entwéckler sidd. Et besteet aus engem fixen Set vu grammatesche Konstruktiounen, déi natierlech solle kléngen an einfach ze liesen a verstoen.
E Beispill vu C++ Code:
Dëse Carbon Code entsprécht:
Carbon vs Rust
Eng aner zäitgenëssesch Sprooch, déi ausdrécklech entworf ass fir d'Ufuerderunge vun Erënnerungsséchere Leeschtungsapplikatiounen z'erreechen ass Rust genannt.
Also firwat net einfach Rust benotzen?
Wärend e puer plädéieren datt Rust, deen als Mozilla-Projet ugefaang huet an duerno gewuess ass fir e wesentlechen ëffentleche Follower ze hunn, en Nofolger vum C ++ ass, Zweiwel Carruth ob d'Parallel nach ëmmer gëlteg ass.
Rust ass ouni Zweifel eng fantastesch Sprooch mat där en neie Projet unzefänken, awer well et déi "bidirektional Interoperabilitéit" vu Sprooche wéi Java & Kotlin feelt, ass et Erausfuerderung fir et graduell ze iwwergoen.
Carruth huet e Virtrag um CPP Norden an encouragéiert Leit, déi schonn Rust benotzt hunn et weider ze maachen. Entwéckler déi scho grouss C++ Codebasen hunn, déi usprochsvoll sinn fir op Rust ze konvertéieren, sollten Carbon benotzen.
Besonnesch Carbon ass dat wat de Carruth als "Nofolgersprooch" bezeechent gëtt, déi uewen op engem existente Ökosystem konstruéiert ass, an dësem Fall C++.
Fir dësen Zweck ass Carbon geduecht fir komplett kompatibel mat aktuellen C++ Code ze sinn, och wann et vill Ziler mat Rust huet, sou wéi Programméierer ze hëllefen bei der Schafung vun "leistungskriteschen Uwendungen."
Zousätzlech ass et geduecht fir de Beweegung vu C++ op Carbon sou einfach wéi méiglech ze maachen.
Konklusioun
Schlussendlech hunn d'Creatore vu Carbon Sproochen en Effort gemaach fir op de Kreatiounsprozess opmierksam ze maachen. De Code vum Projet ass verfügbar fir Ufro an offen gespäichert op Github, a seng Kultur ass definéiert als inklusiv an oppe fir béid Privatbierger an den IT-Secteur.
D'Carbon Team huet geduecht datt Carbon en autonome Projet muss sinn gedriwwe vun der Gemeinschaft an net nëmmen e Projet dee vu Google ugedriwwe gëtt fir an Zukunft z'entwéckelen.
Caruth huet bäigefüügt datt trotz Interessi vun enger Zuel vun IT-Geschäfter dëst Konzept nach ëmmer an der experimenteller Etapp ass.
Hannerlooss eng Äntwert