$30 off During Our Annual Pro Sale. View Details »

Programming Rust at FMI, 2022

Programming Rust at FMI, 2022

The intro lecture of the 2022 "Programming Rust" course

Andrew Radev

October 04, 2022
Tweet

More Decks by Andrew Radev

Other Decks in Programming

Transcript

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

  2. None
  3. None
  4. None
  5. None
  6. None
  7. Ferris the Crustacean

  8. Ferris the Crustacean

  9. ust

  10. None
  11. Rust • Сравнително млад: на 7.5_f32 години (от 1.0) •

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

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

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

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

  16. Friends of Rust

  17. Open source

  18. Open source

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

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

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

    • Уеб, server-side (Actix-web, Axum, Hyper)
  24. None
  25. Rust: употреба • Системно програмиране (Redox, coreutils) • Embedded програмиране

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

    • Уеб, server-side (Actix-web, Axum, Hyper) • Уеб, client-side (wasm, stdweb, yew) • CLI tools (ripgrep, xsv, fd, sd, rawk) • Parser-и (rust-analyzer, salsa) • Компилация на Javascript (SWC, deno, parcel) • Игри (ggez, godot, bevy) • Desktop (GTK, Tauri, Egui)
  28. Rust: откъде идват хора? • Ruby, Python, Javascript (през Typescript)

    – скорост, статично типизиране • Haskell, Scala – подобно типизиране • C/C++ – безопасност, съвместимост
  29. ?

  30. Предупреждения • Млад език – доста библиотечен код е на

    0.x версии • Няма много работа с него • Труден (за научаване, не за използване) език • Иска време
  31. Предупреждения “На Go-то, с 2 часа седмично, накрая се чудехме

    за какво да говорим… ама на вас може да не ви стигне времето.” (Note: стигна ни)
  32. Предупреждения • Млад език – доста библиотечен код е на

    0.x версии • Няма много работа с него • Труден (за научаване, не за използване) език • Иска време • Не пускаме преписвачи (дори и много да съжаляват и да са пред държавен изпит, и те само искат 3, и...)
  33. Административни неща • Домашни: 4 x 15 = 60т (или

    3 x 20 = 60т) • Проект: 1 x 60 = 60т (задължителен) • + разни бонуси: предизвикателства, въпроси и отговори • 60т: 3 • 75т: 4 • 90т: 5 • 105т: 6
  34. Административни неща • Дни: вторник и четвъртък • Време: 19:15

    – 21:00 • Ще опитаме да правим видео записи в секция “Материали” • Ако (когато) минем онлайн, ще пишем на сайта и в Discord
  35. Да идвате ли на лекции? • Накратко: Да • Не

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

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

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

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