Асинхронный Rust:Stackfull Coroutines vs. Future. Артём Павлов

Поділитися
Вставка
  • Опубліковано 17 вер 2024
  • 1 декабря, в Москве ждем вас на конференцию RustCon 2023.
    Асинхронный Rust:Stackfull Coroutines vs. Future. Артём Павлов, Квантон
    В докладе рассматривается альтернативный подход к асинхронному программированию на Rust'е в контексте проблем и недостатков существующей async/await системы.
    Доклад рассчитан на людей, заинтересованных в фундаментальных аспектах асинхронного программирования, а также недовольных существующей async/await системой.
    Слушатели познакомятся с альтернативным подходом к асинхронному программированию, потенциально пригодному к использованию на практике, и смогут улучшить свои познания о фундаментальных аспектах асинхронного программирования.

КОМЕНТАРІ • 13

  • @PublicAccount0
    @PublicAccount0 10 місяців тому

    спасибо, ценное мнение, - хорошее объяснение темы.

  • @charlsken6684
    @charlsken6684 Місяць тому

    А можно ли использовать какую от заглушку на микрофоне? а то отдышка через каждое слово, как на марафоне бега какого-то, уже уши режет, дальше одном минуты невозможно смотреть

  • @kapitonovmax
    @kapitonovmax 3 місяці тому

    Да что вы лезите со своими стековыми корутинами? Если не понимаете и не можете работать без стековыми корутинами, то пользуйтесь системными потоками будет практический тоже само что и стековые корутины.

    • @proletarian
      @proletarian 23 дні тому

      UB фанат?

    • @kapitonovmax
      @kapitonovmax 20 днів тому

      @@proletarian Можно запретить передачу по ссылке аргументов в без стековую корутину. Не знал?

    • @proletarian
      @proletarian 20 днів тому +1

      @@kapitonovmax честно без понятия, просто триггерит когда под видео о языке который позиционирует себя как альтернатива си пишут комменты в быдловатом стиле, и это всегда С/С++ разрабы, вас как будто заставляют использовать раст, зиг и прочее всякое

  • @fullmaster9333
    @fullmaster9333 6 місяців тому +1

    Аллилуйя!!
    Как же задолбала имеющаяся кривая асинхронщина 😡

    • @intr0specto
      @intr0specto 21 день тому

      два года прошло, а проекта не видно

  • @user-tx8lw5ti9m
    @user-tx8lw5ti9m 8 місяців тому +3

    async/await, мне кажется, это некий рудимент оставшийся от эксперементов реализации асинхронного программирования. Я сейчас не понимаю, как с нуля можно было придумать такой неудобный механизм как async/await, его появление объясняется исключительно фразой "так исторически сложилось"

    • @МовсарХалахоев-з5в
      @МовсарХалахоев-з5в 3 місяці тому

      а какие альтернативы?

    • @MudroZvon
      @MudroZvon 3 місяці тому +7

      Какой рудимент? async/await это последняя ступень эволюции. Просто в Rust не смогли осилить реализацию с нуля.
      *Сравнение эволюции Async/Await в разных языках*
      1. *JavaScript*
      - Путь: Callbacks → Promises → Generators → Async/Await.
      2. *C#*
      - Путь: Callbacks и Event-based Programming → APM → TAP → Async/Await.
      3. *Python*
      - Путь: Callbacks → Generators и asyncio → Async/Await.
      4. *Kotlin*
      - Путь: Callbacks → Future/CompletableFuture → Coroutines → Async/Await
      *Сложности с async/await в Rust*
      В основном, они связаны с системой заимствования и времени жизни (lifetimes), которая требует тщательного управления временем жизни объектов для обеспечения безопасности памяти. Это усложняет написание асинхронного кода. Кроме того, высокая производительность Rust требует явного управления ресурсами, поэтому асинхронные функции возвращают сложные `Future`, которые необходимо явно запускать и управлять ими. Ещё одной причиной является отсутствие стандартного экзекьютора для асинхронных задач, что приводит к разнообразию подходов и путанице между различными решениями, такими как `tokio` и `async-std`.