Незаменимый С++. Антон Полухин. CoreHard Spring 2019

Поділитися
Вставка
  • Опубліковано 15 лис 2024

КОМЕНТАРІ • 38

  • @red75prim
    @red75prim 5 років тому +29

    19:19 В блоках unsafe разрешено: разыменовывать сырые указатели, вызывать unsafe функции, обратиться к static mut переменной, реализовать unsafe trait. Borrow checker не отключается.

  • @ZekeFast
    @ZekeFast 4 роки тому +20

    От фразы "В дефибриляторах ПО на плюсах" аж мурашки пробежали по коже!

  • @TheSunscratch
    @TheSunscratch 4 роки тому +36

    Это называется C++ головного мозга. Встречается и в других языках, и в общем показывает ограниченность инженера. Из-за этой ограниченности он сует то что знает куда только может. Любой ЯП это инструмент, который либо подходит для задачи либо нет. Что до плюсов/раст спора - если откинуть споры про производительность то можно ещё поговорить об эргономике языков, а также CI и системах сборки проектов, а также о том что в больших проектах есть инженеры разных уровней. По эргономике - со стороны раста: мощные енамы, паттерн матчинг, отсутствие null. Также сравнение Cargo с зоопарком систем сборки в плюсах будет не в пользу последних. Зелёному инженеру зашотганить ногу на плюсах будет намного легче чем на расте - там он в истерике будет пытаться удовлетворить компилятор.

    • @dent3552
      @dent3552 4 роки тому +7

      А по-моему, это фанбои раста больше всех визжят - другое такое наглухо отбитое коммьюнити надо ещё поискать. Кстати, в России из-за отсутствия политкорректности (хоть какой-то плюс) никто, похоже, не обращает внимание, что этот ваш всраст из коробки идёт со своим Code of Conduct. Получается, как не посмотри, а язык-то - левый, if you know what I mean

    • @vasiliytaranov3921
      @vasiliytaranov3921 2 роки тому +4

      @@dent3552 хех, правильно. нет агрументов по существу - переходи на личности

  • @voilin
    @voilin 3 роки тому +2

    Как же хорошо подходит фраза: If you torture the data long enough, it will confess to anything

  • @red75prim
    @red75prim 5 років тому +10

    18:02 Это ABI, `pub extern "C" fn sum(...) ...` даёт тот-же код, что и на C++. ABI в Rust пока не зафиксирован, так что его смена не будет чем-то экстраординарно сложным.

  • @ZekeFast
    @ZekeFast 4 роки тому +28

    Зачем делать доклад о языках в которых не разбираешься? Или проверить инфу для доклада не хватает коллег?

    • @riendlyf
      @riendlyf 4 роки тому +4

      Зачем делать негативный коммент без аргументов

    • @rumisbadforyou9670
      @rumisbadforyou9670 2 роки тому +7

      @@riendlyf для проверки переполнения есть checked_mul. При компиляции если использовать --lto и -O3, то код будет ещё компактнее, но видимо открыть доки это слишком сложно для разраба на плюсах. unsafe не отключает все проверки, unsafe лишь даёт доступ к unsafe функциям, которые можно вызвать только явно. При работе с C либами не нужно каждый раз следить за памятью, в Rust есть так же как и в C++ shared/unique pointer'ы которым можно дать свой деструктор, не говоря уже о самом, что можно просто всё в структуру обернуть, и Rust будет следить за временем жизни сам. "Придётся писать юнит тесты", вау, а чего докладчик хотел? Волшебную пилюлю, которая за него будет правильный код писать?
      80% заявлений про rust не совпадают с реальностью. Такое чувство, что человек лишь 2 часа на расте писал и решил, что всё знает.

  • @user-NgmYyoIOU
    @user-NgmYyoIOU Рік тому

    Немного неверная инфа по сборщику мусора. В java используется алгоритм Дейкстры, а не счетчики ссылок. Это удаляет проблему циклических ссылок.

  • @trenkvaz
    @trenkvaz 4 роки тому +11

    Виртуальная машина для Java размером с пару гигабайт ?
    Ну сказочник.))

    • @HedgehogInTheCPP
      @HedgehogInTheCPP 3 роки тому

      Это про C# скорее, у Java поменьше, плюс доклад этот очень тролльчатиной пахнет, что собственно вот тут озвучивалось ua-cam.com/video/LZflL44SVVY/v-deo.html

  • @tormentorone
    @tormentorone 4 роки тому +9

    Очень много фактических ошибок, например: в swift нет GC, а есть reference counters или говорить о том, что самый медленный язык Python сопоставим с Golang. Фортран - язык процедурный, а не функциональный.
    Хотя сама идея доклада правильная.

  • @user-NgmYyoIOU
    @user-NgmYyoIOU Рік тому

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

  • @hydrogen5911
    @hydrogen5911 Рік тому

    Ну теперь на все вопросы будет GPT 4

  • @PavelOmelchenko
    @PavelOmelchenko Рік тому

    Стандартные библиотеки для си написанные на плюсах (4:18), это как?

  • @demg7738
    @demg7738 4 роки тому +6

    Лучше полагаться на "оптимизации компилятора", чем следовать установленный правилам языка, чтобы получилось то же самое и явное ?
    Интересно, а что по этому поводу думает Python ?
    "Каждый новомодный язык программирования норовит заявить о том, что он быстрее" где это заявлялось ? Каким местом это относится к RUST ? Я вроде бы во всех книгах и статьях видел основную цель - надежность и защиту памяти.
    ПС: Вот это да! Как же у "Яндекс" и "Mail.ru" бомбануло, когда оказалось что в погоне за попсовым Go (и другими гугль-продуктами) и поднятия ЧСВ при помощи C++, они как-то разучились видеть действительно достойные вещи...
    Перестаньте уже, никто в Mozilla вас не трогает и никто не заявлял, что C/C++ нафиг никому не нужны, читайте внимательно абзацы "Зачем это" и "Почему это". Живите счастливо со своими висячими указателями и надейтесь на компилятор %)

    • @HedgehogInTheCPP
      @HedgehogInTheCPP 3 роки тому

      Доклад про другое ;) и изначально вообще был с запросом на конфе от оргов чтобы финальным докладом развеять тлен и безысходность

  • @RobertoGPuentesDiaz
    @RobertoGPuentesDiaz 3 роки тому

    Conclusiones? Rust or C++? Which is faster?

  • @yelltube
    @yelltube 2 роки тому +1

    Говорят Rust может быть скомпилирован в dev режиме и в release. И во втором случае происходят все оптимизации. Соответственно, вопрос как именно компилировалось то, что на слайде. Ну, а то что может быть принято за оверхед Rust'a, так оно занимается выделение/освобождением памяти. Добавьте эту составляющую ручками в C++ и получите тоже самое.
    Ну, а в целом предвзятый обзор от адепта С++. Так на скорую руку языки нельзя сравнивать. Например, писать десктопные приложения c GUI на С++ это вообще мазохизм.

  • @kyzmitch2
    @kyzmitch2 Рік тому

    4ый момент не аргументирован совсем, никакого вывода или написание тестов на с++ отменяется?

  • @alexanderxx2982
    @alexanderxx2982 5 років тому +3

    16:40 А если в Rust убрать pub у функции mutate и добавить
    pub fn foo() -> [i32; 6] {
    mutate(5)
    }
    то компилятор функцию mutate вообще выкинет, а вот C++ этого не делает. Что-то мне подсказывает, все эти сравнения вилами по воде писаны.

    • @AntonyPolukhin
      @AntonyPolukhin 5 років тому +3

      Не забывайте, что сравнивать надо одинаковые по смылсу функции. Если вы выкидываете pub у Rust, то добавляейте static к C++. Получите одинаковый код, middle end всё подсчитает на этапе компиляции: godbolt.org/z/FC3hNb

  • @zamazan4ik17
    @zamazan4ik17 5 років тому +1

    Пример кода Rust vs C++ из презентации на поиграться:
    godbolt.org/z/W3TXhM
    godbolt.org/z/WOhbhY
    godbolt.org/z/LZS_2p
    godbolt.org/z/nHL8Id
    godbolt.org/z/xLqqaB
    godbolt.org/z/vzUEpJ
    godbolt.org/z/WsrusD

  • @almasabdrazak5089
    @almasabdrazak5089 4 роки тому +2

    GraalVm и тепепь сравним что меньше весит

  • @kyzmitch2
    @kyzmitch2 Рік тому

    выкусил, в Swift и obj-c нет сборщика

  • @hikkarion
    @hikkarion 4 роки тому +3

    Забавно слышать про сравнение c++ с go, учитывая, что как раз go был создан гуглом, как альтернатива плюсам и про чуть производительнее питона - это шутка?

    • @HedgehogInTheCPP
      @HedgehogInTheCPP 3 роки тому

      Как замена плюсам для более простой разработки сетевых распределённых приложений ;)

    • @hikkarion
      @hikkarion 3 роки тому +1

      @@HedgehogInTheCPP Самое забавное, что я решил учить c++, сейчас смешно свой же комментарий читать...

    • @HedgehogInTheCPP
      @HedgehogInTheCPP 3 роки тому +2

      @@hikkarion жизнь течёт, всё меняется ^^

  • @PsijicV
    @PsijicV 4 роки тому +2

    Тут подсказки дают, почему Rust молодец и делает именно так www.viva64.com/en/b/0733/

  • @kpp_
    @kpp_ 4 роки тому +6

    C++ быстрее и безопаснее Rust, Yandex сделала замеры: habr.com/ru/post/492410/