Щоб замінити поважний, але млявий 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++.
Завдяки a генерична система, що усуває необхідність подвійної перевірки коду для кожного екземпляра, Carbon буде побудовано на основі сучасних концепцій програмування.
До кінця року дизайн планує надати базову робочу версію (версія 0.1).
Цілісність пам'яті є ключовим елементом, якого не вистачає в C++. Одним із основних джерел недоліків безпеки є проблеми з доступом до пам’яті.
Розробка динамічних перевірок меж, більш ефективне відстеження неініціалізованих станів і ретельний режим збірки налагодження за замовчуванням — усе це цілі команди Carbon. Творці мають намір з часом створити безпечну підмножину Carbon.
Однак нижче наведено деякі важливі характеристики нової мови програмування:
- Щоб назвати типи, використовуйте вирази.
- Сильні генерики з перевіркою визначень
- Типи спеціально виконують інтерфейси
- вступні фрази та базова граматика
- Покажчики дозволяють необмежений доступ і мутацію.
- Значення вхідних параметрів функції доступні лише для читання.
- Кореневим простором імен є пакет.
- API можна імпортувати, використовуючи назви їхніх пакетів.
- Метод оголошується через явний параметр об’єкта.
- За замовчуванням класи остаточні; є лише одна спадщина
Особливості Карбону
Сучасний і розвивається
- Оновлення між версіями Carbon прості та засновані на інструментах.
- Сильна мовна основа, особливо якщо ви використовували 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
Якщо ви вже є розробником C++, Carbon повинен мати низький рівень навчання. Він складається з фіксованого набору граматичних конструкцій, які мають звучати природно та бути простими для читання та розуміння.
Приклад коду C++:
Цей код Carbon відповідає:
Вуглець проти іржі
Інша сучасна мова, розроблена спеціально для задоволення вимог додатків із безпечною продуктивністю, називається Rust.
То чому б просто не використати Rust?
У той час як деякі стверджують, що Rust, який почався як проект Mozilla і згодом виріс, щоб мати значну кількість прихильників, є наступником C++, Каррут сумнівається, що ця паралель досі актуальна.
Rust, безсумнівно, є фантастичною мовою для початку нового проекту, але оскільки їй не вистачає «двонаправленої сумісності» таких мов, як Java і Kotlin, поступово переходити на неї складно.
Керрут прочитав лекцію на CPP North і закликав людей, які вже використовують Rust, продовжувати це робити. Розробники, які вже мають значні кодові бази C++, які складно конвертувати в Rust, повинні використовувати Carbon.
Зокрема, Каррут назвав «мовою-наступником» Carbon, яка побудована на основі існуючої екосистеми, у цьому випадку C++.
З цією метою Carbon має бути повністю сумісним із поточним кодом на C++, навіть якщо він має багато цілей із Rust, як-от допомога програмістам у створенні «критичних для продуктивності програм».
Крім того, він призначений зробити перехід від C++ до Carbon максимально простим.
Висновок
Нарешті, творці мови Carbon постаралися звернути увагу на процес створення. Код проекту доступний для запиту та відкрито зберігається на Github, а його культура визначається як інклюзивна та відкрита як для громадян, так і для ІТ-сектору.
Команда Carbon вважала, що Carbon має бути автономним проектом, керованим спільнотою, а не лише проектом, який підтримує Google, щоб розвиватися в майбутньому.
Карут додав, що, незважаючи на зацікавленість низки ІТ-бізнесів, ця концепція все ще знаходиться на експериментальній стадії.
залишити коментар