LINUX.ORG.RU
ФорумTalks

Carbon — преемник C++ от Google

 , carbon


1

4

На конференции Cpp North был представлен экспериментальный язык программирования Carbon – преемник С++ (по заявлению разработчиков). Видео презентации: https://www.youtube.com/watch?v=omrY53kbVoA

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

Пример кода на Carbon:

// Carbon:
package Geometry api;
import Math;

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);
}

fn Main() -> i32 {
  // A dynamically sized array, like `std::vector`.
  var circles: Array(Circle) = ({.r = 1.0}, {.r = 2.0});
  // Implicitly constructs `Slice` from `Array`.
  PrintTotalArea(circles);
  return 0;
}

тот же код на С++:

// C++:
#include <math.h>
#include <iostream>
#include <span>
#include <vector>

struct Circle {
  float r;
};

void PrintTotalArea(std::span<Circle> circles) {
  float area = 0;
  for (const Circle& c : circles) {
    area += M_PI * c.r * c.r;
  }
  std::cout << "Total area: " << area << "\n";
}

auto main(int argc, char** argv) -> int {
  std::vector<Circle> circles = {{1.0}, {2.0}};
  // Implicitly constructors `span` from `vector`.
  PrintTotalArea(circles);
  return 0;
}

Доп. информация: https://9to5google.com/2022/07/19/carbon-programming-language-google-cpp/

★★★★★

Последнее исправление: dotcoder (всего исправлений: 2)

Раст без бороу чекера?

ox55ff ★★★★★
()

15 лет назад пришел в программирование - уже были убийцы и приемники крестов. Прошли года - ничего не изменилось.

Как не было ответа - а что делать с громадной кодовой базой проектов типа Unreal Engine, так и нет.

Norgat ★★★★★
()

и многое другое.

Гугло-контроль, прибитость к LLVM, отсутствие стандартов и причины для существования сего поделья…

xaizek ★★★★★
()
Последнее исправление: xaizek (всего исправлений: 2)

Carbon-free company приобретает новый смысл.

На интероперабильность бы посмотреть

По виду оно не стоило того

yoghurt ★★★★★
()

Выглядит, как изнасилование раста сиплюсплюсом

gremlin_the_red ★★★★★
()

Очередной убивец?

Я хоть и далёк от погромирования, но всё, что выходит из утробы гугла, должно предаваться анафеме.

Я, скорее всего, многого недопонимаю, но на мой неискушенный взгляд, гугл низвёл погромирование до уровня торговли пирожками.

Возможно это и неплохо и я просто бурчащий старпёр и ретроград.

utanho ★★★★★
()

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

m0rph ★★★★★
()

А нормальный синтаксис они сделать не могли?

Meyer ★★★★★
()

Объясните кто-то, нахрена писать так:

auto main(int argc, char** argv) -> int {
?

И возникает резонный вопрос про это вот:

fn Main() -> i32 {
Это просто калька с вышестоящего идиотизма, или доступен только такой вариант в принципе?

quwy
()
Ответ на: комментарий от Norgat

А какого ответа ты ждёшь? Закопать и забыть, переписать? Ответа нет, потому что это неверный вопрос.

Clayman ★★
()

Тайное общество карбонариев снова в деле.
Загадочность и таинственность прилагаются.

TomBOY ★★
()
Ответ на: комментарий от utanho

Golang вполне себе взлетел и занял свою нишу. Вполне логичным с их стороны выглядят эксперименты с плюсами.

Гугл много проектов закапывает, но бывает и выстреливает, как в случае го.

lnx4
()

Похоже на очередной NiH, а после «прогулки» по ссылкам ещё больше напоминает NiH.
Надеюсь закопают.
PS Ещё и в качестве сравнения выбрали C++20, ну реально какой-то NiH

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от fluorite

А должен на чем? Это же экспериментальная альфа-версия. Вполне логично выбрать самый быстрый язык, с учетом позиционирования самого Carbon.

Если выстрелит - перепишут на себе. Меня заинтересовало. Как минимум они обещают быстроту сборки, а не как в том же расте.

lnx4
()
Ответ на: комментарий от Norgat

15 лет назад пришел в программирование - уже был «убийца» и «преемник» сишечки - кресты. Прошли года, кресты забываются как страшный сон, сишечка остается в топе.

Как не было ответа - а что делать с громадной кодовой базой проектов типа ядра, так и нет.

token_polyak ★★★★★
()
Последнее исправление: token_polyak (всего исправлений: 1)

Выглядит достаточно всрато чтобы взлететь. Было бы нормально сделано, то точно невзлетело бы.

Psilocybe ★★★★
()
Ответ на: комментарий от Psilocybe

Как бы ни всрато выглядело всегда найдутся ценители гурманы.

imul ★★★★★
()
Ответ на: комментарий от no-such-file

Понятия не имею. С крестами и его убийцами уже давно есть серьёзная проблема - синтаксис становится всё бредовее и всё больше похожим на клинопись. Скоро будет как в старой шутке про «мы остановились, добившись успешной компиляции такого кода»:

a \\ & (% > /*x\\/$ (<[[) $#&

agentgoblin
()
Ответ на: комментарий от agentgoblin

синтаксис становится всё бредовее

Концепты после SFINAE выглядят аккуратно и понятно. Так что тренд на усложнение не подтверждаю.

ox55ff ★★★★★
()

Видел тред на одной странице

Softwayer ★★
()
Ответ на: комментарий от agentgoblin

острая вкусовщина.

+1. Очень правильное определение.

anc ★★★★★
()
Ответ на: комментарий от anc

Ппритянуто не притянуто, а все более менее нормальные новые языки отдают предпочтение типам справа, да и старые тоже.
Си был исключением. Но си вобрал в себя столько всего плохого, до сих пор избавиться не можем от этого наследия.

Bad_ptr ★★★★★
()
Последнее исправление: Bad_ptr (всего исправлений: 1)

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

ergo ★★★
()
Ответ на: комментарий от xaizek

мне кажется причин для эволюции языков всегда будет достаточно. другой вопрос, насколько именно этот найдет отклик в обществе разработчиков - время покажет. при этом ни один новый ЯП не может стать «убийцей» другого. это физически невозможно ввиду наличия невероятного объема кода на языке «жертвы». так что подобные формулировки про убийц - спекулятивная желтизна писак-журналистов.

ergo ★★★
()

какойто жуткий гибрид кучи всего

sparks ★★★★
()

Интересно, но непонятно, в чем киллер-фича. Синтаксис получше, но тоже громоздкий. Ну, типы фиксированной ширины. Ну, паттерн-матчинг.

Дженерики вместо шаблонов? Одиночное наследование? Неявные интерфейсы? Сомнительно для замены плюсов.

Да и гугл пока дистанцируется от изобретения, прям как в начале golang’а.

unsigned ★★★★
()

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

rupert ★★★★★
()
Ответ на: комментарий от Bad_ptr

Си был исключением

Могу сильно заблуждаться, но вроде минимум в каком-то из асмов тоже было слева.

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)

горшочек, не вари!

seiken ★★★★★
()
Ответ на: комментарий от rupert

я кстати посмотрел историю коммитов. разработку начали в апреле 2020 года и до декабря только писали спеки. первые коммиты кода пришлись на конец 2020 начало 2021. так что язык еще прям очень в зачатке находится.

ergo ★★★
()
Ответ на: комментарий от lnx4

Логично писать на самом себе, тем самым доказывая годность и применимость языка. А закладываться на «если выстрелит» - проигрышная стратегия. Уже не выстрелил, так как даже авторы не рискнули писать на этом банальный фронтенд к llvm.

fluorite ★★★★★
()
Ответ на: комментарий от Bad_ptr

Но си вобрал в себя столько всего плохого, до сих пор избавиться не можем от этого наследия.

Си в каком-то смысле просто продвинутый макроассемблер для компьютеров PDP, на котором переписали первую версию Unics (еще без x на конце слова). Для этой цели он был очень хорош и создателям этого языка не приходило в голову, что его будут активно использовать спустя 50 лет. Впрочем как и Unics, скажи тогда какое получит распространение ее дальние потомки-клоны, сочли бы за шутку, наверное.

praseodim ★★★★★
()
Ответ на: комментарий от DAGAZ

Зависимость языка от корпорации и служение её интересам. Ну и практика выкидавания гуглом проектов на мороз.

xaizek ★★★★★
()
Ответ на: комментарий от Bad_ptr

отдают предпочтение типам справа

Потому что с кейвордом проще парсить. Плюсы на это заканчиваются.

Siborgium ★★★★★
()
Ответ на: комментарий от rupert

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

Если сообщество плюнет в гугл то гугл утрется.
Но если гугл плюнет в сообщество то оно утонет.

Aber ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.