Save 37% off PRO during our Black Friday Sale! »

Programming Rust at FMI, 2021

Programming Rust at FMI, 2021

The intro lecture of the 2021 "Programming Rust" course

Fc59401781a26b10f5d4fc5b758fb3b7?s=128

Andrew Radev

October 05, 2021
Tweet

Transcript

  1. Програмиране с ust

  2. None
  3. None
  4. None
  5. None
  6. None
  7. None
  8. ust

  9. None
  10. Rust • Млад: само на 5.5_f32 години (от 1.0) •

    “C ме застреля в крака” • “C++ ми застреля и двата крака”
  11. Rust: безопасност • Ръчна алокация на памет ➔ Но няма

    free • Мерки против кракозастрелвания ➔ Няма null ➔ Всички references са гарантирано валидни, compile-time ➔ Няма data races
  12. Rust: low-level • Бърз • Zero-cost abstractions • Малък runtime

    • Съвместимост
  13. Rust: high-level • Пакети • Тестване • Силна статична типова

    система • Любезен компилатор • Елементи от функционалното програмиране • Елементи от ООП
  14. Rust: community

  15. Ferris the Crustacean

  16. Ferris the Crustacean

  17. Friends of Rust

  18. Rust companies

  19. None
  20. None
  21. Rust: за какво се използва?

  22. Rust: употреба • Системно програмиране (Redox, coreutils) • Embedded програмиране

  23. None
  24. None
  25. Rust: употреба • Системно програмиране (Redox, coreutils) • Embedded програмиране

    • Уеб, server-side (Actix-web, Diesel, SQLx)
  26. None
  27. Rust: употреба • Системно програмиране (Redox, coreutils) • Embedded програмиране

    • Уеб, server-side (Actix-web, Diesel, SQLx) • Уеб, client-side (wasm, stdweb, yew)
  28. None
  29. Rust: употреба • Системно програмиране (Redox, coreutils) • Embedded програмиране

    • Уеб, server-side (Rocket, Diesel) • Уеб, client-side (wasm, stdweb, yew) • Networking, async stuff (Tokio) • Обработка на данни • Tooling (ripgrep, xsv, fd, sd, rawk) • Parser-и (rust-analyzer, salsa, parcel) • Игри (ggez, godot, bevy, SHAR)
  30. None
  31. Rust: откъде идват хора? • Ruby, Python – скорост, статично

    типизиране • Haskell, Scala – подобно типизиране • C/C++ – безопасност, съвместимост • Отворен процес: The Rust Foundation
  32. ?

  33. Предупреждения • Млад език • Труден (за научаване, не за

    използване) език • Иска време
  34. Предупреждения “На Go-то, с 2 часа седмично, накрая се чудехме

    за какво да говорим… ама на вас може да не ви стигне времето.” (Note: стигна ни)
  35. Административни неща • Домашни: 4 x 15 = 60т (може

    би) • Проект: 1 x 60 = 60т • + разни бонуси: предизвикателства, въпроси и отговори • 60т: 3 • 75т: 4 • 90т: 5 • 105т: 6
  36. Административни неща • Онлайн: http://video.fmi.rust-lang.bg • Има парола, видима в

    dashboard-а • Дни: вторник и четвъртък • Време: 19:15 – 21:00 • Ще има видео записи в секция “Материали”
  37. Да идвате ли на лекции? • Накратко: Да • Ако

    се налага, гледайте видеото • Задължително започвайте домашните отрано
  38. Административни неща • Discord: https://discord.gg/FCTNfbZ • Снимки и имена •

    Лекции, домашни, парола за видеото (регистрирайте се): https://fmi.rust-lang.bg
  39. Ако още не сте зарибени • Кратко интро към езика

    от OpenFest 2017 (spoilers!): https://youtu.be/GJfFOWv2bAg • Малко по-advanced, предимно за static typing: https://youtu.be/qfyhzwYWVn8
  40. Ако искате да пробвате • Най-лесния начин: https://play.rust-lang.org/ • За

    да си го инсталирате локално: https://2017.fmi.rust-lang.bg/topics/1 • Очаквайте компилационни грешки :)
  41. ?