У спробе замяніць шаноўны, але млявы C++, даследчыкі Google прадставілі зусім новую «эксперыментальную» мову праграмавання з адкрытым зыходным кодам, якая атрымала назву Carbon.
Carbon можа стаць пераемнікам мовы C++, якая дае распрацоўнікам простую адпраўную кропку для новай мовы, якая разглядае сучасныя канцэпцыі распрацоўкі, такія як бяспека памяці і генерыкі.
Гэта было б падобна да таго, як Microsoft стварыла Typescript для абнаўлення JavaScript і Kotlin для ўзмацнення слабых месцаў у Java.
На працягу многіх гадоў Google распрацаваў шэраг моў праграмавання, некаторыя з якіх набылі значную вядомасць і вядомасць.
Напрыклад, Golang (або проста Go) быў распрацаваны для палягчэння стварэння сервераў і размеркаваных сістэм і пасля быў прыняты шырокай грамадскасцю.
Дартс мова праграмавання, які быў створаны ў якасці замены JavaScript, не стаў вядомы да запуску Flutter.
Чандлер Каррут, супрацоўнік Google, прадставіў сваю ідэю новай мовы праграмавання пад назвай Carbon 19 ліпеня 2022 г. на канвенцыі Cpp North у Таронта, паводле Конара Хукстры, якія прысутнічалі і запісвалі слайды.
Каб задаць сцэнар, Каррут прадэманстраваў, як некаторыя з самых папулярных сучасных моў праграмавання атрымалі нашчадкаў, якія дазваляюць распрацоўнікам хутка быць прадуктыўнымі, а таксама атрымліваць выгаду ад сучаснага моўнага дызайну.
Давайце пачнем з агульнага ўвядзення мовы праграмавання Carbon, у тым ліку яе функцый, мэты яе вынаходкі Google і шмат іншага.
Уводзіны ў мову праграмавання Carbon
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++ сур'ёзна абцяжараны дызайнам гэтых моў. Гэтыя перашкоды ўключаюць накладныя выдаткі на прадукцыйнасць і мадыфікацыі ідыяматычнага дызайну праграмнага забеспячэння.
Carbon - гэта не спроба паступова палепшыць C++; хутчэй, гэта моўная стратэгія-пераемнік. Яго ўвага надаецца ўзаемадзеянню C++, а таксама шырокаму прызнанню і міграцыі для распрацоўшчыкаў і кодавых баз, якія зараз выкарыстоўваюць C++.
Мова замены C++ павінна мець:
- Прадукцыйнасць, параўнальная з C++, з'яўляецца найважнейшай характарыстыкай для распрацоўшчыкаў.
- Кіраваная крывая навучання і ўзровень знаёмства для праграмістаў C++
- Міграцыя, якая з'яўляецца маштабаванай і ўключае некаторыя пераклады ідыёматычнага кода C++ з крыніцы ў крыніцу.
- Падобная выразнасць і падтрымка архітэктуры і дызайну бягучага праграмнага забеспячэння.
- Узаемадзеянне з C++, якое з'яўляецца бясшвоўным і двухнакіраваным, што дазваляе любой бібліятэцы прыняць Carbon без неабходнасці пераносу астатняй часткі стэка.
З дапамогай гэтай стратэгіі Google дапаўняе экасістэму, якая ўжо існуе для C++, і ўключае бягучыя інвестыцыі, кодавыя базы і супольнасці распрацоўшчыкаў.
Некалькі моў прынялі гэты падыход для розных экасістэм, і Carbon імкнецца выконваць функцыю, аналагічную C++, у гэтых сітуацыях:
- Ява - Котлін
- JavaScript – TypeScript
- C++ - вуглярод
C++ VS Carbon Code
Carbon павінен мець нізкую крывую навучання, калі вы ўжо з'яўляецеся распрацоўшчыкам C++. Ён складаецца з фіксаванага набору граматычных канструкцый, якія павінны гучаць натуральна і быць простымі для чытання і разумення.
Прыклад кода C++:
Гэты вугляродны код адпавядае:
Вуглярод супраць іржы
Яшчэ адна сучасная мова, распрацаваная спецыяльна для задавальнення патрабаванняў прыкладанняў з бяспечнай прадукцыйнасцю памяці, называецца Rust.
Дык чаму б проста не выкарыстоўваць Rust?
У той час як некаторыя сцвярджаюць, што Rust, які пачынаўся як праект Mozilla і пасля якога вырас да значнай колькасці прыхільнікаў, з'яўляецца пераемнікам C++, Каррут сумняваецца, што гэтая паралель усё яшчэ актуальная.
Rust, несумненна, з'яўляецца фантастычнай мовай, з якой можна пачынаць новы праект, але паколькі ёй не хапае «двунакіраванай сумяшчальнасці» такіх моў, як Java і Kotlin, паступова пераходзіць на яе складана.
Каррут прачытаў лекцыю на CPP North і заклікаў людзей, якія ўжо выкарыстоўваюць Rust, працягваць гэта рабіць. Распрацоўшчыкі, якія ўжо маюць значныя кодавыя базы C++, якія складана пераўтварыць у Rust, павінны выкарыстоўваць Carbon.
У прыватнасці, Carruth - гэта тое, што Каррут назваў "мовай-пераемнікам", якая пабудавана на аснове існуючай экасістэмы, у дадзеным выпадку C++.
З гэтай мэтай Carbon павінен быць цалкам сумяшчальным з бягучым кодам C++, нават калі ён мае шмат мэтаў з Rust, такіх як дапамога праграмістам у стварэнні «крытычных для прадукцыйнасці прыкладанняў».
Акрамя таго, ён закліканы зрабіць пераход ад C++ да Carbon максімальна простым.
заключэнне
Нарэшце, стваральнікі мовы Carbon пастараліся звярнуць увагу на працэс стварэння. Код праекта даступны для запыту і захоўваецца адкрыта на Github, а яго культура вызначаецца як інклюзіўная і адкрытая як для грамадзян, так і для ІТ-сектара.
Каманда Carbon палічыла, што Carbon павінен быць аўтаномным праектам, якім рухае супольнасць, а не толькі праектам, які падсілкоўваецца Google, каб развівацца ў будучыні.
Карут дадаў, што, нягледзячы на цікавасць з боку шэрагу ІТ-бізнесаў, гэтая канцэпцыя ўсё яшчэ знаходзіцца ў эксперыментальнай стадыі.
Пакінуць каментар