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

Програмиране с Rust, ФМИ, 2024

Програмиране с Rust, ФМИ, 2024

Уводна лекция за курса "Програмиране с Rust"

Nikola Stoyanov

October 03, 2024
Tweet

Other Decks in Programming

Transcript

  1. ust

  2. Rust • Сравнително млад: на 9.5 години (от v1.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)
  8. 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, Iced)
  9. Rust: откъде идват хора? • Ruby, Python, Javascript (през Typescript)

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

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

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

    за какво да говорим… ама на вас може да не ви стигне времето.” (Note: стигна ни)
  13. Предупреждения • ... • Иска време • Не позволяваме използването

    на Generative AI • Не пускаме преписвачи (дори и много да съжаляват и да са пред държавен изпит, и те само искат 3, и…)
  14. Административни неща • Домашни: 3 x 20 = 60т •

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

    – 20:00 • Няма да правим видео записи на лекциите (но има от минали години) • За новини ще пишем на сайта и в Discord
  16. Да идвате ли на лекции? • Накратко: Да • Не

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

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

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

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