Programming Rust at FMI, 2020

Programming Rust at FMI, 2020

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

Fc59401781a26b10f5d4fc5b758fb3b7?s=128

Andrew Radev

October 05, 2020
Tweet

Transcript

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

  2. None
  3. None
  4. None
  5. None
  6. None
  7. ust

  8. None
  9. Rust • Млад: само на 5.5_f32 години (от 1.0) •

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

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

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

    система • Любезен компилатор • Елементи от функционалното програмиране • Елементи от ООП
  13. Rust: community

  14. Ferris the Crustacean

  15. Ferris the Crustacean

  16. None
  17. None
  18. None
  19. Friends of Rust

  20. Rust companies

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

  24. Rust: употреба • Системно програмиране (Redox, coreutils) • Embedded програмиране

  25. None
  26. None
  27. Rust: употреба • Системно програмиране (Redox, coreutils) • Embedded програмиране

    • Уеб, server-side (Actix-web, Diesel, SQLx)
  28. None
  29. Rust: употреба • Системно програмиране (Redox, coreutils) • Embedded програмиране

    • Уеб, server-side (Actix-web, Diesel, SQLx) • Уеб, client-side (wasm, stdweb, yew)
  30. None
  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)
  32. None
  33. Rust: откъде идват хора? • Ruby, Python – скорост, статично

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

  35. Предупреждения • Млад език • Труден (за научаване, не за

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

    за какво да говорим… ама на вас може да не ви стигне времето.” (Note: стигна ни)
  37. Административни неща • Домашни: 4 x 15 = 60т (може

    би) • Проект: 1 x 60 = 60т • + разни бонуси: предизвикателства, въпроси и отговори • 60т: 3 • 75т: 4 • 90т: 5 • 105т: 6
  38. Административни неща • Онлайн: http://video.fmi.rust-lang.bg • Ще има парола, видима

    в dashboard-а (евентуално) • Дни: Понеделник и сряда • Време: 19:15 – 21:00 • Ще има видео записи (освен на тази лекция), ще ги слагаме някъде в секция “Материали”
  39. Да идвате ли на лекции? • Накратко: Да • Ако

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

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

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

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