Что случилось
На конференции «CPP North» в Торонто Google Principal Software Engineer Чендлер Карус впервые представил новый язык Carbon, разрабатываемый сотрудниками Google. Главная задача этого языка — перенести кодовые базы с C++ на более современный язык.
Разработчики из Google считают, что Rust не подходит для этих целей, потому что он не поддерживает двухстороннюю совместимость с разными инструментами. Это создаёт языковой барьер при переходе между языками.
Что это за язык
Carbon нужен, чтобы устранить недостатки языка C++. А обратная совместимость с ним будет полной. Поэтому разработчики смогут переносить их проекты с C++ на Carbon без лишних усилий.
Язык Carbon должен стать подобием TypeScript для JavaScript или Kotlin для Java. Он не будет полной заменой C++, а лишь надстройкой над всеми функциями из C++.
Так, например, выглядит код, который вычисляет площадь круга, на C++ и Carbon:
В чём он лучше C++
Обратная совместимость. Это главное преимущество языка Carbon над Rust. Он прост в освоении, а ещё на Carbon легко перевести любую программу с C++, не изменяя её поведение.
Современные дженерики. Carbon поддерживает современные системы дженериков с проверенными определениями (checked definitions). А ещё язык умеет работать со встроенными шаблонами на C++, а также даёт дополнительные возможности:
- проверка типов для определения дженериков — это позволит уменьшить время компиляции для уже определённых объектов;
- строгие и проверяемые интерфейсы — это уменьшит случайную зависимость от деталей реализации.
Безопасная работа с памятью. Carbon позволяет эффективнее работать с памятью, проблемы с которой были одним из главных недостатков C++. В язык встроены дополнительные функции, которые защищают от уязвимостей, которые связаны с:
- обращением к области памяти после её освобождения;
- разыменованием нулевых указателей;
- выходом за границы буфера.
Что ещё
Пока Carbon — это экспериментальный язык, который активно развивается программистами из Google. Официальная дата выхода стабильной версии будет зависеть только от популярности языка в сообществе.
Подробнее познакомиться с Carbon можно на GitHub-странице языка, где есть документация и примеры использования.