Муҳаққиқони Google бо мақсади иваз кардани забони муътабар, вале сусти C++, як забони нави барномасозии "таҷрибавӣ"-и кушодаро бо номи Carbon муаррифӣ карданд.
Карбон метавонад ҳамчун забони вориси C++ хидмат кунад, ки он барои таҳиягарон ба забони навтаре, ки ба консепсияҳои рушди муосир, ба монанди бехатарии хотира ва генерикҳо муроҷиат мекунад, як нуқтаи оддии ибтидоӣ фароҳам меорад.
Ин ба он монанд хоҳад буд, ки чӣ гуна Microsoft Typescript-ро барои навсозии JavaScript ва Kotlin барои таҳкими заъфҳои Java сохтааст.
Google дар тӯли солҳо як қатор забонҳои барномасозиро таҳия кардааст, ки баъзе аз онҳо шӯҳрат ва шӯҳрати назаррас пайдо кардаанд.
Масалан, Голанг (ё танҳо Go) барои осон кардани эҷоди серверҳо ва системаҳои тақсимшуда таҳия шудааст ва баъдан аз ҷониби ҷомеаи васеъ пазируфта шудааст.
Дарт забони барномасозӣ, ки ҳамчун ивазкунандаи JavaScript сохта шудааст, то оғози Flutter маъруф набуд.
Чандлер Каррут, корманди Google, идеяи худро дар бораи забони нави барномасозӣ бо номи Carbon 19 июли соли 2022 дар конвенсияи Cpp North дар Торонто пешниҳод кард. ба гуфтаи Конор Хоэкстра, ки иштирок карда, слайдхоро сабт карданд.
Барои муайян кардани сенария, Каррут нишон дод, ки чӣ гуна якчанд забонҳои барномасозии имрӯзаи маъруф насл доранд, ки ба таҳиягарон имкон медиҳанд, ки зуд самаранок бошанд ва инчунин аз тарҳрезии забони муосир баҳра баранд.
Биёед аз муқаддимаи умумии забони барномасозии Carbon оғоз кунем, аз ҷумла хусусиятҳои он, ҳадафи ихтирои Google аз он ва ғайра.
Муқаддима ба забони барномасозии карбон
19 июли соли 2022, Google Carbonро ҳамчун навтарин забони барномасозии худ муаррифӣ кард. Он барои иваз кардани C++ ба таври таҷрибавӣ пешбинӣ шуда буд.
Бо шарофати ба системаи генералӣ, ки зарурати тафтиши дубораи кодро барои ҳар як намуна аз байн мебарад, 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++, ки бефосила ва дуҷониба аст, ба ҳар як китобхона имкон медиҳад, ки Carbon-ро бидуни интиқоли қисми боқимондаи стек қабул кунад.
Бо ин стратегия, Google ба экосистемае, ки аллакай барои C++ мавҷуд аст, илова мекунад ва сармоягузориҳои ҷорӣ, пойгоҳҳои рамзӣ ва ҷомеаҳои рушдро дар бар мегирад.
Якчанд забонҳо ин равишро барои экосистемаҳои гуногун қабул кардаанд ва Carbon мекӯшад дар ин ҳолатҳо вазифаи шабеҳро бо C++ иҷро кунад:
- Java - Котлин
- JavaScript - TypeScript
- C++ – карбон
C++ VS Кодекси карбон
Агар шумо аллакай таҳиягари C++ бошед, карбон бояд хатти пасти омӯзиш дошта бошад. Он аз маҷмӯи устувори сохторҳои грамматикӣ иборат аст, ки бояд табиӣ садо диҳанд ва барои хондан ва фаҳмиш содда бошанд.
Намунаи рамзи C++:
Ин рамзи карбон мувофиқат мекунад:
Карбон vs Rust
Забони дигари муосир, ки ба таври возеҳ барои қонеъ кардани талаботи замимаҳои иҷрои хотираи бехатар тарҳрезӣ шудааст Rust номида мешавад.
Пас чаро танҳо Rust-ро истифода набаред?
Дар ҳоле ки баъзеҳо бар ин назаранд, ки Rust, ки ҳамчун як лоиҳаи Mozilla оғоз шуда, пас аз он шумораи зиёди пайравони оммавӣ афзоиш ёфтааст, вориси C++ аст, Каррут шубҳа дорад, ки параллел то ҳол эътибор дорад.
Rust бешубҳа як забони афсонавӣ аст, ки бо он лоиҳаи навро оғоз мекунад, аммо азбаски он "ҳамкории дуҷониба"-и забонҳое мисли Java ва Котлин надорад, тадриҷан гузаштан ба он душвор аст.
Каррут дар CPP North лексия хонд ва одамонеро ташвиқ кард, ки аз Rust аллакай истифода мекарданд, ки ин корро идома диҳанд. Таҳиягароне, ки аллакай пойгоҳҳои бузурги C++ доранд, ки табдил ба Rust душвор аст, бояд Carbon истифода баранд.
Махсусан, Карбон он чизест, ки Каррут ҳамчун "забони вориси" номида мешавад, ки дар болои экосистемаи мавҷуда сохта шудааст, дар ин маврид C++.
Бо ин мақсад, Carbon бояд комилан бо рамзи кунунии C++ мувофиқ бошад, ҳатто агар он бо Rust ҳадафҳои зиёде дошта бошад, ба монанди кӯмак ба барномасозон дар эҷоди "барномаҳои муҳими иҷроиш".
Илова бар ин, он пешбинӣ шудааст, ки ҳаракатро аз C++ ба Carbon то ҳадди имкон содда кунад.
хулоса
Ниҳоят, эҷодкорони забони карбон кӯшиш карданд, ки ба раванди офариниш диққат диҳанд. Рамзи лоиҳа барои дархост дастрас аст ва дар он кушода нигоҳ дошта мешавад Github, ва фарҳанги он ҳамчун фарогир ва боз барои шаҳрвандони хусусӣ ва бахши ТИ муайян карда шудааст.
Гурӯҳи Карбон фикр мекард, ки Карбон бояд як лоиҳаи мустақиле бошад, ки аз ҷониби ҷомеа асос ёфтааст, на танҳо лоиҳае, ки аз ҷониби Google таҳия шудааст, то дар оянда рушд кунад.
Карут афзуд, ки сарфи назар аз таваҷҷӯҳи як қатор ширкатҳои IT, ин консепсия ҳанӯз дар марҳилаи озмоишӣ қарор дорад.
Дин ва мазҳаб