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

Programming Rust at FMI, 2020

Programming Rust at FMI, 2020

Intro lecture to the "Programming Rust" course at Sofia University, 2020.

Andrew Radev

October 05, 2020
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. ust

    View Slide

  8. View Slide

  9. Rust

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

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

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

    View Slide

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

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

    Но няма free

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

    Няма null

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

    Няма data races

    View Slide

  11. Rust: low-level

    Бърз

    Zero-cost abstractions

    Малък runtime

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

    View Slide

  12. Rust: high-level

    Пакети

    Тестване

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

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

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

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

    View Slide

  13. Rust: community

    View Slide

  14. Ferris the Crustacean

    View Slide

  15. Ferris the Crustacean

    View Slide

  16. View Slide

  17. View Slide

  18. View Slide

  19. Friends of Rust

    View Slide

  20. Rust companies

    View Slide

  21. View Slide

  22. View Slide

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

    View Slide

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

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

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

    View Slide

  25. View Slide

  26. View Slide

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

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

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

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

    View Slide

  28. View Slide

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

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

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

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

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

    View Slide

  30. View Slide

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

    Игри (ggez, Amethyst, Piston, SHAR)

    View Slide

  32. View Slide

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

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

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

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

    Отворен процес

    View Slide

  34. ?

    View Slide

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

    Млад език

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

    View Slide

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

    View Slide

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

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

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

    + разни бонуси: предизвикателства, въпроси
    и отговори

    60т: 3

    75т: 4

    90т: 5

    105т: 6

    View Slide

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

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

    Ще има парола, видима в dashboard-а
    (евентуално)

    Дни: Понеделник и сряда

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

    Ще има видео записи (освен на тази лекция),
    ще ги слагаме някъде в секция “Материали”

    View Slide

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

    Накратко: Да

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

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

    View Slide

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

    Discord: https://discord.gg/FCTNfbZ

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

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

    View Slide

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

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

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

    View Slide

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

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

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

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

    View Slide

  43. ?

    View Slide