Möhtərəm, lakin ləng C++ dilini əvəz etmək üçün Google tədqiqatçıları Carbon adlı tamamilə yeni “eksperimental” açıq mənbə proqramlaşdırma dilini təqdim etdilər.
Carbon, yaddaş təhlükəsizliyi və generiklər kimi müasir inkişaf konsepsiyalarına müraciət edən daha yeni bir dil üçün tərtibatçılar üçün sadə başlanğıc nöqtəsini təmin edən C++ dilinin davamçısı kimi xidmət edə bilər.
Bu, Microsoftun Java-da zəif cəhətləri gücləndirmək üçün JavaScript və Kotlin-i yeniləmək üçün Typescript-i necə qurduğuna bənzəyir.
Google illər ərzində bir sıra proqramlaşdırma dilləri işləyib hazırlayıb, onlardan bəziləri əhəmiyyətli şöhrət və şöhrət qazanıb.
Məsələn, Golang (və ya sadəcə Go) serverlərin və paylanmış sistemlərin yaradılmasını asanlaşdırmaq üçün hazırlanmışdır və sonradan geniş ictimaiyyət tərəfindən qəbul edilmişdir.
Dart proqramlaşdırma diliJavaScript əvəzedicisi kimi yaradılan , Flutter işə salınana qədər tanınmadı.
Google işçisi Chandler Carruth 19 iyul 2022-ci ildə Torontoda Cpp North konvensiyasında Carbon adlı yeni proqramlaşdırma dili üçün ideyasını təqdim etdi. Conor Hoekstra'ya görə, kim iştirak edib slaydları qeyd edib.
Ssenari qurmaq üçün Karrut nümayiş etdirdi ki, günümüzün ən çox bəyənilən proqramlaşdırma dillərindən bir neçəsinin nəsilləri tərtibatçılara sürətlə məhsuldar olmağa və həmçinin müasir dil dizaynından faydalanmağa imkan verir.
Carbon proqramlaşdırma dilinin ümumi təqdimatı ilə başlayaq, o cümlədən onun xüsusiyyətləri, Google-un ixtirasının məqsədi və s.
Karbon proqramlaşdırma dilinə giriş
19 iyul 2022-ci ildə Google, yaratdığı ən yeni proqramlaşdırma dili kimi Carbon-u təqdim etdi. C++ dilini eksperimental olaraq əvəz etmək nəzərdə tutulmuşdu.
A sayəsində generik sistemHər bir nümunə üçün kodu iki dəfə yoxlamaq ehtiyacını aradan qaldıran Carbon müasir proqramlaşdırma konsepsiyaları əsasında qurulacaq.
İlin sonuna qədər dizayn əsas əməliyyat versiyasını (versiya 0.1) təqdim etməyi planlaşdırır.
Yaddaş bütövlüyü C++-da çatışmayan vacib elementdir. Təhlükəsizlik qüsurlarının əsas mənbələrindən biri yaddaşa giriş problemləridir.
Dinamik sərhəd yoxlamalarının inkişafı, işə salınmamış vəziyyətlərin daha çox izlənilməsi və hərtərəfli defolt düzəliş rejimi Carbon komandasının bütün məqsədləridir. Yaradıcılar zamanla təhlükəsiz Karbon alt dəsti yaratmaq niyyətindədirlər.
Bununla belə, yeni proqramlaşdırma dilinin bəzi mühüm xüsusiyyətləri aşağıdakılardır:
- Növləri adlandırmaq üçün ifadələrdən istifadə edin.
- Tərif yoxlamaları ilə güclü generiklər
- Növlər xüsusi olaraq interfeysləri həyata keçirir
- giriş ifadələri və əsas qrammatika
- Göstəricilər məhdudiyyətsiz giriş və mutasiyaya imkan verir.
- Funksiya daxiletmə parametrləri üçün dəyərlər yalnız oxunur.
- Kök ad sahəsi paketdir.
- API-lər paket adlarından istifadə etməklə idxal edilə bilər.
- Metod açıq obyekt parametri vasitəsilə elan edilir.
- Dərslər standart olaraq yekundur; yalnız bir miras var
Karbonun xüsusiyyətləri
Müasir və inkişaf edən
- Carbon versiyaları arasında təkmilləşdirmələr sadə və alətə əsaslanır.
- Güclü dil əsasları, xüsusən də C++ istifadə etmisinizsə və öyrənmək üçün sadədir
- Təhlükəsiz təməllər və yaddaş üçün təhlükəsiz alt qrupa addım-addım yanaşma
Açıq mənbə cəmiyyətini salamlayıram
- İsti, qəbuledici və dəvətli olmağa çalışan bir cəmiyyət
- Onun məqsədləri və prioritetləri fərqli və güclü idarəetmədir
- Kompilyator, kitabxanalar, sənədlər, alətlər, paket idarəetməsi və s. ilə hamısı bir yerdə strategiya
Tez və C++ ilə uyğun gəlir
- ilə birlikdə işləyin C ++ kodu miras və şablonlar daxil olmaqla, artıq sizdə var
- LLVM ilə C++ ilə müqayisə olunan performans və bit və ünvanlara aşağı səviyyəli giriş
- Sürətli və miqyaslana bilən və mövcud C++ qurma sistemlərinizlə uyğun olan qurğular
Google niyə Carbon proqramlaşdırma dilini yaratdı?
Performans baxımından kritik proqram təminatı əsasən böyük və genişlənən kod bazalarına və investisiyalara malik olan C++ dilində yazılmağa davam edir.
Bununla belə, yuxarıda qeyd edildiyi kimi inkişaf etdiricilərin tələblərinə cavab verməkdə çətinlik çəkir, əsasən illərlə texnoloji borcun yığılması səbəbindən.
C++-ın yığılmış texniki borcları və təkamül prosesi ilə bağlı çətinliklər səbəbindən tədricən təkmilləşdirmək olduqca çətindir.
Bu məsələlərin həllinə ideal yanaşma C və ya C++ ənənələrini birbaşa miras almaqdansa, müasir generik sistem, modul kod strukturu və ardıcıl, sadə sintaksis kimi güclü dil təməlindən başlamaqdır.
Go, Swift, Kotlin, Rust və daha bir çox digər müasir dillər artıq mükəmməl inkişaf təcrübəsi təklif edir. Bu cari dillərdən birini istifadə etməyi bacaran tərtibatçılar bunu etməlidirlər.
Təəssüf ki, C++ dilinin qəbulu və miqrasiyasına bu dillərin dizaynı ciddi şəkildə mane olur. Bu maneələrə performans yükü və proqramın idiomatik dizaynında dəyişikliklər daxildir.
Karbon C++ dilini tədricən təkmilləşdirmək cəhdi deyil; daha doğrusu, bu, davamçı dil strategiyasıdır. Onun diqqəti C++ ilə qarşılıqlı fəaliyyətə, həmçinin hazırda C++ istifadə edən tərtibatçılar və kod bazaları üçün geniş qəbul və miqrasiyaya yönəlib.
C++ əvəzetmə dilində aşağıdakılar olmalıdır:
- C++ ilə müqayisə edilə bilən performans inkişaf etdiricilər üçün vacib bir xüsusiyyətdir.
- İdarə edilə bilən öyrənmə əyrisi və C++ proqramçıları üçün tanışlıq səviyyəsi
- Ölçəklənən və bəzi mənbədən mənbəyə idiomatik C++ kodu tərcüməsini ehtiva edən miqrasiya.
- Mövcud proqram təminatının arxitekturası və dizaynı üçün oxşar ifadəlilik və dəstək.
- Sorunsuz və iki istiqamətli olan C++ ilə qarşılıqlı əlaqə, istənilən kitabxanaya yığının qalan hissəsini daşımadan Carbon qəbul etməyə imkan verir.
Bu strategiya ilə Google artıq C++ üçün mövcud olan ekosistemə əlavə edir və cari investisiyaları, kod bazalarını və inkişaf icmalarını özündə birləşdirir.
Bir neçə dil bu yanaşmanı müxtəlif ekosistemlər üçün qəbul etmişdir və Carbon bu vəziyyətlərdə C++ ilə oxşar funksiyanı yerinə yetirməyə çalışır:
- Java - Kotlin
- JavaScript - TypeScript
- C++ – Karbon
C++ VS Karbon Kodu
Əgər siz artıq C++ tərtibatçısınızsa, karbon aşağı öyrənmə əyrisinə sahib olmalıdır. O, təbii səslənməli və oxunması və başa düşülməsi asan olan sabit qrammatik konstruksiyalardan ibarətdir.
C++ koduna bir nümunə:
Bu Karbon kodu uyğundur:
Karbon Vs Pas
Yaddaş üçün təhlükəsiz performans proqramlarının tələblərinə cavab vermək üçün nəzərdə tutulmuş başqa bir müasir dil Rust adlanır.
Bəs niyə sadəcə Rust istifadə etmirsiniz?
Bəziləri Mozilla layihəsi kimi başlayan və sonradan xeyli sayda izləyici kütləsi qazanan Rust-un C++-ın davamçısı olduğunu iddia etsə də, Karrut paralelin hələ də qüvvədə olub-olmamasından şübhələnir.
Rust, şübhəsiz ki, yeni bir layihəyə başlamaq üçün fantastik bir dildir, lakin Java və Kotlin kimi dillərin "iki istiqamətli qarşılıqlı fəaliyyət qabiliyyəti" olmadığından, ona tədricən keçmək çətindir.
Carruth CPP North-da mühazirə oxudu və artıq Rustdan istifadə edən insanları bunu davam etdirməyə təşviq etdi. Rust-a çevirmək çətin olan kifayət qədər böyük C++ kod bazalarına sahib olan tərtibatçılar Carbon-dan istifadə etməlidirlər.
Xüsusilə, Carbon, Carruth-un mövcud ekosistemin üstündə qurulmuş "varis dili" kimi istinad etdiyi şeydir, bu misalda C++.
Bu məqsədlə Carbon, Rust ilə proqramçılara “performans baxımından kritik proqramlar” yaratmaqda kömək etmək kimi bir çox məqsədləri olsa belə, mövcud C++ kodu ilə tamamilə uyğun olmalıdır.
Bundan əlavə, C++-dan Carbon-a keçidi mümkün qədər sadə etmək nəzərdə tutulur.
Nəticə
Nəhayət, Karbon dili yaradıcıları yaradılış prosesinə diqqət yetirmək üçün səy göstərdilər. Layihənin kodu sorğu üçün mövcuddur və açıq şəkildə saxlanılır Github, və onun mədəniyyəti həm özəl vətəndaşlar, həm də İT sektoru üçün inklüziv və açıq olaraq müəyyən edilir.
Carbon komandası hesab edirdi ki, Carbon gələcəkdə inkişaf etmək üçün təkcə Google tərəfindən dəstəklənən bir layihə deyil, cəmiyyət tərəfindən idarə olunan avtonom bir layihə olmalıdır.
Caruth əlavə etdi ki, bir sıra İT bizneslərinin marağına baxmayaraq, bu konsepsiya hələ də eksperimental mərhələdədir.
Cavab yaz