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

ust

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

Rust: community

Slide 14

Slide 14 text

Ferris the Crustacean

Slide 15

Slide 15 text

Ferris the Crustacean

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

Friends of Rust

Slide 20

Slide 20 text

Rust companies

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 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) ● Игри (ggez, Amethyst, Piston, SHAR)

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

?

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

?