In 'n poging om die eerbiedwaardige maar trae C++ te vervang, het Google-navorsers 'n splinternuwe "eksperimentele" oopbron-programmeertaal bekendgestel, genaamd Carbon.
Koolstof kan dien as 'n opvolgertaal vir C++, een wat 'n eenvoudige beginpunt bied vir ontwikkelaars na 'n nuwer taal wat kontemporêre ontwikkelingskonsepte soos geheueveiligheid en generiese aanspreek.
Dit sal soortgelyk wees aan hoe Microsoft Typescript gebou het om JavaScript en Kotlin op te dateer om swakhede in Java te versterk.
Google het deur die jare 'n aantal programmeertale ontwikkel, waarvan sommige aansienlike bekendheid en prominensie verwerf het.
Golang (of net Go) is byvoorbeeld ontwikkel om die skepping van bedieners en verspreide stelsels te fasiliteer en is daarna deur die algemene publiek omhels.
Die pyl Programmeringstaal, wat as 'n JavaScript-plaasvervanger geskep is, het nie bekend geword tot met die bekendstelling van Flutter nie.
Chandler Carruth, 'n Google-werknemer, het sy idee vir 'n nuwe programmeertaal genaamd Carbon op 19 Julie 2022 by die Cpp North-konvensie in Toronto aangebied, volgens Conor Hoekstra, wat die skyfies bygewoon en opgeneem het.
Om die scenario te stel, het Carruth gedemonstreer hoe verskeie van die mees gewilde programmeertale van die huidige dag afstammelinge gehad het wat ontwikkelaars in staat stel om vinnig produktief te wees en ook voordeel te trek uit kontemporêre taalontwerp.
Kom ons begin met 'n algemene bekendstelling van die Carbon-programmeertaal, insluitend sy kenmerke, die doel van Google se uitvinding daarvan, en meer.
Inleiding tot koolstofprogrammeertaal
Op 19 Julie 2022 het Google Carbon onthul as die nuutste programmeertaal wat dit geskep het. Dit was bedoel om C++ eksperimenteel te vervang.
Dankie aan a generiese stelsel, wat die behoefte uitskakel om die kode vir elke instansiasie dubbel na te gaan, sal Carbon op 'n grondslag van moderne programmeringskonsepte gebou word.
Teen die einde van die jaar beplan die ontwerp om 'n basiese operasionele weergawe (weergawe 0.1) te verskaf.
Geheue-integriteit is 'n belangrike element wat C++ ontbreek. Een van die primêre bronne van sekuriteitsfoute is probleme met geheuetoegang.
Die ontwikkeling van dinamiese grenskontroles, groter dop van ongeinitialiseerde toestande en 'n deeglike verstekfoutopboumodus is alles doelwitte van die Carbon-span. Die skeppers beoog om mettertyd 'n veilige koolstof-subset te skep.
Die volgende is egter 'n paar belangrike kenmerke van die nuwe programmeertaal:
- Gebruik uitdrukkings om tipes te noem.
- Sterk generika met definisiekontroles
- Tipes voer spesifiek koppelvlakke uit
- inleidingsfrases en basiese grammatika
- Wysers maak voorsiening vir onbeperkte toegang en mutasie.
- Waardes vir funksie-invoerparameters is leesalleen.
- Die wortelnaamruimte is die pakket.
- API's kan met hul pakketname ingevoer word.
- 'n Metode word verklaar via 'n eksplisiete objekparameter.
- Klasse is by verstek finaal; daar is net een erfenis
Kenmerke van koolstof
Modern en ontwikkelend
- Opgraderings tussen Carbon-weergawes is eenvoudig en gereedskapgebaseer.
- Sterk taalonderbou, veral as jy C++ gebruik het, en maklik om te leer
- Veiliger fondamente en 'n stap-vir-stap benadering tot 'n geheue-veilige subset
Verwelkom die gemeenskap van oopbron
- 'n Gemeenskap wat daarna streef om warm, aanvaardend en uitnodigend te wees
- Sy doelwitte en prioriteite is duidelike en sterk bestuur
- 'n Alles-in-een-strategie met 'n samesteller, biblioteke, dokumentasie, gereedskap, pakketbestuur, en meer
Vinnig en versoenbaar met C++
- Werk saam met die C ++ kode jy reeds het, insluitend erfenis en sjablone
- Met LLVM, werkverrigting vergelykbaar met C++ en laevlaktoegang tot stukkies en adresse
- Geboue wat vinnig en skaalbaar is en versoenbaar is met jou bestaande C++-boustelsels
Waarom het Google die Carbon-programmeertaal gebou?
Prestasiekritieke sagteware word steeds meestal in C++ geskryf, wat enorme en uitbreidende kodebasisse en beleggings het.
Dit ondervind egter probleme om vooruit te gaan en aan die eise van ontwikkelaars soos hierbo genoem te voldoen, grootliks weens die opbou van jare se tegnologiese skuld.
Dit is uiters moeilik om C++ inkrementeel te verbeter as gevolg van die tegniese skuld wat dit opgeloop het sowel as probleme met sy evolusieproses.
Die ideale benadering om hierdie kwessies op te los, is om met 'n sterk taalgrondslag te begin, soos 'n kontemporêre generiese stelsel, modulêre kodestruktuur en konsekwente, eenvoudige sintaksis, eerder as om die tradisie van C of C++ direk te erf.
Go, Swift, Kotlin, Rust, en vele meer ander kontemporêre tale bied reeds 'n uitstekende ontwikkelingservaring. Ontwikkelaars wat in staat is om een van hierdie huidige tale te gebruik, behoort dit te doen.
Ongelukkig word aanneming en migrasie vanaf C++ ernstig belemmer deur die ontwerpe van hierdie tale. Hierdie struikelblokke sluit in prestasie-bokoste en wysigings aan die sagteware se idiomatiese ontwerp.
Koolstof is nie 'n poging om C++ geleidelik te verbeter nie; dit is eerder 'n opvolgende taalstrategie. Die fokus is op C++-interoperabiliteit, sowel as wydverspreide aanvaarding en migrasie vir ontwikkelaars en kodebasisse wat tans C++ gebruik.
'n C++-vervangingstaal moet hê:
- Werkverrigting vergelykbaar met C++ is 'n belangrike eienskap vir ontwikkelaars.
- 'n Hanteerbare leerkurwe en vlak van vertroudheid vir C++-programmeerders
- Migrasie wat skaalbaar is en 'n mate van bron-na-bron idiomatiese C++-kodevertaling insluit.
- Soortgelyke ekspressiwiteit en ondersteuning vir die argitektuur en ontwerp van huidige sagteware.
- Interoperabiliteit met C++ wat naatloos en tweerigting is, wat enige biblioteek toelaat om koolstof aan te neem sonder om die res van die stapel te oordra.
Met hierdie strategie voeg Google by tot die ekosisteem wat reeds vir C++ bestaan en inkorporeer huidige beleggings, kodebasisse en ontwikkelingsgemeenskappe.
'n Paar tale het hierdie benadering vir verskeie ekosisteme aangeneem, en Carbon poog om 'n soortgelyke funksie as C++ in hierdie situasies te speel:
- Java – Kotlin
- JavaScript – TypeScript
- C++ – Koolstof
C++ VS Koolstofkode
Koolstof moet 'n lae leerkurwe hê as jy reeds 'n C++-ontwikkelaar is. Dit is saamgestel uit 'n vaste stel grammatikale konstruksies wat natuurlik behoort te klink en maklik moet wees om te lees en te verstaan.
'n Voorbeeld van C++-kode:
Hierdie Koolstofkode stem ooreen met:
Koolstof vs roes
Nog 'n kontemporêre taal wat uitdruklik ontwerp is om aan die vereistes van geheue-veilige werkverrigtingtoepassings te voldoen, word Rust genoem.
So hoekom nie sommer Rust gebruik nie?
Terwyl sommige argumenteer dat Rust, wat as 'n Mozilla-projek begin het en daarna gegroei het tot 'n aansienlike publieke aanhang, 'n opvolger van C++ is, twyfel Carruth of die parallel steeds geldig is.
Rust is ongetwyfeld 'n fantastiese taal om 'n nuwe projek mee te begin, maar aangesien dit nie die "tweerigting-interoperabiliteit" van tale soos Java en Kotlin het nie, is dit uitdagend om geleidelik daarna oor te skakel.
Carruth het 'n lesing by CPP North gehou en mense wat reeds Rust gebruik, aangemoedig om dit aan te hou. Ontwikkelaars wat reeds aansienlike C++-kodebasisse het wat uitdagend is om na Rust om te skakel, moet Carbon gebruik.
Carbon is veral waarna Carruth verwys het as 'n "opvolgertaal", wat bo-op 'n bestaande ekosisteem, in hierdie geval C++, gebou is.
Vir daardie doel is Carbon bedoel om heeltemal versoenbaar te wees met huidige C++-kode, selfs al het dit baie doelwitte met Rust, soos om programmeerders te help met die skep van "prestasie-kritiese toepassings."
Daarbenewens is dit bedoel om die skuif van C++ na koolstof so eenvoudig moontlik te maak.
Gevolgtrekking
Laastens het Koolstoftaalskeppers moeite gedoen om aandag aan die skeppingsproses te gee. Die projek se kode is beskikbaar vir versoek en openlik gestoor op GitHub, en sy kultuur word gedefinieer as inklusief en oop vir beide private burgers en die IT-sektor.
Die Carbon-span het gedink dat Carbon 'n outonome projek moet wees wat deur die gemeenskap gedryf word en nie net 'n projek wat deur Google aangevuur word om in die toekoms te ontwikkel nie.
Caruth het bygevoeg dat hierdie konsep, ondanks belangstelling van 'n aantal IT-ondernemings, steeds in die eksperimentele stadium is.
Lewer Kommentaar