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

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

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

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

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

    система • Любезен компилатор • Елементи от функционалното програмиране • Елементи от ООП
  6. Rust: употреба • Системно програмиране (Redox, coreutils) • Embedded програмиране

    • Уеб, server-side (Actix-web, Axum, Hyper) • Уеб, client-side (wasm, stdweb, yew)
  7. 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)
  8. Rust: откъде идват хора? • Ruby, Python, Javascript (през Typescript)

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

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

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

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

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

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

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

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

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

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

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