Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

    View full-size slide

  2. Ferris the Crustacean

    View full-size slide

  3. Ferris the Crustacean

    View full-size slide

  4. Rust

    Сравнително млад: на 7.5_f32 години (от 1.0)

    “C ме застреля в крака”

    “C++ ми застреля и двата крака”

    View full-size slide

  5. Rust: безопасност

    Ръчна алокация на памет

    Но няма free

    Мерки против кракозастрелвания

    Няма null

    Всички references са гарантирано валидни,
    compile-time

    Няма data races

    View full-size slide

  6. Rust: low-level

    Бърз

    Zero-cost abstractions

    Малък runtime

    Съвместимост (със C и не само)

    View full-size slide

  7. Rust: high-level

    Пакети

    Тестване

    Силна статична типова система

    Любезен компилатор

    Елементи от функционалното програмиране

    Елементи от ООП

    View full-size slide

  8. Rust: community

    View full-size slide

  9. Friends of Rust

    View full-size slide

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

    View full-size slide

  11. Rust: употреба

    Системно програмиране (Redox, coreutils)

    Embedded програмиране

    View full-size slide

  12. Rust: употреба

    Системно програмиране (Redox, coreutils)

    Embedded програмиране

    Уеб, server-side (Actix-web, Axum, Hyper)

    View full-size slide

  13. Rust: употреба

    Системно програмиране (Redox, coreutils)

    Embedded програмиране

    Уеб, server-side (Actix-web, Axum, Hyper)

    Уеб, client-side (wasm, stdweb, yew)

    View full-size slide

  14. 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)

    View full-size slide

  15. Rust: откъде идват хора?

    Ruby, Python, Javascript (през Typescript) –
    скорост, статично типизиране

    Haskell, Scala – подобно типизиране

    C/C++ – безопасност, съвместимост

    View full-size slide

  16. Предупреждения

    Млад език – доста библиотечен код е на 0.x
    версии

    Няма много работа с него

    Труден (за научаване, не за използване) език

    Иска време

    View full-size slide

  17. Предупреждения
    “На Go-то, с 2 часа седмично, накрая се чудехме
    за какво да говорим…
    ама на вас може да не ви стигне времето.”
    (Note: стигна ни)

    View full-size slide

  18. Предупреждения

    Млад език – доста библиотечен код е на 0.x
    версии

    Няма много работа с него

    Труден (за научаване, не за използване) език

    Иска време

    Не пускаме преписвачи (дори и много да съжаляват
    и да са пред държавен изпит, и те само искат 3, и...)

    View full-size slide

  19. Административни неща

    Домашни: 4 x 15 = 60т (или 3 x 20 = 60т)

    Проект: 1 x 60 = 60т (задължителен)

    + разни бонуси: предизвикателства, въпроси
    и отговори
    ● 60т: 3
    ● 75т: 4
    ● 90т: 5
    ● 105т: 6

    View full-size slide

  20. Административни неща

    Дни: вторник и четвъртък

    Време: 19:15 – 21:00

    Ще опитаме да правим видео записи в
    секция “Материали”

    Ако (когато) минем онлайн, ще пишем на
    сайта и в Discord

    View full-size slide

  21. Да идвате ли на лекции?

    Накратко: Да

    Не е задължително, но ще помогне

    Задължително започвайте домашните
    отрано

    View full-size slide

  22. Административни неща

    Discord: https://discord.gg/FCTNfbZ

    Снимки и имена

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

    View full-size slide

  23. Ако още не сте зарибени

    Зарибявка за езика от BurgasConf 2022:
    https://youtu.be/u7VW5Q2YaBI

    Кратко интро с повечко детайли от OpenFest
    2017: https://youtu.be/GJfFOWv2bAg

    Малко по-advanced, предимно за static
    typing: https://youtu.be/qfyhzwYWVn8

    View full-size slide

  24. Ако искате да пробвате

    Най-лесния начин: https://play.rust-lang.org/

    За да си го инсталирате локално:
    https://2017.fmi.rust-lang.bg/topics/1

    Очаквайте компилационни грешки :)

    View full-size slide