Құрметті, бірақ баяу C++ тілін алмастыру үшін Google зерттеушілері Carbon деп аталатын жаңа «эксперименталды» ашық бастапқы бағдарламалау тілін енгізді.
Көміртек C++ тілінің мұрагері бола алады, ол әзірлеушілерге жад қауіпсіздігі және генериктер сияқты заманауи даму тұжырымдамаларын қарастыратын жаңа тілге қарапайым бастапқы нүкте береді.
Бұл Microsoft корпорациясының Java-дағы әлсіз жақтарын күшейту үшін JavaScript және Kotlin-ті жаңарту үшін Typescript құрастырғанына ұқсайды.
Google көптеген жылдар бойы бірнеше бағдарламалау тілдерін әзірледі, олардың кейбіреулері айтарлықтай танымал және танымал болды.
Мысалы, Голанг (немесе жай ғана Go) серверлер мен таратылған жүйелерді құруды жеңілдету үшін әзірленді және кейіннен жұртшылық оны қабылдады.
Дарт бағдарламалау тіліJavaScript алмастырғышы ретінде жасалған , Flutter іске қосылғанға дейін танымал болған жоқ.
Google қызметкері Чандлер Каррут 19 жылдың 2022 шілдесінде Торонтодағы Cpp North конвенциясында Carbon деп аталатын жаңа бағдарламалау тілі туралы идеясын ұсынды. Конор Хоэкстраның айтуынша, кім қатысып, слайдтарды жазды.
Сценарийді орнату үшін Каррут бүгінгі күннің ең танымал бірнеше бағдарламалау тілдерінің ұрпақтары бар екенін көрсетті, бұл әзірлеушілерге жылдам өнімді болуға және сонымен қатар заманауи тіл дизайнынан пайда табуға мүмкіндік береді.
Carbon бағдарламалау тілін, оның ішінде оның мүмкіндіктерін, оны Google ойлап табу мақсатын және т.б. жалпы таныстырудан бастайық.
Carbon бағдарламалау тіліне кіріспе
19 жылдың 2022 шілдесінде Google өзі жасаған ең жаңа бағдарламалау тілі ретінде Carbon тілін ашты. Ол эксперименттік түрде C++ тілін ауыстыруға арналған.
A арқасында генериктер жүйесі, бұл әрбір инстанция үшін кодты екі рет тексеру қажеттілігін болдырмайды, Carbon заманауи бағдарламалау тұжырымдамаларының негізінде құрылады.
Жыл соңына дейін дизайн негізгі операциялық нұсқаны (0.1 нұсқасы) қамтамасыз етуді жоспарлап отыр.
Жадтың тұтастығы C++ жетіспейтін маңызды элемент болып табылады. Қауіпсіздік ақауларының негізгі көздерінің бірі жадқа қол жеткізу мәселелері болып табылады.
Динамикалық шектерді тексеруді дамыту, инициализацияланбаған күйлерді көбірек қадағалау және мұқият әдепкі жөндеуді құру режимі Carbon командасының барлық мақсаттары болып табылады. Жасаушылар уақыт өте келе қауіпсіз Carbon жиынын жасамақшы.
Дегенмен, жаңа бағдарламалау тілінің келесі маңызды сипаттамалары бар:
- Түрлерді атау үшін өрнектерді пайдаланыңыз.
- Анықтама тексерулері бар күшті генериктер
- Түрлер интерфейстерді арнайы жүзеге асырады
- кіріспе сөз тіркестері және негізгі грамматика
- Көрсеткіштер шектеусіз қол жеткізуге және мутацияға мүмкіндік береді.
- Функция енгізу параметрлерінің мәндері тек оқуға арналған.
- Түбір аттар кеңістігі бума болып табылады.
- API интерфейстерін олардың бума атаулары арқылы импорттауға болады.
- Әдіс айқын нысан параметрі арқылы жарияланады.
- Сабақтар әдепкі бойынша соңғы болып табылады; бір ғана мұра бар
Көміртектің қасиеттері
Заманауи және дамушы
- Carbon нұсқалары арасындағы жаңартулар қарапайым және құралға негізделген.
- Күшті тіл негіздері, әсіресе C++ тілін пайдалансаңыз және үйрену оңай
- Қауіпсіз негіздер және жадқа қауіпсіз ішкі жиынға қадамдық тәсіл
Ашық дереккөз қауымдастығын қарсы алу
- Жылы болуға, қабылдауға және шақыруға ұмтылатын қауымдастық
- Оның мақсаттары мен басымдықтары айқын және күшті басқару болып табылады
- Компилятор, кітапханалар, құжаттама, құралдар, пакетті басқару және т.б. бар барлығы бір стратегия
Жылдам және C++ тілімен үйлесімді
- -мен бірге жұмыс жасаңыз C ++ коды мұраны және үлгілерді қоса, сізде бұрыннан бар
- LLVM көмегімен өнімділікті C++-пен салыстыруға болады және биттерге және мекенжайларға төмен деңгейлі қолжетімділік
- Жылдам және масштабталатын және бұрыннан бар C++ құрастыру жүйелерімен үйлесімді құрастырмалар
Неліктен Google Carbon бағдарламалау тілін жасады?
Өнімділік үшін маңызды бағдарламалық қамтамасыз ету негізінен C++ тілінде жазылады, оның кодтық базалары мен инвестициялары кеңейеді.
Дегенмен, ол жоғарыда айтылғандай, әзірлеушілердің талаптарын ілгерілету және қанағаттандыру қиынға соғуда, бұл көбінесе технологиялық қарыздың көпжылдығына байланысты.
C++-ті біртіндеп жақсарту өте қиын, себебі ол жинақталған техникалық қарызға және оның эволюция процесіндегі қиындықтарға байланысты.
Бұл мәселелерді шешудің идеалды тәсілі C немесе C++ дәстүрін тікелей мұра етуден гөрі, қазіргі заманғы генериктер жүйесі, модульдік код құрылымы және дәйекті, қарапайым синтаксис сияқты күшті тілдік негізден бастау болып табылады.
Go, Swift, Kotlin, Rust және басқа да көптеген заманауи тілдер қазірдің өзінде тамаша даму тәжірибесін ұсынады. Осы қазіргі тілдердің бірін пайдалана алатын әзірлеушілер қажет.
Өкінішке орай, C++ тілін қабылдау және көшіру осы тілдердің дизайнымен айтарлықтай кедергі келтіреді. Бұл кедергілер өнімділікке қосымша шығындарды және бағдарламалық құралдың идиоматикалық дизайнына өзгертулерді қамтиды.
Көміртек бірте-бірте C++ жақсарту әрекеті емес; керісінше, бұл ізбасар тіл стратегиясы. Оның назары C++ өзара әрекеттестігіне, сонымен қатар қазіргі уақытта C++ қолданатын әзірлеушілер мен кодтық базалар үшін кеңінен қабылдау және көшіру болып табылады.
C++ ауыстыру тілінде мыналар болуы керек:
- C++-пен салыстырылатын өнімділік әзірлеушілер үшін маңызды сипаттама болып табылады.
- Басқарылатын оқу қисығы және C++ бағдарламашылары үшін танысу деңгейі
- Кеңейтілетін және кейбір көзден көзге идиоматикалық C++ код аудармасын қамтитын тасымалдау.
- Ағымдағы бағдарламалық жасақтаманың архитектурасы мен дизайнына ұқсас экспрессивтілік және қолдау.
- Кез келген кітапханаға стектің қалған бөлігін портқа апармай-ақ көміртекті қабылдауға мүмкіндік беретін біркелкі және екі бағытты болып табылатын C++ тілімен өзара әрекеттесу.
Бұл стратегия арқылы Google C++ үшін бұрыннан бар экожүйені қосады және ағымдағы инвестицияларды, кодтық базаларды және даму қауымдастықтарын біріктіреді.
Бірнеше тіл әртүрлі экожүйелер үшін бұл тәсілді қабылдады және Carbon осы жағдайларда C++-ге ұқсас функцияны орындауға тырысады:
- Java – Котлин
- JavaScript – TypeScript
- C++ – Көміртек
C++ VS көміртегі коды
Егер сіз қазірдің өзінде C++ әзірлеушісі болсаңыз, көміртегі төмен оқу қисығына ие болуы керек. Ол табиғи естілуі және оқуға және түсінуге қарапайым болуы керек грамматикалық құрылымдардың тұрақты жиынтығынан тұрады.
C++ кодының мысалы:
Бұл көміртек коды сәйкес келеді:
Көміртек тотқа қарсы
Жадты сақтайтын өнімділік қолданбаларының талаптарын қанағаттандыру үшін арнайы жасалған тағы бір заманауи тіл Rust деп аталады.
Неліктен жай ғана Rust қолданбасқа?
Кейбіреулер Mozilla жобасы ретінде басталып, кейін жұртшылықтың назарына іліккен Rust C++ тілінің мұрагері деп санаса да, Каррут бұл параллельдің әлі де жарамды екеніне күмәнданады.
Rust - бұл жаңа жобаны бастауға болатын фантастикалық тіл, бірақ оған Java және Kotlin сияқты тілдердің «екі бағытты өзара әрекеттесу қабілеті» жетіспейтіндіктен, оған біртіндеп көшу қиынға соғады.
Каррут Солтүстік CPP-де лекция оқып, Рустты пайдаланып жүрген адамдарды осылай жалғастыруға шақырды. Rust-қа түрлендіру қиынға соғатын үлкен C++ кодтық базасы бар әзірлеушілер Carbon пайдалануы керек.
Атап айтқанда, Carbon - бұл Каррут «мұрагер тіл» деп атаған нәрсе, ол бар экожүйенің үстіне салынған, бұл мысалда C++.
Осы мақсатта Carbon қазіргі C++ кодымен толық үйлесімді болуы керек, тіпті оның Rust-пен көптеген мақсаттары болса да, мысалы, бағдарламашыларға «өнімділігі маңызды қосымшаларды» құруға көмектесу.
Бұған қоса, ол C++-тен Carbon-қа көшуді мүмкіндігінше қарапайым ету үшін арналған.
қорытынды
Ақырында, көміртек тілін жасаушылар жасау процесіне назар аударуға күш салды. Жоба коды сұрау үшін қол жетімді және ашық түрде сақталады GitHub, және оның мәдениеті инклюзивті және жеке азаматтар үшін де, IT секторы үшін де ашық ретінде анықталады.
Carbon командасы болашақта дамуы үшін Carbon тек Google ғана емес, қоғамдастық басқаратын автономды жоба болуы керек деп ойлады.
Карут бірқатар IT-бизнестердің қызығушылығына қарамастан, бұл тұжырымдама әлі де эксперименттік кезеңде екенін айтты.
пікір қалдыру