Язык RUST для высоконагруженного сетевого сервиса - быстрый старт [ru] / Александр Сербул

แชร์
ฝัง
  • เผยแพร่เมื่อ 8 ม.ค. 2025

ความคิดเห็น • 103

  • @VladimirEmelyanov
    @VladimirEmelyanov 3 ปีที่แล้ว +38

    Самый грамотный доклад о текущем состоянии IT , который я видел. Спасибо большое автору!

  • @hamestet
    @hamestet 3 ปีที่แล้ว +16

    Вот как раз передать энергию изучать и использовать язык вам, Александр, удалось. Спасибо за мотивацию!

  • @СкафандрКосмический
    @СкафандрКосмический 3 ปีที่แล้ว +8

    Просмотрел на одном дыхании. Потрясающий доклад

  • @mpenzin
    @mpenzin 4 ปีที่แล้ว +29

    Саша Сербул - это всегда буря эмоций и мощный поток сознания! :)

    • @VonBismarkOtto
      @VonBismarkOtto 3 ปีที่แล้ว +5

      Причем что важно - бессвязного сознания

    • @aeuonep
      @aeuonep ปีที่แล้ว

      @@VonBismarkOtto бессвязность видит тут тот кто не в теме

    • @VonBismarkOtto
      @VonBismarkOtto ปีที่แล้ว

      @@aeuonep у вас в Педерации все что ли лишнехромосомные?
      Два года спустя вы решили что-то прокомментировать. Да еще решили что тот, кого вы комментируете, не в теме.

  • @maksimgridin9322
    @maksimgridin9322 3 ปีที่แล้ว +9

    Давно слышу про RUST хорошие отзывы, но после такого зажигательного доклада, я просто обязан его выучить! ))

  • @alexandergaiwer9804
    @alexandergaiwer9804 3 ปีที่แล้ว +23

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

  • @exploring-ukulele
    @exploring-ukulele 3 ปีที่แล้ว +9

    Наконец-то! Это топовый доклад ! Сразу видно человек с опытом.

  • @dractw
    @dractw 3 ปีที่แล้ว +18

    Первый доклад в моей жизни, который нужно смотреть на скорости 0.75

    • @Павел-к6т8й
      @Павел-к6т8й 3 ปีที่แล้ว +2

      я смотрел на 1.5 - круто

    • @_boolive_
      @_boolive_ 2 ปีที่แล้ว

      Да, на 1.75 переполнение мозга)

    • @maksimsergeevich5939
      @maksimsergeevich5939 2 ปีที่แล้ว +1

      И еще рюмаху налить, чтобы в одну волну попасть с вещающим

  • @АнтонАнтипин-п2ъ
    @АнтонАнтипин-п2ъ 3 ปีที่แล้ว +3

    Спасибо. Реально классное сравнение без подлизываний. Крутой расказчик. С удовольствием посмотрел

  • @vladislav3158
    @vladislav3158 2 หลายเดือนก่อน +1

    Шикарный доклад, теперь хочется писать на RUST

    • @alexserbul
      @alexserbul 2 หลายเดือนก่อน

      Продолжаю писать, недавно запустил проект по удалению файлов в облаке. Делает 4 000 удалений в секунду, при этом потребляет 180 МБ памяти и одно ядро процессора. Сборщик мусора поставил jemalloc. Главное, что нельзя делать в асинхронном проекте с Tokio - сохранять хэндлеры запущенных Tasks себе куда нибудь в Vec - если так сделать, память корутины (Task) не освобождается, пока не удалишь этот Vec. Я перестал сохранять, стал писать статистику в переменные с разных потоков и потребление памяти снизилось до 180 МБ, отличный результат и это далеко не предел!

    • @uniers
      @uniers 19 วันที่ผ่านมา +2

      А я пишу на ассемблере под сервер!

  • @vlamai
    @vlamai 4 ปีที่แล้ว +21

    Вот все бы рассказывали с таким энтузиазмом

    • @crewmerrick4840
      @crewmerrick4840 3 ปีที่แล้ว

      i know I'm pretty randomly asking but do anyone know of a good website to stream newly released movies online?

    • @GraxS
      @GraxS 3 ปีที่แล้ว

      @@demetriuskeenan3916 Зарепортьте этих ботов

  • @alexandergaiwer9804
    @alexandergaiwer9804 3 ปีที่แล้ว +8

    Интересный доклад и много полезной информации! Rust рулит! Огромное спасибо за доклад)))

  • @twentxx
    @twentxx 2 ปีที่แล้ว +3

    Вот это доклад, во это заряд энергии! 🚀👍

  • @uniers
    @uniers 19 วันที่ผ่านมา +1

    А как насчет Zig lang?

  • @alexanonymous5823
    @alexanonymous5823 3 ปีที่แล้ว +2

    большое спасибо за доклад. было очень интересно

  • @vyasab1490
    @vyasab1490 2 ปีที่แล้ว +2

    А какие лимиты вы увеличили, которые решили проблему падения на первом запуске?

  • @aset2335
    @aset2335 3 ปีที่แล้ว +2

    Как услышал про косяки Фон Неймана сразу поставил лайк!

  • @TheRussificator
    @TheRussificator 2 ปีที่แล้ว +2

    Увлеченный дядька. Лайк.

  • @alexanderdickson1679
    @alexanderdickson1679 ปีที่แล้ว +1

    Сербул, респект, отличные статьи на Хабре

  • @MakarenkoSasha
    @MakarenkoSasha 3 ปีที่แล้ว +4

    Давно я так не ржал... камедиклаб, по сравнению с докладчиком, просто дети. Вообщем супер.. пошел раст изучать..а то я уже старый стал, а все как молодой на феррари езжу ))

  • @greenis6719
    @greenis6719 3 หลายเดือนก่อน +1

    По моим наблюдения, Rust'овики самые настоящие сектанты.

  • @ДмитрийЛевашов-й8с
    @ДмитрийЛевашов-й8с ปีที่แล้ว +1

    точно и по делу.

  • @GoRustDeveloper
    @GoRustDeveloper ปีที่แล้ว +2

    Благодарю за доклад. Всегда интересно послушать мнение и опыт человека из нутри компании.
    Одно но, есть язык Go
    и нет языка Golang

    • @nanoqsh
      @nanoqsh ปีที่แล้ว +3

      Golag

  • @Deletedeletedelete
    @Deletedeletedelete 3 ปีที่แล้ว +2

    вижу название доклада: не выбирай язык програмирования пока не посмотришь этот доклад)

  • @Cre0w
    @Cre0w 2 ปีที่แล้ว

    >Я так понял цель была снизить потребляемые ресурсы, следовательно вам нужно было выбрать язык со сборщиком мусора например go, на процессор нагрузки почти не будет. эти 3.5 Gb на Rust превратились бы в 50 mb на go резидентной памяти.

    • @mihailsafronov3599
      @mihailsafronov3599 2 ปีที่แล้ว +2

      Вот прямо 3.5 Gb сразу станут 50 mb волшебным образом ? Такое возможно при какой-то адовой фрагментации кучи, в реальной жизни даже представить такое не могу. Снизить потребляемые ресурсы - это не про языки со сборщиком мусора, они про упрощение разработки. Там как раз часто приходится использовать переиспользуемые пулы для снижения нагрузки на GC, если для go - подумайте для чего sync.Pool появился. Впрочем подобные вещи делаются и в C/C++/Rust (чтобы не дергать alloc).

    • @pavelsmirnov660
      @pavelsmirnov660 ปีที่แล้ว +3

      Вы видимо не совсем понимаете как работают языки со сборщиком мусора. Если нет утечек памяти, то go ВСЕГДА будет потреблять больше памяти чем rust. Потому что в rust удаление объектов из памяти четко определено во времени, а go должен в рантайме запускать сборку мусора, что очень накладно

  • @tkachukpavel442
    @tkachukpavel442 3 ปีที่แล้ว +1

    Спасибо, ценно что показали реальный проект. А что скажете по поводу многопоточности? У меня есть проект который на nodejs который требует многопотоков, он у меня работает на тредах. Как с этим обстоят дела на Rust ?

    • @alexserbul
      @alexserbul 3 ปีที่แล้ว +2

      В Rust прекрасно все с многопоточностью. Как раз для защиты от дедлоков и гонок и используются описываемые в докладе аффинные типы данных.

  • @Valerii_Pivovarov
    @Valerii_Pivovarov 3 ปีที่แล้ว +4

    Александр, Вы занимаетесь очень хорошим делом. Искренне желаю Вам успеха.
    Я тоже пытался создать ПРОСТОЙ И ВНЯТНЫЙ язык программирования, но у меня очень много времени забирает ФИЗИКА, которую я тоже стараюсь излагать в ПРОСТОЙ И ВНЯТНОЙ форме, чтобы она была понятна и школьнику.
    Интересно, чем тогда доктор (академик) "физико-математики" будет отличаться от обычного школьника?

  • @maksimsergeevich5939
    @maksimsergeevich5939 2 ปีที่แล้ว +3

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

  • @syogun544
    @syogun544 2 หลายเดือนก่อน

    Что за дядька есть ли у него тг канал итд?

  • @ostrov11
    @ostrov11 3 ปีที่แล้ว +1

    охх старый бомбит, высказался на публику )) респект

  • @MichaelPankov
    @MichaelPankov 3 ปีที่แล้ว +2

    Честно говоря доклад странный. 95% разговора про сам язык - вещи которые уже сказали все. Про сервис 5% и в целом ситуация такая, что "повезло" просто переписать, не огрести проблем, и легко завести. В принципе, по объёму кода-то уже понятно, что сервис копеечный.

  •  2 ปีที่แล้ว +1

    Интересный чувак. Спасибо за толковый подоход

  • @yaroslavkhmyljovskii3388
    @yaroslavkhmyljovskii3388 3 ปีที่แล้ว +2

    Нету сборщика? Как rust работает с неблокирующими структурами для мультитредов?

    • @nanoqsh
      @nanoqsh 3 ปีที่แล้ว +9

      Для этого можно использовать подсчёт ссылок, аналог в C++ std::shared_ptr, в Rust называется Arc (Atomically Reference Counted). Структуру, спрятанную за Arc, можно шарить между разными тредами. Когда количество ссылок становится нулевым, объект удаляется. Своего рода микро сборщик мусора для одного объекта.

    • @zxcq
      @zxcq 3 ปีที่แล้ว

      Arc

    • @sfera888
      @sfera888 ปีที่แล้ว

      @@zxcq а зачем там RWLock? Arc же противоречит идее SharedState (где собсно и нужен RWLock), разве нет?

  • @МаксимМакаров-к8б
    @МаксимМакаров-к8б 3 ปีที่แล้ว +2

    Есть суровый минус. Учил его 4 месяца пока начал хоть какой-то код выдавать

    • @Makroyl666
      @Makroyl666 3 ปีที่แล้ว

      Какой-то код это какой? Можно за 4 месяца не написать что то сложное, но простое без проблем.

  • @TJ-wc3iq
    @TJ-wc3iq 3 ปีที่แล้ว +4

    Мне очень нравится Rust. Но после всех косяков оратора о JS, Python, Go и даже Rust... Единственная ценность доклада - заинтересовать языком всех остальных, 95% сказанное автором либо "ошибка выжившего", либо непонимание языков о которых он говорит (как все реально под капотом работает), либо просто чушь (или провокация) и это печалит. "Чему мы научились, Палмер?" - "Не знаю, сэр"

    • @alexserbul
      @alexserbul 3 ปีที่แล้ว +1

      не было цели заинтересовать людей Rust, хотелось рассказать о его месте среди других языков, на большинстве из которых, "к сожалению", пришлось написать много кода, предварительно плотно их изучив и позапускать в успешный прод десятки проектов

  • @eugenenovikov671
    @eugenenovikov671 3 ปีที่แล้ว +2

    выводы надо было делать, когда вы начали использовать пхп

    • @Makroyl666
      @Makroyl666 3 ปีที่แล้ว

      20 лет назад?

  • @Rust_ekb
    @Rust_ekb 4 ปีที่แล้ว +3

    В PHP строгая типизация появилась с 7 версии и типизированные свойства с 7.4. Это к вопросу что там типов нет.

    • @EdwVee
      @EdwVee 3 ปีที่แล้ว +5

      Нет типизации для переменных внутри функции. Но самое смертоубийственное это тип array:
      1. Из каких элементов состоит? Даже само написание комментов, чтобы ide давала подсказки (допустим у меня там объекты класса Foo) уже убивает.
      2. Это вектор или мапа? 2 совершенно разных вещи называются одинаково.

    • @VonBismarkOtto
      @VonBismarkOtto 3 ปีที่แล้ว

      @@EdwVee , в php нет массивов. Под array скрывается ordered map

    • @EdwVee
      @EdwVee 3 ปีที่แล้ว

      @@VonBismarkOtto ок. Я писал о моделях взаимодействия. Ты можешь не знать, что там внутри, когда работаешь с array как с вектором.

  • @ПётрПетров-д2ч4х
    @ПётрПетров-д2ч4х 2 ปีที่แล้ว +3

    Я на 100% согласен с корневой идеей программирования - должен быть простой язык программирования и он описывает чистую математику, т.е. дисциплина программирования должна оставаться разделом математики (как это и задумывалось отцами основателями). Если программирование было бы чистой математикой, то не было бы такого количества непонятных выкидышей из 3-х месячных курсиков по реактикам, олигофренов после ‘сайт за 3 вечера’ и прочей перхоти. Верните блеать нормальное ИТ!!!

    • @readmeandanswer8142
      @readmeandanswer8142 ปีที่แล้ว +2

      Вы вновь смотрите на следствие, а не на причину. Зачем людям вообще идти и учить программирование? почему не кулинарию? да потому что программирование вошло в єкономику, ето уже не прикладная наука для ентузиастов, программирование - двигатель економики. Бизнесу не нужно чтобы вы создавали интернет магазин 3 года на Haskell, ему нужно получить приложение в кратчайшие сроки чтобы увеличить продажи. Хотите старое айти - занимайтесь им в свое свободное время, но откатывать мир по технологиям до уровня 80 годов не нужно

    • @ПётрПетров-д2ч4х
      @ПётрПетров-д2ч4х ปีที่แล้ว

      @@readmeandanswer8142 тебя вот не спросили, типичная жертва скилфэктори. Я про инженерную культуру писал. Ты же пишешь про то, как тебе радостно вставать раком перед бизнесом за пару копеек. Вы бараны сами себе яму копаете через свои неподдерживаемые поделки на коленочке.

    • @readmeandanswer8142
      @readmeandanswer8142 ปีที่แล้ว

      ​@@ПётрПетров-д2ч4х бизнесу не нужны ученые для етого есть университеты и аспирантуры, там занимаются научной деятельностью, а задача бизнеса - зарабатывать деньги. Даже если ето будет поделочки на коленочке, они все-равно приносят деньги. Так же как например китайцы делают низкосортные вещи но имеют огромную економику, или индусы которые известны своим отвратительным софтом, наполняют економику страны. По етому я и ответил, призыв "вернуть айти на академический уровень" полная глупость, всему свое время, сфере услуг и рыночной економике ето не нужно.

  • @this-user-is-not-loser
    @this-user-is-not-loser 3 ปีที่แล้ว +8

    Все языки плохие - раст хороший :) Классика жанра

    • @ахуец
      @ахуец 3 ปีที่แล้ว +2

      Фейспальм

  • @radiopapus
    @radiopapus 2 ปีที่แล้ว +1

    Это язык(nodejs) который отстал лет на 50 - noted

  • @r2com641
    @r2com641 9 หลายเดือนก่อน

    На расте сложно писать и он чисто не выгоден для разработки быстрой. Лучше Zig.
    А borrow checker не хляет если ты пишешь low level code и где все приходится включать в блок unsafe
    И макросы в расте не нужно было делать и они слишком сложны, comptime в Zig лучше

    • @cool-story-bob
      @cool-story-bob 9 หลายเดือนก่อน +1

      Так он и не создавался для быстрой разработки, а для надёжного кода.
      Официально Zig младше Rust на несколько лет если брать ржавчину как язык, а не исследовательский проект. То есть, практически ровесники.
      Последний сегодня принят сообществом Linux, принят в Microsoft, принят в Google, можно продолжать.
      У первого сегодня нет практически ничего, включая даже собственно языка - он до сих пор не формализован и не стабилизирован, а документация для новых релизов местами зияет неполнотой. Есть только не такое уж и многочисленное сообщество вокруг.
      Положа руку на сердце, не слишком много оснований для веры в большое будущее помня другие попытки на примере хотя бы того же D.

    • @r2com641
      @r2com641 9 หลายเดือนก่อน

      @@cool-story-bob прокомментируй то что я написал что borrow checker не работают когда ставится unsafe и то что если на металле пишешь то многие фичи безопасности уже не хляют. А еще в расте очень мутные макросы а в Zig элегантный и проще comptime. Zig это как бы С по новому

    • @r2com641
      @r2com641 9 หลายเดือนก่อน

      @@cool-story-bob а то что Zig развивается медленнее так это там спонсоров меньше ибо создатель языка не хочет чтобы компании диктовали как надо делать язык, вот и все. Поэтому Rust уже больше и больше жиреет (gets bloated), да и там постоянно какая то драма возникает, то сообщество запрещает использовать логотип то еще что, не зря же даже спин создали Crablang, посмотри сам

    • @cool-story-bob
      @cool-story-bob 9 หลายเดือนก่อน

      @@r2com641 Все так, ржавый не замена С и никогда им не был. Это язык для прикладной надёжной разработки без технического долга и сомнительного наследия. По поводу скорости развития без поддержки крупных игроков тоже согласен и имхо именно поэтому дальше локального сообщества ZIG не пойдет.

  • @-AsL-
    @-AsL- 2 ปีที่แล้ว

    "я хочу умереть, ничего страшного"

  • @SYMBAT.K.E
    @SYMBAT.K.E 11 หลายเดือนก่อน

    Linux уже пишется на rust

    • @qq77777
      @qq77777 11 หลายเดือนก่อน +1

      Ну да ну да😀. Rust - это секта. Все докладчики про rust с безумными глазами разсказывают какой язык клевый. Кроме того, все кто программировал на раст не в курсе, что все, что все новшества раста есть в других языках.

    • @r2com641
      @r2com641 9 หลายเดือนก่อน

      @@qq77777согласен секта. Я сделал ставку на Zig

    • @lavcoder
      @lavcoder 3 หลายเดือนก่อน

      ​@@qq77777 В других языках предполагается наличие сборщика мусора.

  • @RomanLaptev-k9y
    @RomanLaptev-k9y ปีที่แล้ว

    Жесть духота😀

  • @liferunsoncode2921
    @liferunsoncode2921 3 ปีที่แล้ว

    F#
    |> Discriminated Unions + pattern matching
    |> ♥
    у Rust подход с GC = ♥

  • @serhiizaitsev2702
    @serhiizaitsev2702 3 ปีที่แล้ว

    Вау

  • @Антон-к7е7м
    @Антон-к7е7м 3 ปีที่แล้ว +2

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

    • @konstantinta2803
      @konstantinta2803 3 ปีที่แล้ว +4

      >Не нравится сборщик мусора в го - пиши так что бы его он не возбуждался на твой код.
      Рекомендую вам почитать пост discord'a, который объясняет(с замерами параметров) причины, почему это не сработает. И да, они в результате перешли с гоу на раст.

    • @Антон-к7е7м
      @Антон-к7е7м 3 ปีที่แล้ว

      @@konstantinta2803 да читал, они там не плохо зафейлились, если читать внимательно.

    • @konstantinta2803
      @konstantinta2803 3 ปีที่แล้ว +3

      @@Антон-к7е7м так причина была в спайках, идущих с периодом в 2 минуты, который чудесным образом оказался равным периоду принудительного вызова gc гоу рантаймом. Как-то не похоже на фэйл разрабов discord

    • @delir0
      @delir0 3 ปีที่แล้ว +3

      Если докладчик и готовил 5 лет назад про типы в пхп, то я уже сегодня могу сказать:
      1. Нет generics, отсюда array становится нетипизированной ерундой
      2. Функции - не first class citizen
      3. Нет ADT и даже Enum'ов
      4. Нет паттерн матчинга по типам (хотя union types есть)
      5. Есть null'ы и NPE
      Я даже не знаю, как можно иметь смелость сравнивать систему типов в расте, где компилятор тебе может ДОКАЗАТЬ корректность программы с динамическим пхп, который только вчера подал заявку на систему типов.

  • @life_xypma
    @life_xypma 2 ปีที่แล้ว

    Душой чувствую что имеет вместо причина таких «слез», но если даже внимательно слушать - грешное и праведное смешано, как говорил один человек: «Кровь, песок, говно и сахар!»)))) Интересно на чем сидит автор? Главное не принимать не апробированную фармацевтику!!!

  • @this-user-is-not-loser
    @this-user-is-not-loser 3 ปีที่แล้ว +7

    Все языки плохие - раст хороший :)

  • @alexyerin3475
    @alexyerin3475 3 ปีที่แล้ว +3

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

  • @7nolikov
    @7nolikov 2 ปีที่แล้ว +2

    Это какой то эмоциональный бред

  • @leobreydo9318
    @leobreydo9318 3 ปีที่แล้ว +2

    Слишком много воды. Не тратьте время.

    • @life_xypma
      @life_xypma 2 ปีที่แล้ว +1

      Тут реально 95% воды))) как минимум

  • @HeavyHeavyvich
    @HeavyHeavyvich 3 ปีที่แล้ว +2

    Тот, кто прогает на RUST - то настоящий...

  • @xyzwio
    @xyzwio 2 ปีที่แล้ว

    У чела каша в голове. По сути как бы все в основном правильно, но в деталях путает кучу понятий.

    • @xyzwio
      @xyzwio 2 ปีที่แล้ว

      Послушать в все равно интересно, автору спасибо.

  • @fess932
    @fess932 4 ปีที่แล้ว +4

    на go получилось бы не хуже

    • @ахуец
      @ахуец 3 ปีที่แล้ว +2

      Фейспальм

    • @ovellon9526
      @ovellon9526 3 ปีที่แล้ว +1

      писать бизнес логику на Го то еще удовольствие, не хватает дженериков, да и обработка ошибок не сильно радует, надо привыкать

    • @fess932
      @fess932 3 ปีที่แล้ว +1

      @@ovellon9526 писать бизнес логику постоянно думая о нескольких вариантах указателей и времени жизни переменных тоже не очень просто

    • @ovellon9526
      @ovellon9526 3 ปีที่แล้ว +3

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

  • @yuriytheone
    @yuriytheone ปีที่แล้ว

    C++ хватает для всего! Просто кто-то др*чит на разные "красивые" аббревиатуры, типа SOLID, ACID, MVC и другие, а по факту не может высвободить память, которую сам и аллоцировал... 🎉