Урматтуу, бирок шалаакы C++ тилин алмаштыруу аракетинде Google изилдөөчүлөрү Carbon деп аталган жапжаңы “эксперименталдык” ачык булактуу программалоо тилин киргизишти.
Көмүртек C++ тилинин мураскору катары кызмат кыла алат, ал иштеп чыгуучулар үчүн эс тутумдун коопсуздугу жана генериктери сыяктуу заманбап өнүгүү концепцияларын караган жаңы тилге жөнөкөй баштапкы чекит берет.
Бул Java-нын алсыз жактарын күчөтүү үчүн JavaScript жана Kotlinди жаңыртуу үчүн Microsoft Typescriptти кантип курганына окшош болмок.
Google жыл бою бир катар программалоо тилдерин иштеп чыкты, алардын айрымдары олуттуу атактуулукка жана атактуулукка ээ болду.
Мисалы, Голанг (же жөн гана Go) серверлерди жана бөлүштүрүлгөн системаларды түзүүнү жеңилдетүү үчүн иштелип чыккан жана кийинчерээк жалпы коомчулук тарабынан кабыл алынган.
Дарт программалоо тили, JavaScript алмаштыруучу катары түзүлгөн, Flutter ишке киргенге чейин белгилүү болгон эмес.
Google'дун кызматкери Чандлер Каррут 19-жылдын 2022-июлунда Торонтодогу Cpp North конгрессинде Carbon аттуу жаңы программалоо тили боюнча идеясын сунуштады. Конор Хоэкстранын айтымында, ким катышып, слайддарды жаздырган.
Сценарийди түзүү үчүн, Каррут азыркы учурдагы эң популярдуу программалоо тилдеринин бир нечеси иштеп чыгуучуларга тез арада жемиштүү болууга жана ошондой эле заманбап тил дизайнынан пайда алууга мүмкүндүк берген урпактары бар экенин көрсөттү.
Келгиле, Carbon программалоо тилин жалпы тааныштыруу менен баштайлы, анын ичинде анын өзгөчөлүктөрү, Google аны ойлоп табуу максаты жана башкалар.
Carbon программалоо тилине киришүү
19-жылдын 2022-июлунда Google Карбонду өзү жараткан эң жаңы программалоо тили катары ачты. Ал эксперименталдык түрдө 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++ менен үзгүлтүксүз жана эки багыттуу болгон өз ара аракеттенүү, бул ар бир китепканага стектин калган бөлүгүн портсуз эле Карбонду кабыл алууга мүмкүндүк берет.
Бул стратегия менен Google C++ үчүн мурунтан эле бар болгон экосистемага кошулат жана учурдагы инвестицияларды, коддук базаларды жана өнүктүрүү коомдоштуктарын камтыйт.
Бир нече тилдер бул ыкманы ар кандай экосистемалар үчүн колдонушкан жана Carbon бул жагдайларда C++ менен окшош функцияны аткарууга умтулат:
- Java – Котлин
- JavaScript – TypeScript
- C++ – Көмүртек
C++ VS Carbon Code
Эгер сиз C++ иштеп чыгуучусу болсоңуз, анда көмүртек төмөн окуу ийри сызыгына ээ болушу керек. Ал табигый угулушу жана окууга жана түшүнүүгө жөнөкөй болууга тийиш болгон туруктуу грамматикалык конструкциялардын жыйындысынан турат.
C++ кодунун мисалы:
Бул көмүртек коду дал келет:
Көмүртек Vs Rust
Эстутум үчүн коопсуз аткаруу колдонмолорунун талаптарына жооп берүү үчүн атайын иштелип чыккан дагы бир заманбап тил Rust деп аталат.
Анда эмне үчүн жөн эле Rust колдонбойт?
Кээ бирөөлөр Mozilla долбоору катары башталып, кийинчерээк коомчулуктун чоң кызыгуусуна ээ болгон Rust C++тин мураскери деп ырасташса, Каррут параллелдин дагы деле күчүндө экенинен күмөн санайт.
Rust - бул жаңы долбоорду баштоо үчүн фантастикалык тил, бирок ал Java жана Котлин сыяктуу тилдердин "эки багыттуу өз ара иштешүүсү" жок болгондуктан, ага акырындык менен өтүү кыйынга турат.
Каррут CPP North программасында лекция окуп, Русту колдонуп жүргөн адамдарды дагы ушундай кылууга үндөдү. Rustко айландыруу кыйынга турган C++ коддук базалары бар иштеп чыгуучулар Carbon колдонушу керек.
Атап айтканда, Carbon - бул Каррут "мураскор тил" деп атаган нерсе, ал учурдагы экосистеманын үстүнө курулган, бул мисалда C++.
Ушул максатта, Carbon азыркы C++ коду менен толук шайкеш келет, ал тургай, анын Rust менен көптөгөн максаттары бар болсо да, мисалы, программисттерге "аткаруучулук үчүн маанилүү тиркемелерди" түзүүдө жардам берүү.
Мындан тышкары, ал C++тен Carbonга өтүүнү мүмкүн болушунча жөнөкөйлөтүү үчүн арналган.
жыйынтыктоо
Акыр-аягы, Carbon тили жаратуучулар жаратуу процессине көңүл бурууга аракет кылышкан. Долбоордун коду сурам үчүн жеткиликтүү жана ачык сакталат Github, жана анын маданияты инклюзивдик жана жеке жарандар үчүн да, IT сектору үчүн да ачык деп аныкталган.
Carbon командасы Carbon келечекте өнүгүү үчүн Google тарабынан гана эмес, коомчулук тарабынан ишке ашырылган автономдуу долбоор болушу керек деп ойлошкон.
Карут кошумчалагандай, бир катар IT ишканаларынын кызыгуусуна карабастан, бул концепция дагы эле эксперименттик баскычта.
Таштап Жооп