commit -m "better"
2.96K subscribers
868 photos
105 videos
3 files
2.07K links
just random thoughts
Download Telegram
https://github.com/carbon-language/carbon-lang #carbon

Carbon, новый язык от Google(хотя они это, кажется, не афишируют, но их фирменный стайлгайд и сборка на Bazel выдают их с потрохами).

https://news.ycombinator.com/item?id=32153320

Элегантная комбинация синтаксиса от Rust(включая совершенно уебищную модель generic'ов**) + memory safety C++, то есть, кажется, это язык, на котором лично я программировать не буду.

Кажется, это пока больше декларация о намерениях, потому что реального кода самого языка в репозитории довольно мало(https://github.com/carbon-language/carbon-lang/tree/trunk/toolchain).

Собрать это чудо у меня пока не вышло, и не выйдет в ближайшей перспективе, потому что Java и Bazel.

**: да, я считаю, что современные веяния, когда надо явно указывать, какие интерфейсы реализует класс - это очень так себе, duck typing шаблонов в C++ мне кажется куда как более здравым решением. У меня тут есть такое соображение - "клеить" статически типизируемые языки мега-удобно с помощью duck typed прокладки, типа, С + Python, или вот С++ + templates.
👍8🤔1
commit -m "better"
Когда я читаю что-то подобное https://habr.com/ru/post/579490/, меня охватывают два чувства: #abi #cplpl_doomed #cppcom 1) Презрение к тем, кто последние 15 лет занимается развитием С++, потому что их коллективный разум не смог родить ничего похожего на …
Кстати, кажется, вполне можно воспринимать #carbon именно вот с этой точки зрения, что, наконец-то, какая-то компания взяла, и решила запилить С++ 2.0 на основе clang, все, как я и заказывал.

всратый синтаксис от Rust - дань моде и попытка хайпануть)

#cplpl_doomed

Опять я мастер предсказывать уже произошедшие события!

https://www.reddit.com/r/programming/comments/w2thvo/carbon_an_experimental_c_successor_language/

Утащу комментарий с reddit:

"To give some context, in February of 2020 there was a crucial vote in the C++ standard committee about breaking ABI compatibility in favor of performance, mostly pushed by Google employees.
The vote failed. Consequently, many Googlers have stopped participating in the standardization of C++, resigned from their official roles in the committee, and development of clang has considerably slowed down.
Now, they've revealed that they've been working on a successor language to C++. This is really something that should be taken seriously."
👍8
#carbon - это какой-то фрод.

Уже 20к звезд на гитхабе, но.

pg-> find . | grep '\.cpp' | wc -l
94

Кодогенератором там даже и не пахнет, есть лексер и куски парсера, видимо, для поддержки compiler explorer.

Мне стало интересно, как там выглядят исключения.

Лично я бы надеялся на что-то типа автоматического превращения вызываемой функции в OrError<V, Dyn<std::exception>>, или что-то в таком духе(ну и чтобы pure carbon программа не требовала бы С++ runtime), и даже решил почитать про это design doc.

Увы, меня ждала неудача, все(!) что я нашел, это вот этот вот огрызок:

### Support for C++ exceptions without bridge code

Carbon may not provide seamless interoperability support for C++ exceptions. For example, translating C++ exceptions to or from Carbon errors might require annotations or bridge code, and those translations may have some performance overhead or lose information. Furthermore, if Carbon code calls a C++ function without suitable annotations or bridging, and that function exits with an exception, the program might terminate.

Про обработку ошибок в целом тоже ничего интересного не нашел, плохо искал?

Короче, это пока даже не декларация о намерениях, это сбор дешевого PR.
🤡8🤔2👍1🔥1
https://github.com/carbon-language/carbon-lang/discussions/2329

У #carbon все еще нет компилятора, но уже есть "Carbon Language community transparency report".

Пишут, что отреагировали на 60+ "плохих" сообщений на discord. К сожалению, ссылок на сами сообщения нет, поэтому еда не очень годная.

Мое отношение к подобной "мышиной возне" вы и так уже знаете, повторяться не буду, добавлю только, что вот такой вот ебалой проекты надо заканчивать, а не начинать.
🤡20👍3😁1💩1🍌1
https://www.opennet.ru/opennews/art.shtml?num=58472

Пишут, что в Chromium можно в Rust.

Новость, конечно, не очень приятная!

Я люблю, когда на Rust переписывают какую-то кодину на C, но вот сочетание Rust + C++ мне не очень ОК. Потому что С++ достаточно безопасен, настолько, что проблемы от взаимодействия 2 языков перевешивают профит. Про такую попытку Гугла использовать Rust в С++ кодовой базе я уже писал - #cras.

"Для упрощения интеграции кода на Rust с существующим кодом на C++ и обхода связанных с интеграцией рисков и ограничений, в настоящее время решено ограничиться однонаправленным взаимодействием - обращением из С++ к Rust (т.е. код на Rust может лишь вызываться из кода C++ через функции API, но не смешиваться с кодом на C++), что также даст возможность держать под контролем дерево зависимостей. Вторым ограничением является поддержка только сторонних библиотек, поставляемых в форме отдельных компонентов, не привязанных к Chromium и имеющих API, ориентированный на выполнение конкретных задач"

Пока мне кажется, что это такой эксперимент, и что эти правила позволяют затащить какой-то кодек на Rust, или вот librsvg. Вполне возможно, что этим все и ограничится, как двумя файликами "для галочки" в #cras.

И еще такой вопрос - а что с #carbon?

Кажется, что Rust тут пытается откушать как раз нишу #carbon, и это довольно странно. Carbon все?
👍8💔3🤔2