Заменит ли Carbon язык C++?

Если вы любите C++, то вот вам свежая новость!

Разработчики Google выпустили совершенно новый «экспериментальный» язык с открытым исходным кодом под названием Carbon.

Более подробную статью вы можете прочитать на Medium.
В противном случае, ниже вы найдете краткое изложение.

Преемник C++

Carbon может стать преемником языка C++.

Он предоставляет разработчикам простую отправную точку для перехода на более новый язык, который учитывает современные концепции разработки, такие как безопасность памяти и дженерики.

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

Если вы предпочитаете посмотреть видео и прочитать материал, который я использовал, вот несколько ссылок:

  • посмотрите 1,5-часовое видео на YouTube, 
  • прочитать документацию на GitHub

Что обещает Carbon?

Начиная с трудностей, возникших при работе с C++, Carbon использует другой подход. 

Язык

Carbon хочет начать с нуля, включая:

  • современную систему дженериков, 
  • модульную организацию кода, 
  • простой синтаксис.

Carbon хочет быть «языком-преемником […], а не попыткой постепенного развития C++», carbon-lang.

По этой причине он отказался от прозрачной обратной совместимости, оставаясь при этом совместимым с C++ и переносимым из него. 

Управление

Carbon стремится быть более инклюзивным путем:

  • опираясь на принципы, процессы и инструменты открытого исходного кода.
  • вносить свой вклад проще и прозрачнее.
  • иметь четкую структуру управления, способную быстро принимать решения в случае необходимости. 
  • расширения экосистемы за счет инструментов, обеспечивающих богатый опыт разработчика (компилятор, стандартная библиотека, инструменты IDE), и обновления на основе инструментов.
  • устранение пробела в экосистеме C++ с помощью встроенного менеджера пакетов.

Примеры и демонстрация Carbon

Ниже вы можете увидеть фрагмент из примера кода на GitHub, с некоторыми простыми комментариями с моей стороны.

// Carbon:
package Geometry api; // local namespace
import Math; // library import
class Circle {
  var r: f32;
}
fn PrintTotalArea(circles: Slice(Circle)) {
  var area: f32 = 0;
  for (c: Circle in circles) {
    area += Math.Pi * c.r * c.r;
  }
  Print("Total area: {0}", area);
}
Вход в полноэкранный режим Выход из полноэкранного режима

Проводник Carbon

Хотите попробовать?

Carbon Explorer — это «прототип демонстрационного интерпретатора, который может как запускать изолированные примеры, так и проводить детальный анализ конкретной семантической модели и абстрактной машины Carbon».

Вот ссылка на Carbon Explorer.

Если вы хотите узнать больше о том, почему C++, Rust и других языков недостаточно, прочитайте более подробную статью на Medium.

Настроения разработчиков 

Здесь собраны настроения разработчиков, посты, твиты, комментарии и т.д.

  • Разработчики, похоже, в основном оптимистично настроены по отношению к Carbon
  • Большинству нравится функциональная совместимость с C++
  • Существует некоторый скептицизм по поводу того, что Carbon заменит C++. Некоторые утверждают, что Carbon преуспеет в определенной нише, но не получит широкого распространения.
  • Неизменяемые объявления отложены в let, что может смутить разработчиков, пришедших из JavaScript. Тем не менее, для разработчиков, пришедших из Swift, это не составит труда. 
  • Публичные члены по умолчанию кажутся спорными. Аргументация выглядит так: поскольку вы в основном будете читать публичные функции в своем API, имеет смысл их раскрыть.
  • Сторонникам Rust было сказано: «Если Rust работает для вас сегодня, вы должны использовать его. Но перевести экосистему C++ на Rust сложно».

Выводы

Эта статья хочет стать обзором языка Carbon. 

Пока еще очень рано судить, и я не в том положении, чтобы делать это. Тем не менее, очень интересно видеть, как новый проект начинает с нуля и делает первые шаги.
 
Если вы заинтересованы, вы можете внести свой вклад и стать частью чего-то, что через несколько лет может стать очень большим.

Каковы ваши мысли?

Вы оптимистично или скептически относитесь к Carbon?

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