🧵 Действительно ли язык Carbon является следующим языком C++

Язык Carbon был представлен инженером-программистом Google Чандлером Каррутом на конференции C++ North в Торонто на этой неделе. Чендлер описал язык программирования как «экспериментальный преемник C++», вызвав большой интерес в сообществе C++.

Carbon был запущен как новый «экспериментальный» язык программирования с открытым исходным кодом, чтобы преодолеть медленную эволюцию C++.

Подобно тому, как Microsoft создала Typescript для обновления JavaScript, а Kotlin был создан для устранения недостатков Java, Carbon может стать языком-преемником C++, который предлагает разработчикам легкую точку перехода на более новый язык, учитывающий современные концепции разработки, такие как безопасность памяти и дженерики.

Конор Хоэкстра
@code_report
Прямая трансляция с выступления @chandlerc1024 на конференции @CppNorth 2022! 1/ 🧵
13:19 PM — 19 Jul 2022

🤔 Так почему сейчас?

Учитывая, что C++ является развилкой C и что C — язык 50-летней давности, неудивительно, что язык имеет значительное количество проблем. Команда Carbon утверждает, что со временем разработчики C++ добавляли функции, а не изменяли их, что привело к сложным взаимодействиям. Язык Carbon стремится стать «чистым листом».

C++ является доминирующим языком для программного обеспечения, критичного к производительности. Разработчики Carbon отмечают, что постепенное обновление C++ чрезвычайно сложно из-за его истории и технического долга.

Одним из вариантов является переход на другой язык, такой как Rust, Kotlin, Swift или Go. Но сделать это сложно, к тому же эти языки могут потребовать затрат на производительность. Язык Carbon стремится сохранить двунаправленную совместимость, соответствовать производительности C++ и иметь разумную кривую обучения для программистов C++.


🤯 Почему Carbon

Разработчики хотят выпустить основную рабочую версию («0.1») к концу года. Carbon будет построен на фундаменте современных принципов программирования, включая систему generics, которая избавит от необходимости проверять и перепроверять код для каждой инстанциации.

Еще одна крайне необходимая функция, отсутствующая в C++, — безопасность памяти. Ошибки доступа к памяти являются одним из самых больших виновников эксплойтов безопасности. Разработчики Carbon будут искать способы лучшего отслеживания неинициализированных состояний, разрабатывать API и идиомы, поддерживающие динамические проверки границ, и создавать всеобъемлющий режим сборки с отладкой по умолчанию. Со временем разработчики планируют создать безопасное подмножество Carbon.

На форуме Карут рассказал о том, почему разработчикам C++ стоит задуматься о внедрении Carbon в свою кодовую базу, и поделился некоторыми особенностями языка.

  • Введение ключевых слов и простая грамматика
  • Входные параметры функций являются значениями, доступными только для чтения
  • Указатели обеспечивают косвенный доступ и изменяемость
  • Использование выражений для именования типов корневое пространство имен пакета
  • Импорт API через имя пакета
  • Явный параметр объекта объявляет наследование по методам; классы по умолчанию конечны
  • Мощные, проверенные на определения генерические функции
  • Типы явно реализуют интерфейсы

Если вам интересно начать работу с Carbon, вы можете загрузить исходный код и поэкспериментировать с ним на своем устройстве.

carbon-language / carbon-lang

Основной репозиторий языка Carbon Language: документы, дизайн, реализация и сопутствующие инструменты. (ПРИМЕЧАНИЕ: Carbon Language является экспериментальным; см. README)

Carbon Language:
Экспериментальный преемник C++

Зачем? | Цели | Статус | Начало работы | Присоединяйтесь к нам

Посмотрите наше видео с анонсом отCppNorth. Обратите внимание, что Carbon еще не готов к использованию.

Быстрый и работает с C++

  • Производительность, соответствующая C++ с использованием LLVM, с низкоуровневым доступом к битам и адресам.
  • Взаимодействие с вашим существующим кодом C++, от наследования до шаблонов
  • Быстрые и масштабируемые сборки, которые работают с вашими существующими системами сборки C++

Современный и развивающийся

  • Прочные языковые основы, которые легко изучить, особенно если вы использовали C++
  • Простое, основанное на инструментах обновление между версиями Carbon
  • Более безопасные основы и постепенный путь к подмножеству, безопасному для памяти

Приветливое сообщество с открытым исходным кодом

  • Четкие цели и приоритеты с надежным управлением
  • Сообщество работает над тем, чтобы быть гостеприимным, инклюзивным и дружелюбным.
  • Подход с включением батарей: компилятор, библиотеки, документация, инструменты, менеджер пакетов и многое другое.

Зачем создавать Carbon?

C++ остается доминирующим языком программирования для критически важного по производительности программного обеспечения с огромным и…

Посмотреть на GitHub

Примеры кода

Здесь представлен код на C++, переведенный в Carbon.

Во-первых, код C++:

соответствует этому коду Carbon:

Вы можете вызывать Carbon из C++ без накладных расходов и наоборот. Это означает, что вы переносите одну библиотеку C++ на Carbon в рамках приложения или пишете новый Carbon поверх существующих инвестиций в C++. Например:

Помимо совместимости между Carbon и C++, Carbon также планирует поддерживать инструменты миграции, которые будут механически переводить идиоматический код C++ в код Carbon, чтобы помочь вам перевести существующую базу кода C++ на Carbon.


Оцените статью
devanswers.ru
Добавить комментарий