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

Programming Rust at FMI, 2021

Programming Rust at FMI, 2021

The intro lecture of the 2021 "Programming Rust" course

Andrew Radev

October 05, 2021
Tweet

More Decks by Andrew Radev

Other Decks in Programming

Transcript

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

    View Slide

  2. View Slide

  3. View Slide

  4. View Slide

  5. View Slide

  6. View Slide

  7. View Slide

  8. ust

    View Slide

  9. View Slide

  10. Rust

    Млад: само на 5.5_f32 години (от 1.0)

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

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

    View Slide

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

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

    Но няма free

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

    Няма null

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

    Няма data races

    View Slide

  12. Rust: low-level

    Бърз

    Zero-cost abstractions

    Малък runtime

    Съвместимост

    View Slide

  13. Rust: high-level

    Пакети

    Тестване

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

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

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

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

    View Slide

  14. Rust: community

    View Slide

  15. Ferris the Crustacean

    View Slide

  16. Ferris the Crustacean

    View Slide

  17. Friends of Rust

    View Slide

  18. Rust companies

    View Slide

  19. View Slide

  20. View Slide

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

    View Slide

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

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

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

    View Slide

  23. View Slide

  24. View Slide

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

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

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

    Уеб, server-side (Actix-web, Diesel, SQLx)

    View Slide

  26. View Slide

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

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

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

    Уеб, server-side (Actix-web, Diesel, SQLx)

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

    View Slide

  28. View Slide

  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)

    View Slide

  30. View Slide

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

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

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

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

    Отворен процес: The Rust Foundation

    View Slide

  32. ?

    View Slide

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

    Млад език

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

    Иска време

    View Slide

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

    View Slide

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

    Домашни: 4 x 15 = 60т (може би)

    Проект: 1 x 60 = 60т

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

    View Slide

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

    Онлайн: http://video.fmi.rust-lang.bg

    Има парола, видима в dashboard-а

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

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

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

    View Slide

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

    Накратко: Да

    Ако се налага, гледайте видеото

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

    View Slide

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

    Discord: https://discord.gg/FCTNfbZ

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

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

    View Slide

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

    Кратко интро към езика от OpenFest 2017
    (spoilers!): https://youtu.be/GJfFOWv2bAg

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

    View Slide

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

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

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

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

    View Slide

  41. ?

    View Slide