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

No content

Slide 8

Slide 8 text

ust

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

Rust: community

Slide 15

Slide 15 text

Ferris the Crustacean

Slide 16

Slide 16 text

Ferris the Crustacean

Slide 17

Slide 17 text

Friends of Rust

Slide 18

Slide 18 text

Rust companies

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

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, parcel) ● Игри (ggez, godot, bevy, SHAR)

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

Rust: откъде идват хора? ● Ruby, Python – скорост, статично типизиране ● Haskell, Scala – подобно типизиране ● C/C++ – безопасност, съвместимост ● Отворен процес: The Rust Foundation

Slide 32

Slide 32 text

?

Slide 33

Slide 33 text

Предупреждения ● Млад език ● Труден (за научаване, не за използване) език ● Иска време

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

Административни неща ● Онлайн: http://video.fmi.rust-lang.bg ● Има парола, видима в dashboard-а ● Дни: вторник и четвъртък ● Време: 19:15 – 21:00 ● Ще има видео записи в секция “Материали”

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

Ако още не сте зарибени ● Кратко интро към езика от OpenFest 2017 (spoilers!): https://youtu.be/GJfFOWv2bAg ● Малко по-advanced, предимно за static typing: https://youtu.be/qfyhzwYWVn8

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

?