• XSS.stack #1 – первый литературный журнал от юзеров форума

Carbon - очередной убийца с++ от Google

corax

Премиум
Premium
Регистрация
29.04.2020
Сообщения
1 009
Решения
1
Реакции
628
Гарант сделки
1
Депозит
0.16
На конференции Cpp North был представлен экспериментальный язык программирования Carbon – преемник С++ (по заявлению разработчиков).
Разработчики обещают производительность, соответствующую C++, взаимодействие с существующим кодом C++, от наследования до шаблонов, быстрые и масштабируемые сборки, совместимые с существующими системами сборки C++, двунаправленную интероперабельность с C++ и многое другое.

Код:
// 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++:
// 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;
}

 
Вот что-то, а Плюса вряд ли получится подвинуть с их места.
С другой стороны, еще один системный язык, совместимый с уже существующим кодом - почему бы и нет?
 
почему бы и нет
Почему мы бы не улучшать плюсы? Нет, сделаем ещё один никому не нужный раст.
//Есть у меня конспирологическая теория зачем это гуглу нужно.
 
гугл поощряет любые проекты внутри корпорации
вот только если посмотреть за многие годы сколько таких проектов по итогу ушло в утиль...

так что очередной трешовый проект
 
Очередной "убивца" плюсов? Мальчики, это уже даже не смешно, а как-то нелепо, что ли...
Ну тут логика больше как у Type/JS


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

так что очередной трешовый проект
Ну у Go все отлично.
 
у Dart vs Js - вроде не все ок
у Kotlin vs Java - ну вроде все получилось (это не про гугл конечно)

Go - вообще кайфовый язык для бекэнда, кравлеров, демонов.

Если будет такая-же совместимость как Kotlin/Java - то почему бы и нет, удобство современных языков + поддержка легаси
 
т.е. то что гугл увидел что то перспективное на рынке и купил это одно
а то что гугл пытался сам создать и ничего не получилось это другое
ну разве что хром это единственное что получилось у гугла
 
Выглядит неплохо, читается лучше, а от плюсов меня коробит 😖 Главное чтоб смогли в оптимизацию на уровне сишечки, а то гошные бинари по 5-50мб немного удручают.

UPD: Прошел на гитхаб почитать, а там:

Код:
fn Partition[T:! Comparable & Movable](s: Slice(T))
     -> i64 {
  var i: i64 = -1;

  for (e: T in s) {
    if (e <= s.Last()) {
      ++i;
      Swap(&s[i], &e);
    }
  }
  return i;
}

fn QuickSort[T:! Comparable & Movable](s: Slice(T)) {
  if (s.Size() <= 1) {
    return;
  }
  let p: i64 = Partition(s);
  QuickSort(s[:p - 1]);
  QuickSort(s[p + 1:]);
}


51106f839cd7e74561399455c7074d47.jpg
 
Последнее редактирование:
а там:
Гоферы кричат "дайте генерики". Вот вам генерики, что не нравится?)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
а то гошные бинари по 5-50мб немного удручают
Хеллоу ворлд на 2мб не хочешь ?))))
 
Хеллоу ворлд на 2мб не хочешь ?))))
Слинкуй статически хелловорд на сях и получишь около мегабайта.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Слинкуй статически хелловорд на сях и получишь около мегабайта.
Я про то, что Голанг не подходит по системный кодинг, и в особенности под малварь (ИМХО).
Ну либо я не до конца познал "дзен" Голанга
 
Я про то, что Голанг не подходит по системный кодинг, и в особенности под малварь (ИМХО).
Ну либо я не до конца познал "дзен" Голанга
Так его никто и не позиционировал как системный язык/язык для малвари.
 
Слинкуй статически хелловорд на сях и получишь около мегабайта.
В VS2022 при дефолтной релизной конфигурации + статической линковке получается файл размером в 100кб...
 
Я про то, что Голанг не подходит по системный кодинг, и в особенности под малварь (ИМХО).
Ну либо я не до конца познал "дзен" Голанга
В итоге Го занял нишу микросервисов.
Да и на самом деле, почему не подходит? Вряд ли создатели какого-либо языка думают про малварь) В остальных случаях уже давно всем пофиг на размер бинарника. Кто сейчас проблемы с памятью испытывает?
А так намного проще раздуть бинарник, чем отдельно все зависимости устанавливать. При том, что выйдет тоже самое, но по отдельности.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх