Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Ferris the Crustacean

Slide 8

Slide 8 text

Ferris the Crustacean

Slide 9

Slide 9 text

ust

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

Rust ● Сравнително млад: на 7.5_f32 години (от 1.0) ● “C ме застреля в крака” ● “C++ ми застреля и двата крака”

Slide 12

Slide 12 text

Rust: безопасност ● Ръчна алокация на памет ➔ Но няма free ● Мерки против кракозастрелвания ➔ Няма null ➔ Всички references са гарантирано валидни, compile-time ➔ Няма data races

Slide 13

Slide 13 text

Rust: low-level ● Бърз ● Zero-cost abstractions ● Малък runtime ● Съвместимост (със C и не само)

Slide 14

Slide 14 text

Rust: high-level ● Пакети ● Тестване ● Силна статична типова система ● Любезен компилатор ● Елементи от функционалното програмиране ● Елементи от ООП

Slide 15

Slide 15 text

Rust: community

Slide 16

Slide 16 text

Friends of Rust

Slide 17

Slide 17 text

Open source

Slide 18

Slide 18 text

Open source

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

Rust: употреба ● Системно програмиране (Redox, coreutils) ● Embedded програмиране ● Уеб, server-side (Actix-web, Axum, Hyper)

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

Rust: употреба ● Системно програмиране (Redox, coreutils) ● Embedded програмиране ● Уеб, server-side (Actix-web, Axum, Hyper) ● Уеб, client-side (wasm, stdweb, yew)

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

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)

Slide 28

Slide 28 text

Rust: откъде идват хора? ● Ruby, Python, Javascript (през Typescript) – скорост, статично типизиране ● Haskell, Scala – подобно типизиране ● C/C++ – безопасност, съвместимост

Slide 29

Slide 29 text

?

Slide 30

Slide 30 text

Предупреждения ● Млад език – доста библиотечен код е на 0.x версии ● Няма много работа с него ● Труден (за научаване, не за използване) език ● Иска време

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

Предупреждения ● Млад език – доста библиотечен код е на 0.x версии ● Няма много работа с него ● Труден (за научаване, не за използване) език ● Иска време ● Не пускаме преписвачи (дори и много да съжаляват и да са пред държавен изпит, и те само искат 3, и...)

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

Да идвате ли на лекции? ● Накратко: Да ● Не е задължително, но ще помогне ● Задължително започвайте домашните отрано

Slide 36

Slide 36 text

Административни неща ● Discord: https://discord.gg/FCTNfbZ ● Снимки и имена ● За лекции, домашни (регистрирайте се), видео от минали години: https://fmi.rust-lang.bg

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

Ако искате да пробвате ● Най-лесния начин: https://play.rust-lang.org/ ● За да си го инсталирате локално: https://2017.fmi.rust-lang.bg/topics/1 ● Очаквайте компилационни грешки :)

Slide 39

Slide 39 text

?