Во обид да го заменат преподобниот, но слаб C++, истражувачите на Google воведоа сосема нов „експериментален“ програмски јазик со отворен код наречен Carbon.
Carbon би можел да послужи како наследник на C++, јазик кој обезбедува едноставна почетна точка за програмерите за понов јазик кој се однесува на современите развојни концепти како безбедноста на меморијата и генериката.
Ова би било слично на тоа како Мајкрософт го изгради 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 со текот на времето.
Сепак, следниве се некои клучни карактеристики на новиот програмски јазик:
- За да именувате типови, користете изрази.
- Силни генерики со проверки на дефиниција
- Типови конкретно вршат интерфејси
- воведни фрази и основна граматика
- Покажувачите овозможуваат неограничен пристап и мутација.
- Вредностите за влезните параметри на функцијата се само за читање.
- Root именскиот простор е пакетот.
- 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++ во овие ситуации:
- Јава – Котлин
- JavaScript – TypeScript
- C++ - Јаглерод
C++ VS јаглероден код
Јаглеродот треба да има ниска крива на учење ако веќе сте развивач на C++. Тој е составен од фиксен сет на граматички конструкции кои треба да звучат природно и да бидат едноставни за читање и разбирање.
Пример за C++ код:
Овој јаглероден код одговара на:
Јаглерод против 'рѓа
Друг современ јазик дизајниран експресно да ги исполни барањата на апликациите за изведба безбедни за меморија се нарекува Rust.
Па зошто едноставно да не го користите Rust?
Додека некои тврдат дека Rust, кој започна како проект на Mozilla и последователно се зголеми за да има значителен јавен следбеник, е наследник на C++, Карут се сомнева дали паралелата сè уште е валидна.
Rust е несомнено фантастичен јазик со кој може да се започне нов проект, но бидејќи му недостига „двонасочна интероперабилност“ на јазици како Java и Kotlin, предизвик е постепено да се премине кон него.
Карут одржа предавање на CPP North и ги охрабри луѓето кои веќе го користеа Rust да продолжат да го прават тоа. Програмерите кои веќе имаат значителни бази на кодови C++ кои се предизвик за претворање во Rust треба да користат Carbon.
Конкретно, Carbon е она што Карут го нарече „јазик наследник“, кој е конструиран на врвот на постоечки екосистем, во овој пример C++.
За таа цел, Carbon треба да биде целосно компатибилен со тековниот C++ код, дури и ако има многу цели со Rust, како што е да им помогне на програмерите во создавањето „апликации кои се критични за перформансите“.
Покрај тоа, тој е наменет да го направи движењето од C++ на Carbon што е можно поедноставно.
Заклучок
Конечно, креаторите на јаглеродниот јазик се потрудија да обрнат внимание на процесот на создавање. Кодот на проектот е достапен за барање и отворено се чува на Github, а нејзината култура е дефинирана како инклузивна и отворена и за приватните граѓани и за ИТ секторот.
Тимот на Carbon сметаше дека Carbon треба да биде автономен проект управуван од заедницата, а не само проект поттикнат од Google за да се развива во иднина.
Карут додаде дека и покрај интересот од голем број ИТ бизниси, овој концепт се уште е во експериментална фаза.
Оставете Одговор