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)

Корпорация должна не хитроумным синтаксисом удивлять, а богатой стандартной библиотекой. Добавьте хотя бы работу с сетью, обработку XML и JSON в стандартную библиотеку своего языка и сразу 50% программистов из C++ переманите. Думаю, основной секрет go как раз в этом.

Но вместо этого будут внедрять всякие слайсы и спаны, нужные 0,1% программистов.

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

если гугл плюнет в сообщество

Сообщество чего? Нет у гугла никакого сообщества, ну кроме индокитайцев с литкода. Программистам на гугл как было так и всегда будет пофиг.

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

А ты уверен, что в каргоне дженерики рантаймовые? Вон в расте это тоже дженериками обозвали, но работают они как плюсовые шаблоны (в этом аспекте).

Хм. Не уверен. :) Теперь после твоего вопроса – скорее наоборот: там ведь идеальная интероперабельность с плюсами заявлена?

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

Корпорация должна не хитроумным синтаксисом удивлять, а богатой стандартной библиотекой. […]

Но вместо этого будут внедрять всякие слайсы и спаны, нужные 0,1% программистов.

+100500.

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

Мне проверять тоже лень. (:

Но если гадать, то да - предложил бы, что дженерики там не сильно от шаблонов отличаются.

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

Да просто заранее соломки подстелили. Чтобы не нарваться на хейт от токсичного руст лгбт-сообщества. Как мне кажется.

paran0id ★★★★★
()

Главное, погромистам на ём не релоцироваться в Мексику и подобные страны, а то может несмешно получиться.

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

просто чтобы в результате полностью уйти от C++

на Carbon

Отличная самоцель. Лишь бы уйти. Пофиг куда, хоть в никуда. Это как же бедняг C++ достал. За много лет совместной жизни. :)

pr849
()

Блэт. Сколько можно выпускать новый ЯП-ов? Зачем их столько однообразных?

Или это коллаборация с продавцами курсов?

CryNet ★★★★★
()
Последнее исправление: CryNet (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.