Этого треда уже нет.
Это копия, сохраненная 3 мая 2023 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
RUST #24 Rust — невероятно быстрый язык для системного программирования /rust/ 2490347 В конец треда | Веб
RUST #24

Rust — невероятно быстрый язык для системного программирования без segfault'ов и с гарантиями потокобезопасности.

Ссылка на официальный сайт: https://www.rust-lang.org/

В этом ИТТ мы можем объяснить базовые и продвинутые концепции языка, и программирования в целом, поможем вкатывающимся, подскажем что выбрать для веба, игр или, прости Абу, блокчейна.

IDE для Rust: https://areweideyet.com/
GUI для Rust: http://www.areweguiyet.com/
Web для Rust: https://www.arewewebyet.org/
GayDev для Rust: https://arewegameyet.rs/
Что еще есть для Rust?
- Посмотри сам: https://wiki.mozilla.org/Areweyet

Основная литература:
Rust Book(версия на русском языке): https://doc.rust-lang.ru/book/
Rust Book: https://doc.rust-lang.org/book/
Rust by Example: https://doc.rust-lang.org/rust-by-example/
The Rustonomicon(для продвинутых анонов): https://doc.rust-lang.org/nomicon/
Programming Rust: https://www.oreilly.com/library/view/programming-rust/9781491927274/

Ресурсы на русском:
https://rust-lang.ru/
Отдельное спасибо автору этого гитхаба(старому ОПу). Здесь вы сможете найти много полезной информации: https://gist.github.com/TatriX/183c816f1346d418f969c4576c2b9b41

Предыдущий: >>2430103 (OP)
http://arhivach.ng/thread/833033/
Стикер63 Кб, 200x200
2 2490350
>>490347 (OP)
Ждём в тред душевнобольных?
3 2490386
>>490350
Пожалуйста, не надо
image.png120 Кб, 800x326
sage 4 2490431
>>490350
Эти жалкие попытки реанимировать тред. Готовы даже струю мочи получить, лишь бы движуха хоть какая-то была
5 2490479
C++ лучше чем раст.
6 2490482
скиньте discord каналы по rust если уж тред умирает?
7 2490483
>>490482
Оф https://discord.com/invite/rust-lang довольно популярен.
8 2490919
https://www.opennet.ru/opennews/art.shtml?num=57928
Как осилить писать на СИ?
9 2490932
>>490482
Хочешь с концами в трапование deep dive тк скзть?
10 2490941
>>490919
очередной отсос сишки, ничего нового.
11 2491197
>>490919 Мне сказали это самый простой язык из популярных.
12 2491288
>>490919
Как же сишных скуфов ебут....
image.png312 Кб, 1555x678
13 2491291
>>490941
>>491288

>Увидел новость, что в библиотеке, которую использует gpg нашли уязвимость из-за проблем работы с памятью


>Хочешь скачать переписанную на раст библиотеку, ведь по заявлению разработчиков там не должно быть проблем подобного класса


> Видишь пикрил и понимаешь, что даже без наличия проблем с памятью у тебя будет зонд.

14 2491298
>>491296 (Del)
Ленточки ленточками, но мне не нравится, что на многих раст проектах такая херня. Не язык, а политическая партия, блядь.
15 2491557
>>491291
>>491298
Просто это дань моды, на самом деле всем похуй на Украину, большинство ее на карте не с первого раза найдет, до этого везде BLM был, на следующий год еще какая-нибудь хуйня. На функционал не влияет, ну и хуй с ними пусть лепят чего хотят
16 2492712
>>491557

>На функционал не влияет,


Прецеденты уже были.

>>491557

>ну и хуй с ними пусть лепят чего хотят


Не-не, пошли они нахуй. Зачем мне проект, которым управляют дегенераты, которые не имеют своего мнения и следуют любой повесточке?
17 2492805
>>492712

>Не-не, пошли они нахуй. Зачем мне проект, которым управляют дегенераты, которые не имеют своего мнения и следуют любой повесточке?


Ну и не пользуйся тогда или форкай пили своё, хули ты от опенсорса ждешь как от интерпрайза
18 2493031
>>492805
Так я и не пользуюсь, лол. Просто говорю, что по каким-то причинам среди растоманов таких долбоебов больше.
19 2493051
>>493031

>среди растоманов таких долбоебов больше.


Аполитичных людей?
Стикер512x512
20 2493115
>>493031
Я ведь говорил что в тред придут душевнобольные, столярыш ты?
21 2493352
>>493051

>Аполитичных людей?


>BLM


>COVID


>help ukraine


>etc


Ага, очень. Куда ветер дунет, туда они и аполитичны.

>>493115

>Я ведь говорил что в тред придут душевнобольные


Можешь самочтоятельно в этом убедиться. Открой гитхаб и отфильтруй по расту. Почти каждый проект имеет какую-то агитацию на своей страничке и написан транс-вертолетами.
1572210147737.png144 Кб, 360x359
22 2493440
24 2493578
С++ скуфов ебут...
https://zed.dev/
25 2493586
>>493578
Z 🇷🇺
26 2493829
>>493586
Шизик🐽, спок. Тебе в палату.
27 2493841
>>493578
А кто ебет? Там кроме обещаний и всратых анимаций ничего нет. Даже прогу не потрогать пока что на мыло им не напишешь.
Алсо, nvim/emacs такой проблемы лишены.
1573934445188.png284 Кб, 765x430
28 2494623
>>493578

> but sometimes you just want to code together


А как? Зачем? В чём вообще прикол? Какой профит?
29 2494710
>>494623

> code together


Типа это модно сейчас, жыдбрейнс такой же хуйней страдают, но все как обычно работают в гитлабе/гитхабе и ссут на код друг друга в комментариях
sage 30 2497298
Поссал в тред-унитаз обертки над llvm без типов.
image.png659 Кб, 736x736
31 2497706
>>490347 (OP)
Какие подводные если позаимствую в свой пет проект кусочки кода из готового проекта ООО Рога и Копыта? Код закрытый не спрашивайте как он ко мне попал, но у них очень годные идеи и они придумали алгоритмы которые мне как раз и нужны. Есть опен сурс проекты на эту же тему, но там всё намного хуже и проще. Интересуют следующие кейсы:
1) Если мой проект будет использовать ограниченное кол-во людей и код не будет опубликован
2) Если мой проект будет использовать ограниченное кол-во людей и код будет опубликован
Вы охуели, тред совсем утонул кое как нашёл.
32 2497739
>>497298
Но, но, но, я вас попрошу не забывать.

С апреля этого года еще и обертка над GCC тоже! Может rustc бутстрапнуть.
33 2497740
>>497298

>без типов


Что это значит?
34 2498010
>>497740
Тот даун думает, что в расте динамическая типизация.
35 2498026
>>497706

>1) Если мой проект будет использовать ограниченное кол-во людей и код не будет опубликован



Теоретически никто не будет сравнивать ассемблер, особенно если пользоваться этим будет два землекопа. Главное версию с отладочными данными не публикуй. А вот если распространится дальше, да еще и у вас будут одинаковые баги, то тайное всегда может стать явным и тебя реально могут взять за жопу.
36 2498198
>>497706

> и они придумали алгоритмы которые мне как раз и нужны.


Уверен что это они придумали, может в основе лежит какая-то общая научная работа? Тогда хотя бы сможешь её прочитать и переписать под свой код.
37 2502193
Взял rocket посмотреть для веба, просто палкой потыкать. Там действительно что-ли надо для каждого ответа делать свою структуру? А если у меня хост как прокси и я вообще не ебу о содержимом?
38 2502418
>>502193

>Там действительно что-ли надо для каждого ответа делать свою структуру?


Не знаю как в рокете, но в том же фастапи так же, не? Отвечаешь структурами из pydantic-а
39 2502540
>>502418

>fastapi


Там ты на входе модели делаешь. На выход голый словарь можешь отдать, который внутри фастапи сделается сериализованным
1.png91 Кб, 1341x305
40 2502587
>>502193
Литералли титульная страница сайта.
41 2502633
>>490347 (OP)

>невероятно быстрый


Для тех кому понравился синтаксис языка brainfuck
42 2502654
>>502587
Что-то документация с веткой не совпадает
Снимок экрана 2022-11-01 в 03.05.51.png771 Кб, 2230x1370
43 2502711
Подскажите, мне кажется, я какой-то ебалой занимаюсь. Как правильно организовывать файлы? Просто трудно привыкнуть к этим импортам каталогнейм.rs
44 2503092
>>502711
Если модуль в той же папке, то имя модуля совпадает с именем файла, если в дочерней, то с именем папки, а сам файл должен называться mod.rs. При этом ты можешь из любого файла написать crate::foo::bar::*; и всё найдется.
45 2503397
Что постинг то умер? Куда тогда перебраться можно, где не закидают говном за вопросы?
46 2503401
Можете накидать какой-то инфы о том чем именно раст лучше и что такое переполнение буфера, потокобезопасность, выход за пределы и выполнение произвольного кода?
47 2503443
>>503397
Discord
48 2503540
>>502540

>На выход голый словарь можешь отдать


Так словарь это структура.
49 2503563
>>502193

>Там действительно что-ли надо для каждого ответа делать свою структуру?


Не надо, читай доку, там можно вернуть любую хуйню https://rocket.rs/v0.5-rc/guide/responses/#responses
Короче для продакшена полная залупа и лучше использовать actix. Сам фреймворк еще нормальный, но вот все либы для него сущий пиздец пре-альфа версии
51 2503578
>>503568
Если бы кто-то сказал мне, что это удобный способ импорта по сравнению с другими языками, я бы выколол ему глаза и пальцы переломал.
Лучше уж use crate:: юзать
52 2503629
>>502633
Вот человек в котором преувеличение возведено в абсолют.
53 2503631
>>503401
Надеюсь тебе никто ничего не накидает, надоело уже жидкий стул завистников наблюдать.

Просто помни, если для тебя на первом месте при проектировании программы стоят скорость исполнения и корректность программы (причем первое также важно как и второе), то из мейнстримных языков это теперь раст.
54 2503732
>>503631
Так я не провокатор, я правда хочу разобраться в этом.
55 2504001
>>503629
Но ведь это чистая правда
photo2022-05-3114-03-41.jpg83 Кб, 1000x500
56 2504571
А зачем раст учить? Если там вакансий раз, два и обчёлся. Да и каких-то помидоров с тимлидами набирают, ни одного джуна.
Или эт секта такая?
57 2504579
Посмотрел пару видео, где объясняется, что такое переполнение стека на с примером программы на C, там везде объясняется что сейчас компиляторы по умолчанию компилируют с защитой от этого и чтобы получить уязвимость и возможность переполнить стек надо компилировать со специальными флагами.
В чем суть холивара тогда?
58 2504666
>>504595 (Del)
То что С и С++ небезопасный и нужно срочно переходить на раст.
59 2504684
>>504579
Ты скорее всего просто нихуя не понял о чём видосы те были, лол.
60 2504688
>>504666
Тебя от переполнения стека вообще ни один язык не спасёт, о ц/++ небезопасные не из-за него.
61 2504689
>>504684
Я попросил материалов, где объяснят это. Мне никто нихуя не скинул.
Screenshot 2022-11-03 at 13.38.05.png217 Кб, 1790x1164
62 2504712
>>504689
Если кратко — потому что система типов, система владения, система лайфтаймов и куча статического анализа поверх этого на уровне языка, и всё это не позволяет тебе простреливать ноги.

Если подробно — смысла объяснять нет, потому что ты не зная банально что такое стек всё равно нихуя не поймёшь.

>Я попросил материалов, где объяснят это. Мне никто нихуя не скинул.


Ну вот тебе статейки с +- подробным описанием, но без закапывания в детали:
https://tiemoko.com/blog/blue-team-rust/
https://blog.getreu.net/projects/embedded-system-security-with-Rust/

Можешь почитать про приколы плюсов, например, чтобы понимать что не так конкретно с ними:
https://en.cppreference.com/w/cpp/language/ub
https://habr.com/ru/company/otus/blog/594557/
https://habr.com/ru/post/216189/
63 2505777
Заходишь такой почитать изменения https://blog.rust-lang.org/2022/11/03/Rust-1.65.0.html и видишь это

>Before going into the details of the new Rust release, we'd like to draw attention to the tragic death of Mahsa Amini and the death and violent suppression of many others, by the religious morality police of Iran. See https://en.wikipedia.org/wiki/Mahsa_Amini_protests for more details. We stand in solidarity with the people in Iran struggling for human rights.


Это точно язык программирования, а не политическая партия?
64 2505806
>>505777

>Это точно язык программирования, а не политическая партия?


Опенсорс всегда был политическим движением, с добрым утром.
65 2505816
>>505806
Нет, лол.
66 2505820
>>505816
Когда-нибудь почитаешь историю и узнаешь.
67 2505838
>>505820
Не-не-не, даже главный идеолог швабодки Штульман срет политотой у себя на личной страничке, а ресурсы проекта ГНУ(как и многих других проектов, например, openbsd, freebsd, llvm, ziglang, suckless, common lisp и т.д.) посвящены только самим проектам и всему, что с ними связано. А вот те пидорасы, которы срут политотой на главных ресурсах своих проектов это вообще не люди. Когда видишь такое, то сразу появляется чувство, что тебе втирают какую-то дичь. И всегда все по-классике, Х - хорошо, а вот У - плохо, просто верь нам. Какое дело это имеет к проекту? Хуй знает. Есть у меня одно опасение, которое я позже проверю, а именно посмотрю не спонсирует ли Раст Фоундейш один известный фонд, который по странному течению обстоятельств спонсирует оппозицию в России, Иране, Казахстане, Украине и Белоруссии.
68 2505861
>>505838
Сам опенсорс политический, пчел, и всегда был. Пишут они или не пишут на какие-то другие политические темы, никакого значения не имеет — он уже сам по себе чисто политическое движение, за всё хорошее, против всего плохого, свобода, равенство и братство.
69 2505863
>>505777
Это не для тебя написано, а для белых людей. Удивительно, что ты вообще это прочитать смог.
70 2505869
>>505861

> Пишут они или не пишут на какие-то другие политические темы, никакого значения не имеет


Попенсорс - это течение только в одной области, в области компухтерных технологий, поэтому рамки дозволенного всегда должны быть. Просто говорю, что есть адекватные люди, которые понимают почему важно соблюдать гигиену в профессиональной среде, а есть дегенераты, которые срут у себя дома. Раст, к сожалению, из вторых..

>>505863
Причина подрыва?
71 2505882
>>505869

>Попенсорс - это течение только в одной области


Это твоё мнение, не все его обязаны придерживаться. Как бы то ни было, это течение именно политическое.

>поэтому рамки дозволенного всегда должны быть


Которые они сами для себя определяют. Свобода самопределения едва ли не важнейшая часть той политической свободы, за которую боролось и борется опенсорс движение.

>Просто говорю, что есть адекватные люди, которые понимают почему важно соблюдать гигиену в профессиональной среде, а есть дегенераты, которые срут у себя дома.


Если тебе что-то не нравится, то в опенсорсе издревле достпен способ для тебя выразить это недовольство, при этом ничего не потеряв в этой точке времени — форк.
Вон кому-то не нравилось название GIMP, потому считали его слишком политически некорректным, они сделали форк с другим.
72 2506051
>>505882

>Вон кому-то не нравилось название GIMP, потому считали его слишком политически некорректным, они сделали форк с другим.


Не так это было. Они сделали форк и на титульной странице выставили счет для пожертвований болдом. Через какое-то время удалили этот счет и написали что закрыли донейшны.
Вопрос - что они добавили в опенсорс?
73 2506053
>>506051
*И архивировали проект

>This repository has been archived by the owner. It is now read-only.

74 2506058
>>506051

>Не так это было.


В чём противоречие с тем, что я написал?
75 2506200
>>506058
Ты не назвал основной причины. Так делают пропагандисты.
76 2506296
>>506200
Основной причины чего? И в чём она?
77 2507516
https://habr.com/ru/post/598219/
Вышла статья с обоссыванием выпука Столярова и его протыков.
78 2507642
>>497740
скорее всего раст не может генерировать вкусные хинты для llvm которые могут позволить не делать например баундчеков
79 2507668
>>507642
Это ограничение бэкендов GCC и LLVM https://github.com/rust-lang/rust/issues/71997

> alex commented on Apr 8, 2021


>Converted to C++ (turned out basically identical to @joshtriplett's) and filed as an llvm optimizer bug: https://bugs.llvm.org/show_bug.cgi?id=49885



> jrmuizel commented on Apr 8, 2021


>I filed a gcc bug for fun too: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99966



В GCC пофиксили, а в LLVM даже не обратили внимание на issue. Кстати, уже готов GCC rust бэкенд, который может собрать компилятор rust. Часто можно было наблюдать в этих тредах нытье что нет бэкенда GCC. Работа спонсируется.
80 2507674
>>507642

>скорее всего раст не может


Если у тебя есть пример, сделай багрепорт
81 2507684
У меня есть структура
#[derive(Debug, Serialize)]
struct A {
___field1: u32
___ ?????
}
Как сделать чтоб было поле, в которое можно пропихнуть произвольную сериализуемую структуру? Или как это правильно делается?
Чтоб можно было A {field1: 128, .... }
А то как понял, нельзя сделать какую-то базовую структуру, от неё наследоваться, и потомка передать.
Супертрейты помогут?
image.png14 Кб, 304x248
83 2507897
Аноны, а нельзя было это на лямбдах с return'ами соорудить? Нахуя так синтаксис загромождать?
Есть какой-то пример, где вот это вот оправдано?
84 2508058
>>507684
Структура, она на то структура, что всё гвоздями приколочено.
Если тебе нужно записать куда-то кучу разных структур, то ты или подумай над тем, как сделать их не очень разными и привести к одной, или пропихивай в виде Vec<u8>, а в материнской пиши конкретный тип.
85 2508199
>>507897

>Нахуя так синтаксис загромождать?


В смысле? Это стандартный синтаксис, который разрешили в правую часть выражения писать. Стандартный синтакиси в любом случае нужен, то есть он всегда будет. А ты предлагаешь ещё к стандартному синтаксису лямбды придумать? Кто тогда синтаксис загромождает, ммм?
86 2508211
>>508199
Я про break с возвратом значения.
Например, на лямбдах оно бы выглядело как-то так
let result = (|| {
return 1;
})();

немного кучеряво, но хотя бы единообразно. А тут на каждый чих синтаксический сахарок, скоро только для синтаксиса отдельная книжка понадобится.
87 2508241
>>508211
А, тогда не знаю. Скорее всего подсказка компилятору, чтобы убрать вызов функции.

>скоро только для синтаксиса отдельная книжка понадобится


k&r весь о синтаксисе
88 2508437
>>508211
Если у тебя блок 'blockInner находится внутри 'blockOuter и ты хочешь по-быстрому выйти из 'blockOuter.
89 2510913
>>507684

#[derive(Debug)]
struct RealParent {
id: u32
}

impl Parent for RealParent {
fn id(&self) -> u32 {
self.id
}

fn foo(&self) {
println!("bar");
}
}

impl Serialize for RealParent {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer
{
let mut s = serializer.serialize_struct("RealParent", 1)?;
s.serialize_field("id", &self.id())?;
s.end()
}
}

trait Parent: Serialize {
fn id(&self) -> u32;
fn foo(&self);
}

#[derive(Debug, Serialize)]
struct Child<P: Parent> {
id: u32,
parent: P
}

#[test]
fn test_shitty_inheritance() {
let parent = RealParent { id: 123 };
let child: Child<RealParent> = Child { id: 228, parent };
println!("Child: {}", serde_json::to_string(&child).unwrap());
// выводит Child: {"id":228,"parent":{"id":123}}
}

Вот тебе идея
89 2510913
>>507684

#[derive(Debug)]
struct RealParent {
id: u32
}

impl Parent for RealParent {
fn id(&self) -> u32 {
self.id
}

fn foo(&self) {
println!("bar");
}
}

impl Serialize for RealParent {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer
{
let mut s = serializer.serialize_struct("RealParent", 1)?;
s.serialize_field("id", &self.id())?;
s.end()
}
}

trait Parent: Serialize {
fn id(&self) -> u32;
fn foo(&self);
}

#[derive(Debug, Serialize)]
struct Child<P: Parent> {
id: u32,
parent: P
}

#[test]
fn test_shitty_inheritance() {
let parent = RealParent { id: 123 };
let child: Child<RealParent> = Child { id: 228, parent };
println!("Child: {}", serde_json::to_string(&child).unwrap());
// выводит Child: {"id":228,"parent":{"id":123}}
}

Вот тебе идея
90 2510915
>>510913
Блоо, тут пробелы съедаются. В общем, вставишь в редактор кода
91 2510917
>>510913
И помимо этого RealParent можешь сколько угодно таких насоздавать реализующих трейт Parent и их туды подставлять. Родитель1, Родитель2 и т.д. ;)
image.png110 Кб, 930x910
92 2510923
>>510913
Вот в виде скрина пусть ещё будет. Ну и ещё одну деталь незначительную поменял
image.png68 Кб, 919x496
93 2510929
>>510913
Ну и до кучи ещё более лаконичный вариант
94 2511103
>>510913
Вот это норм кстати вариант
95 2515498
>>502711
а что за иде? ide
96 2515527
АНБ США порекомендовало IT-компаниям отказаться от языков C и C++
https://habr.com/ru/news/t/699142/

Ебало белых натуралов пишущих на крестах представили?
97 2515575
>>515527

>белых натуралов


Белых утят ты имеешь ввиду?
изображение.png408 Кб, 657x383
98 2515839
>>515527

>Ебало белых натуралов пишущих на крестах представили?

99 2516640
Не начинай изучать Rust пока не прочтёшь ЭТО

Для тех, кто думает изучать раст. Почитайте объективные независимые мнения программистов об этом языке, чтобы прочувствовать всю суть языка. Это также вам поможет понять, как к вам будут относиться другие программисты, после того, как вы начнёте изучать язык и программировать на нём. Предупреждён, значит вооружён!

Baiker (rsdn.ru):
Что предлагает Раст? Во-первых, НИЧЕГО, что повысило бы работоспособность/удобство написания программ вообще и во-вторых, "танцы на льду на роликовых ходулях" в качестве управления памятью. Какой дурачок на это купится?? Растаманы сейчас — это что-то сродни "свидетелей Иеговы", только их(растаманов) сейчас не сразу закидывают говном. Но закидывают. Ибо достали совать свою ржу и в рот, и в другие отверстия.

velkin (rsdn.ru):
в идеале любые проекты нужно начинать на C/C++, вот моё мнение. Более того, раньше раздавались робкие голоса в пользу C/C++, потому что самые крутые проекты сделаны на них.

B0FEE664 (rsdn.ru):
Язык, в котором нельзя наследовать данные не нужен.
Новый язык в котором переменные не константы по умолчанию не нужен.
Язык в котором есть println нужен исключительно для обучения.
Новый язык в котором нет автоматического распараллеливания выполнения не нужен.

kaa.python (rsdn.ru):
Язык программирования в котором разработчик выполняет работу компилятора по доказанию клрректности времени жизни объектов — это нонсенс.

Kolesiki (rsdn.ru):
Разве "Раст" — это не такая же тухлая тема, как МММ? ДАВНО уже стало ясно (ещё с первых недель появления ржавчины в Тырнетах), что язык — полное гогно. Вернее, его изящно закамуфлированная "мозго_й_опка с памятью", которую разрабы аккуратно вывалили на бедного погромизда.
...
И поняв, что это гогно "никак не взлетает", по форумам стали запускать "Лёней Голубковых", которые враньём/агитацией макают всех в свои ржавые помои. Собственно, даже обсуждение "какое это гогно" — косвенная агитация и излишний хайп/цитируемость к этому дерьму. (вот почему минус) Может, хорош уже насиловать стюардессу?! Один раз закопали — И ХВАТИТ!

http://rustmustdie.com/ :
Этот язык пропитан ложью: он пытается быть низкоуровневым, несмотря на невероятно высокоуровневую природу; пока он претендует, что не включает в себя сборщики мусора, его сообщество активно их использует; он забывает о последовательных программах в погоне за параллельными, и в итоге весь код становится писать сложней; он заявляет о том, что даcт прекрасные макросы, а на деле подсовывает лишь неудобное подобие, при этом существенно замедляющее время компиляции всех программ. Это язык-монстр, но ещё страшней его сообщество.
...
Особо стоит подчеркнуть, что сборщик мусора встроен в стандартную библиотеку, которая неотделима от самого языка, а потому заявления, что Rust — это якобы язык без сборки мусора, — лживы.
...
гениальные разработчики этого языка встроили асинхронную версию сборщика мусора, с тем подвохом, что его содержимое должно быть неизменяемым. Итого в Rust уже даже не один, а два сборщика мусора!

Аноним (opennet.ru):
Да его больше пиарят, чем пилят. Эту новшество во все щели пихают, не останавливаясь не перед чем, и стараясь полить говном все остальные языки. Уже в ядро Linux пытаются подсунуть, лишь бы обратить на него внимание. Эти дебильноватые маркетологи похоже просто не понимают,что таким образом внушает отвращение к этому, и без того муторному, языку.

Аноним (opennet.ru):
Rust как презерватив, вроде безопасно, а дети все равно появляются

Аноним (opennet.ru):
Смотришь его синтаксис и будто наматываешься на колючую проволоку.

Аноним (opennet.ru):
Раньше я думал, что C++ уродливый, закостыленный язык. Но потом я познакомился с Rust

Аноним (opennet.ru):
Безопасные языки программирования нужны тем, кто программировать не умеет.

Аноним (opennet.ru):
Настоящим программистам проверки компилятора не нужны, а тем кто программировать не может никакой rust не поможет, наоборот, они будут уверены что пишут безопасный код без ошибок под действием синдрома Даннинга Крюгера и только всё испортят.

Аноним (opennet.ru):
Отличный язык для прототипирования! Низкоквалифицированные люди пишут черновики функционала, которые квалифицированные инженеры смогут переписать на Си быстрее чем с нуля разрабатывать

Старый аноним (opennet.ru):
Rust — еще и очень полезный язык. Так как он вызывает у программистов рвотный рефлекс, что не дает программистам набрать лишний вес, а значит — продляет жизнь программиста.

истина в последней инстанции (opennet.ru):
Ни одного стоящего проекта, ни одной стоящей IDE.
Так забавно смотреть как трепыхаются в бессилии хрюши неосиляторы нормальных языков и элементарных указателей. Тратьте и дальше свою жизнь на ущербное мертвораждённое.

Аноним (opennet.ru):
когда нельзя создать программистов, пишущих более качественный код, приходится создавать язык, более толерантный к качествам программистов.

Аноним (opennet.ru):
Rust, вне зависимости от его технических характеристик, это просто средство продвижения SJW специфических людей.
Гнать в шею ребят.

Сергей (opennet.ru):
Я не скажу что Rust *авно, но мне кажется, что его появление отразило нынешний уровень извилин и квалификации имеющихся кодеров, чем он будет ниже, тем будет больше фреймворков и языков, ориентированных на этот уровень...

Аноним (opennet.ru):
Да и в целом, раст — это синоним слову безопасность. Ну и память — с памятью работать стало безопаснее. Потому что используется безопасный раст. Безопасность достигается при помощи безопасных конструкций безопасного языка и безопасной работы с безопасной памятью, чтобы безопасные программы были еще безопаснее.

Аноним (opennet.ru):
Кодинг на rust это зашквар и показатель профнепригодности. По своей убогости rust уже давно догнал java.
Настоящие программисты это только те, кто пишут на ANSI C и ASM, кодеры на скриптухе программистами считаться не могут по определению.

szt1980 (opennet.ru):
Смузи-поделка с невменяемым синтаксисом — очередное ненужно. Неосиляторы C/C++ с завидным упорством пытаются изобрести велосипед, но выходит он у них с квадратными колесами и без седла. Корпорации неосиляторам дали Checked C — юзай ptr<T>, array_ptr<T>, nt_array_ptr<T> — не, не хочу, хочу жрать ржавую лажу. И это разработчики?

Андрей (opennet.ru):
Почему код раста читается хуже сообщений об ошибках компилятора С...
Да даже ошибки компилятора С++, просто Господи, выглядят структурней кода на расте.

Аноним (opennet.ru):
Нормальный человек таким синтаксисом пользоваться не будет. Остаются только те кто не уважают сами себя. А так как они не уважают себя они не уважают и окружающих.

wyry (opennet.ru):
Только и Basic и C и Pascal сами по себе во всём лучше Rust. Вот кстати если бы Pascal вышел бы СЕЙЧАС, он бы запросто реально мог претендовать на место безопасного и простого языка для работяг. В нём в отличие от лицемерного Rust даже UB нет by design.

wyry (opennet.ru):
Они создали Rust чтобы люди сильнее полюбили C++ и ценили то что имеют

wyry (opennet.ru):
Язык умер так и не родившись... сейчас любой стартап пишется на Go с последующим переездом на C++... для кого эти новости? Письма мертвеца ей богу
99 2516640
Не начинай изучать Rust пока не прочтёшь ЭТО

Для тех, кто думает изучать раст. Почитайте объективные независимые мнения программистов об этом языке, чтобы прочувствовать всю суть языка. Это также вам поможет понять, как к вам будут относиться другие программисты, после того, как вы начнёте изучать язык и программировать на нём. Предупреждён, значит вооружён!

Baiker (rsdn.ru):
Что предлагает Раст? Во-первых, НИЧЕГО, что повысило бы работоспособность/удобство написания программ вообще и во-вторых, "танцы на льду на роликовых ходулях" в качестве управления памятью. Какой дурачок на это купится?? Растаманы сейчас — это что-то сродни "свидетелей Иеговы", только их(растаманов) сейчас не сразу закидывают говном. Но закидывают. Ибо достали совать свою ржу и в рот, и в другие отверстия.

velkin (rsdn.ru):
в идеале любые проекты нужно начинать на C/C++, вот моё мнение. Более того, раньше раздавались робкие голоса в пользу C/C++, потому что самые крутые проекты сделаны на них.

B0FEE664 (rsdn.ru):
Язык, в котором нельзя наследовать данные не нужен.
Новый язык в котором переменные не константы по умолчанию не нужен.
Язык в котором есть println нужен исключительно для обучения.
Новый язык в котором нет автоматического распараллеливания выполнения не нужен.

kaa.python (rsdn.ru):
Язык программирования в котором разработчик выполняет работу компилятора по доказанию клрректности времени жизни объектов — это нонсенс.

Kolesiki (rsdn.ru):
Разве "Раст" — это не такая же тухлая тема, как МММ? ДАВНО уже стало ясно (ещё с первых недель появления ржавчины в Тырнетах), что язык — полное гогно. Вернее, его изящно закамуфлированная "мозго_й_опка с памятью", которую разрабы аккуратно вывалили на бедного погромизда.
...
И поняв, что это гогно "никак не взлетает", по форумам стали запускать "Лёней Голубковых", которые враньём/агитацией макают всех в свои ржавые помои. Собственно, даже обсуждение "какое это гогно" — косвенная агитация и излишний хайп/цитируемость к этому дерьму. (вот почему минус) Может, хорош уже насиловать стюардессу?! Один раз закопали — И ХВАТИТ!

http://rustmustdie.com/ :
Этот язык пропитан ложью: он пытается быть низкоуровневым, несмотря на невероятно высокоуровневую природу; пока он претендует, что не включает в себя сборщики мусора, его сообщество активно их использует; он забывает о последовательных программах в погоне за параллельными, и в итоге весь код становится писать сложней; он заявляет о том, что даcт прекрасные макросы, а на деле подсовывает лишь неудобное подобие, при этом существенно замедляющее время компиляции всех программ. Это язык-монстр, но ещё страшней его сообщество.
...
Особо стоит подчеркнуть, что сборщик мусора встроен в стандартную библиотеку, которая неотделима от самого языка, а потому заявления, что Rust — это якобы язык без сборки мусора, — лживы.
...
гениальные разработчики этого языка встроили асинхронную версию сборщика мусора, с тем подвохом, что его содержимое должно быть неизменяемым. Итого в Rust уже даже не один, а два сборщика мусора!

Аноним (opennet.ru):
Да его больше пиарят, чем пилят. Эту новшество во все щели пихают, не останавливаясь не перед чем, и стараясь полить говном все остальные языки. Уже в ядро Linux пытаются подсунуть, лишь бы обратить на него внимание. Эти дебильноватые маркетологи похоже просто не понимают,что таким образом внушает отвращение к этому, и без того муторному, языку.

Аноним (opennet.ru):
Rust как презерватив, вроде безопасно, а дети все равно появляются

Аноним (opennet.ru):
Смотришь его синтаксис и будто наматываешься на колючую проволоку.

Аноним (opennet.ru):
Раньше я думал, что C++ уродливый, закостыленный язык. Но потом я познакомился с Rust

Аноним (opennet.ru):
Безопасные языки программирования нужны тем, кто программировать не умеет.

Аноним (opennet.ru):
Настоящим программистам проверки компилятора не нужны, а тем кто программировать не может никакой rust не поможет, наоборот, они будут уверены что пишут безопасный код без ошибок под действием синдрома Даннинга Крюгера и только всё испортят.

Аноним (opennet.ru):
Отличный язык для прототипирования! Низкоквалифицированные люди пишут черновики функционала, которые квалифицированные инженеры смогут переписать на Си быстрее чем с нуля разрабатывать

Старый аноним (opennet.ru):
Rust — еще и очень полезный язык. Так как он вызывает у программистов рвотный рефлекс, что не дает программистам набрать лишний вес, а значит — продляет жизнь программиста.

истина в последней инстанции (opennet.ru):
Ни одного стоящего проекта, ни одной стоящей IDE.
Так забавно смотреть как трепыхаются в бессилии хрюши неосиляторы нормальных языков и элементарных указателей. Тратьте и дальше свою жизнь на ущербное мертвораждённое.

Аноним (opennet.ru):
когда нельзя создать программистов, пишущих более качественный код, приходится создавать язык, более толерантный к качествам программистов.

Аноним (opennet.ru):
Rust, вне зависимости от его технических характеристик, это просто средство продвижения SJW специфических людей.
Гнать в шею ребят.

Сергей (opennet.ru):
Я не скажу что Rust *авно, но мне кажется, что его появление отразило нынешний уровень извилин и квалификации имеющихся кодеров, чем он будет ниже, тем будет больше фреймворков и языков, ориентированных на этот уровень...

Аноним (opennet.ru):
Да и в целом, раст — это синоним слову безопасность. Ну и память — с памятью работать стало безопаснее. Потому что используется безопасный раст. Безопасность достигается при помощи безопасных конструкций безопасного языка и безопасной работы с безопасной памятью, чтобы безопасные программы были еще безопаснее.

Аноним (opennet.ru):
Кодинг на rust это зашквар и показатель профнепригодности. По своей убогости rust уже давно догнал java.
Настоящие программисты это только те, кто пишут на ANSI C и ASM, кодеры на скриптухе программистами считаться не могут по определению.

szt1980 (opennet.ru):
Смузи-поделка с невменяемым синтаксисом — очередное ненужно. Неосиляторы C/C++ с завидным упорством пытаются изобрести велосипед, но выходит он у них с квадратными колесами и без седла. Корпорации неосиляторам дали Checked C — юзай ptr<T>, array_ptr<T>, nt_array_ptr<T> — не, не хочу, хочу жрать ржавую лажу. И это разработчики?

Андрей (opennet.ru):
Почему код раста читается хуже сообщений об ошибках компилятора С...
Да даже ошибки компилятора С++, просто Господи, выглядят структурней кода на расте.

Аноним (opennet.ru):
Нормальный человек таким синтаксисом пользоваться не будет. Остаются только те кто не уважают сами себя. А так как они не уважают себя они не уважают и окружающих.

wyry (opennet.ru):
Только и Basic и C и Pascal сами по себе во всём лучше Rust. Вот кстати если бы Pascal вышел бы СЕЙЧАС, он бы запросто реально мог претендовать на место безопасного и простого языка для работяг. В нём в отличие от лицемерного Rust даже UB нет by design.

wyry (opennet.ru):
Они создали Rust чтобы люди сильнее полюбили C++ и ценили то что имеют

wyry (opennet.ru):
Язык умер так и не родившись... сейчас любой стартап пишется на Go с последующим переездом на C++... для кого эти новости? Письма мертвеца ей богу
100 2516641
>>516640
Аноним12345 (opennet.ru):
Язык для хипстеров
Порог вхождения довольно высок
Синтаксис невменяемый
Область применения ограниченная

Kuku (opennet.ru):
Раст — это ложный пиар, призванный отвлечь силы конкурентов на тупиковую технологию.

Хан (opennet.ru):
Без ООП это лучший язык для хэллоуворлдов

acroobat (opennet.ru):
Язык написан на c++. Вместо компилятора, llvm-приблуда. Ориентирован на студентов, ими же и продвигается. Имхо не взлетит.

Урри (opennet.ru):
В раст приходят совсем молодые программисты, которым лень осилить нормальный язык — это прекрасно показывает рейтинг "любимый язык стековефлововцев".
Ну и еще приходит позор нашей профессии — те, кто не смог нормально осилить полноценный инструмент, только по недоразумению называющие себя "программистами".

Аноним (opennet.ru):
Раст создаёт иллюзию безопасности, поэтому растогориллы пишут как получится

Хан (opennet.ru):
пока растоманы кричат какой ржавый отполированный и блестящий, чуваки на Go просто пишут софт

Аноним (opennet.ru):
Какой смысл писать на языке, на котором тебе придётся всё изобретать самому? Хотя, конечно, зависит от задач, где-то и можно впихнуть. Но скорее на расте всё равно придётся реализовывать только какую-то часть логики. Ну вот вроде сложные и опасные задачи сложения строк или перебора массивов, на остальное как видится раст не способен.

Аноним (opennet.ru):
А что там с осью на расте — не взлетела?
...
Ничего. Оно сжирает всю память и падает. Но это другое. Это безопасно.

Прорыв_запарты_фелиал (opennet.ru):
Раз раст не может в конкурентный доступ, то любое его наличие требует unsafe, хотя unsafe к расту не имеет никакого отношения, потому как имеет как минимум другую модель памяти, даже базовые примитивы иные. Потому как это просто обёртка поверх llvm-ir и сишного интеропа с llvm.

Аноним (opennet.ru):
А если раст еще раз переписать на раст он станет безопаснее?
...
Да, Раст гарантирует безопастность. Тогда будет двойная безопасность.
...
тогда надо будет писать
unsafe unsafe

Аноним (opennet.ru):
Разработка аналогичного кода на rust занимает куда больше времени чем на C/C++ а его сопровождение учитывая постоянные изменения в языке превратиться в ад.

Аноним (opennet.ru):
Взяли бы и написали на расте свой растинукс, с непротекающкй памятью и безопасными утилитами.
...
Пытались, потекло...

Аноним (opennet.ru):
Безалкогольное пиво — вроде выпил а толку ноль
Резиновые девушки — вроде потыкал а толку тоже ноль
Так и rust, вроде язык есть, а толку и софта — ноль.

Аноним (opennet.ru):
Язык, на котором невозможно реализовать ряд алгоритмов, не может считаться полноценным.
...
Растаманам нужен только один алгоритм: алгоритм получения бабла в новосозданный фонд.

Аноним (opennet.ru):
Rust — моральное разложение; коррупция, продажность; вредное влияние безделья, бездеятельности. Очень точное название выбрали.

Сишник (opennet.ru):
Люблю раст за неиссякаемый источник лулзов. Жду новостей вроде "Rust Foundation потратила 50% донатов на содержание совета директоров и 50% на продвижение транс нигга лесбиянок в опенсорс раст проекты"

Аноним (opennet.ru):
Хуже Раста только Го. Не могу смотреть на эти язычки. Живое омерзение, живая подлость! А firefox жаль. Ощущение что браузер спецом хоронят

Аноним (opennet.ru):
Сидит программист, чуток расслабился. Подходит чувак с палкой и хрясь его по спине, приговаривая: "Сиди с ровной спиной".
Этот чувак с палкой — компилятор языка Раст.

Аноним (opennet.ru):
зачем издеваться над трупом? даже мозилла уже от него отказалась

deeaitch (opennet.ru):
У приверженцев Rust всё время проблема с C/C++. То у них с памятью всё плохо, то ещё что непонятное и сложное. То они вечно себе в ногу стреляют.
Зачем вы стреляете себе в ногу? Мазохисты? Вспоминается сразу две вещи:
1) Доктор, когда я делаю вот так, мне больно. А вы так не делайте.
2) Старая добрая игра Fallaut 2: "Вы стреляли в златоящеря и попали в себя, вы потеряли 20 пунктов жизни"
Этакие люди неудачники.
...
Вот честно, очень токсичное общество любителей Rust. У них все плохие, кругом дыры. Одни они умные. Всех надо обосрать.
Приведешь им два аналогичных кода, с аналогичным поведением (вылетанием проги) на C++ и на Rust — Плюсовеки молчат, потому что понимают.
Что слышно от любителей раста? — "Ты де.....л, ты ничего не понимаешь, ваш C++ от....ой." А поведение то одинаковое.
Мне интересно. Откуда столько желчи и РЖАВЧИНЫ у приверженцев Rust.

СССР (opennet.ru):
"Автоматическое управление памятью в Rust избавляет разработчика от ошибок при манипулировании указателями" — что бы ваши ети передвигались на инвалидных креслах. Я исключительно ради заботы, ведь передвигаясь на ногах можно споткнуться , забить лоб и умиреть! поэтому пусть передвигаются на инвалидных кресах от проктэр&гэмбэл с автоматизированной головкой!

Аноним (opennet.ru):
Можете, назвать меня неосилятором, но. Приходит директор и говорит. Вот тебе железка на rs485. Сделай утилиту для её конфигурации и настройки. Срок три дня. Беру я такой раст... И через два месяца меня увольняют. Берут парня, который на делфи зафигачил все за 4е часа. Все довольны. Ну кроме меня.
100 2516641
>>516640
Аноним12345 (opennet.ru):
Язык для хипстеров
Порог вхождения довольно высок
Синтаксис невменяемый
Область применения ограниченная

Kuku (opennet.ru):
Раст — это ложный пиар, призванный отвлечь силы конкурентов на тупиковую технологию.

Хан (opennet.ru):
Без ООП это лучший язык для хэллоуворлдов

acroobat (opennet.ru):
Язык написан на c++. Вместо компилятора, llvm-приблуда. Ориентирован на студентов, ими же и продвигается. Имхо не взлетит.

Урри (opennet.ru):
В раст приходят совсем молодые программисты, которым лень осилить нормальный язык — это прекрасно показывает рейтинг "любимый язык стековефлововцев".
Ну и еще приходит позор нашей профессии — те, кто не смог нормально осилить полноценный инструмент, только по недоразумению называющие себя "программистами".

Аноним (opennet.ru):
Раст создаёт иллюзию безопасности, поэтому растогориллы пишут как получится

Хан (opennet.ru):
пока растоманы кричат какой ржавый отполированный и блестящий, чуваки на Go просто пишут софт

Аноним (opennet.ru):
Какой смысл писать на языке, на котором тебе придётся всё изобретать самому? Хотя, конечно, зависит от задач, где-то и можно впихнуть. Но скорее на расте всё равно придётся реализовывать только какую-то часть логики. Ну вот вроде сложные и опасные задачи сложения строк или перебора массивов, на остальное как видится раст не способен.

Аноним (opennet.ru):
А что там с осью на расте — не взлетела?
...
Ничего. Оно сжирает всю память и падает. Но это другое. Это безопасно.

Прорыв_запарты_фелиал (opennet.ru):
Раз раст не может в конкурентный доступ, то любое его наличие требует unsafe, хотя unsafe к расту не имеет никакого отношения, потому как имеет как минимум другую модель памяти, даже базовые примитивы иные. Потому как это просто обёртка поверх llvm-ir и сишного интеропа с llvm.

Аноним (opennet.ru):
А если раст еще раз переписать на раст он станет безопаснее?
...
Да, Раст гарантирует безопастность. Тогда будет двойная безопасность.
...
тогда надо будет писать
unsafe unsafe

Аноним (opennet.ru):
Разработка аналогичного кода на rust занимает куда больше времени чем на C/C++ а его сопровождение учитывая постоянные изменения в языке превратиться в ад.

Аноним (opennet.ru):
Взяли бы и написали на расте свой растинукс, с непротекающкй памятью и безопасными утилитами.
...
Пытались, потекло...

Аноним (opennet.ru):
Безалкогольное пиво — вроде выпил а толку ноль
Резиновые девушки — вроде потыкал а толку тоже ноль
Так и rust, вроде язык есть, а толку и софта — ноль.

Аноним (opennet.ru):
Язык, на котором невозможно реализовать ряд алгоритмов, не может считаться полноценным.
...
Растаманам нужен только один алгоритм: алгоритм получения бабла в новосозданный фонд.

Аноним (opennet.ru):
Rust — моральное разложение; коррупция, продажность; вредное влияние безделья, бездеятельности. Очень точное название выбрали.

Сишник (opennet.ru):
Люблю раст за неиссякаемый источник лулзов. Жду новостей вроде "Rust Foundation потратила 50% донатов на содержание совета директоров и 50% на продвижение транс нигга лесбиянок в опенсорс раст проекты"

Аноним (opennet.ru):
Хуже Раста только Го. Не могу смотреть на эти язычки. Живое омерзение, живая подлость! А firefox жаль. Ощущение что браузер спецом хоронят

Аноним (opennet.ru):
Сидит программист, чуток расслабился. Подходит чувак с палкой и хрясь его по спине, приговаривая: "Сиди с ровной спиной".
Этот чувак с палкой — компилятор языка Раст.

Аноним (opennet.ru):
зачем издеваться над трупом? даже мозилла уже от него отказалась

deeaitch (opennet.ru):
У приверженцев Rust всё время проблема с C/C++. То у них с памятью всё плохо, то ещё что непонятное и сложное. То они вечно себе в ногу стреляют.
Зачем вы стреляете себе в ногу? Мазохисты? Вспоминается сразу две вещи:
1) Доктор, когда я делаю вот так, мне больно. А вы так не делайте.
2) Старая добрая игра Fallaut 2: "Вы стреляли в златоящеря и попали в себя, вы потеряли 20 пунктов жизни"
Этакие люди неудачники.
...
Вот честно, очень токсичное общество любителей Rust. У них все плохие, кругом дыры. Одни они умные. Всех надо обосрать.
Приведешь им два аналогичных кода, с аналогичным поведением (вылетанием проги) на C++ и на Rust — Плюсовеки молчат, потому что понимают.
Что слышно от любителей раста? — "Ты де.....л, ты ничего не понимаешь, ваш C++ от....ой." А поведение то одинаковое.
Мне интересно. Откуда столько желчи и РЖАВЧИНЫ у приверженцев Rust.

СССР (opennet.ru):
"Автоматическое управление памятью в Rust избавляет разработчика от ошибок при манипулировании указателями" — что бы ваши ети передвигались на инвалидных креслах. Я исключительно ради заботы, ведь передвигаясь на ногах можно споткнуться , забить лоб и умиреть! поэтому пусть передвигаются на инвалидных кресах от проктэр&гэмбэл с автоматизированной головкой!

Аноним (opennet.ru):
Можете, назвать меня неосилятором, но. Приходит директор и говорит. Вот тебе железка на rs485. Сделай утилиту для её конфигурации и настройки. Срок три дня. Беру я такой раст... И через два месяца меня увольняют. Берут парня, который на делфи зафигачил все за 4е часа. Все довольны. Ну кроме меня.
Стикер63 Кб, 200x200
101 2516814
>>516640

> rustmustdie.com


Себя не похвалишь - никто не похвалит
igAAAgLQF-A-960.jpg73 Кб, 700x700
102 2516868
Поделюсь своими первыми впечатлениями о Rust (сам сижу на TypeScript / R / PHP). Язык неплохой, работает пипец быстро. Но! Три основных неприятных момента - общее ощущение кустарности, как будто его делали на коленке. Чтобы нормальную асинхронность получить, надо ставить сторонний crate, какие-то там futures, tokio, прописывать декораторы. Почему асинхронность нельзя было сразу в язык встроить - непонятно.

И второй - вычурный синтаксис. Смешанные чувства от Some(), Ok() - вроде идея неплохая, но на практике приходится писать if let Some(text) = do_some_action().await {} вместо того чтобы просто написать if (text) {} Из-за этого код превращается в огромную писанину, с необходимостью запоминать все макросы, методы и проч.

Третий минус - некоторые библиотеки и решения хрен найдёшь. Я джва часа потратил, чтобы заставить reqwest скачивать файлы параллельно.

Из плюсов - быстро работает, строгая типизация, к синтаксису привыкаешь со временем. Простая конпеляция, по сравнению с тем же C++. Удобный инструмент crate, есть всё что нужно. Консольные приложения писать одно удовольствие.

Короче, у меня пока смешанные чувства.
103 2516898
>>516640
>>516641
Сколько стоит мнение всех этих комментаторов по сравнению с мнением Херба Саттера?
https://www.youtube.com/watch?v=ELeZAKCN4tY
Перед просмотром рекомендую ознакомиться с синтаксисом и семантикой Rust, взять листочек и карандашик, и выписать всё что принято им из Rust.

Отдельно на полях ставить плюсики, когда он произносит слово safety.
104 2516905
Если ты Сишник, перед высером в тред рекомендуется к просмотру https://vimeo.com/71278954

Особенно часть про профессора-утенка, ругающего своего студента что он на ассемблере свою лабу накатал, а не на общепринятых в то время, опкодах.
105 2516915
https://arewestackefficientyet.com/

Как так растобратва? Точно всё по плану идет орунаху
106 2516920
>>516915
Ты сам то понимаешь что цифры значат?
1659921710842.png100 Кб, 987x650
107 2516925
>>516920
Там буквально написано, пчел. Раст делает лишние копирования со стэка на кучу, вместо создания объекта сразу на куче
108 2516930
>>516915
Именно так, есть еще места для непротиворечивой оптимизации LLVM, при том что результирующий код уже на одном уровне по скорости с крестами.

Если кресты не отбросят обратную совместимость по ABI, у них нет шансов на будущее.
109 2516932
>>516905
31:22 “The most dangerous thought that you can have as a creative person is to think that you know what you’re doing.
Because once you think you know what you’re doing, you stop looking around for other ways of doing things and you stop being able to see other ways of doing things, you become утёнок…”
110 2516936
>>516930

> при том что результирующий код уже на одном уровне по скорости с крестами


> делает лишние копированию памяти


> уже на одном уровне скорости

111 2516942
>>516936

>Мои ожидания фейла раста :)


>Рилворлд бенчмарки :(


Ну, подумай еще. Что же это может значить?
112 2516944
>>516930
В плюсах и так разные ABI в зависимости от версии компилятора. Поэтому и есть extern c
113 2516947
>>516942
Бенчмарки показывают не больше, чем то, как они задизайнены. От того, что есть какой-то бенчмарк оверхед по копированию памяти не исчезает
Screenshot9.png55 Кб, 966x753
114 2516956
>>516944
Есть вещи, которых в С++ не избежать. Например лишние mov инструкции ради сохранения обратной совместимости со старыми соглашениями вызова функций. Уже много раз постил этот пример. Гугли there are no zero cost abstractions чендлера каррута и смотри сам.
Отсюда вывод >>516947 что в Раст легаси нет, потому что есть редакции. А пример со ссылкой, которую ты запостил вообще относится только к отношениям раста с LLVM (это можно пофиксить не ломая API), тем более что на подходе GCC бэкенд.
1608935418732.png62 Кб, 1511x384
115 2516965
>>516956
Пчелик, я этот доклад в онлайне смотрел. Причем тут ABI? У юник птр (и у других абстракций) есть обязательный оверхед, даже если он не нужен. Решается это тем, что, внезапно, можно не использовать юник птр, а использовать голый указатель. Короче непонятно к чему ты это написал.

Никакой совместимости нет, у тебя плюсовый код, скомпилированный одной версией компилятора может не слинковаться с другой версией, потому что буквально даже манглинг меняется.

> А пример со ссылкой, которую ты запостил вообще относится только к отношениям раста с LLVM (это можно пофиксить не ломая API), тем более что на подходе GCC бэкенд


Это проблема компилятора, а не отношения с llvm, gcc тут не поможет.
116 2516981
У треда два состояния: мертв, либо в состоянии срача
117 2516984
>>515498
Скорее всего, это NeoVim
118 2516986
>>516965

>Пчелик, я этот доклад в онлайне смотрел. Причем тут ABI? У юник птр (и у других абстракций) есть обязательный оверхед, даже если он не нужен. Решается это тем, что, внезапно, можно не использовать юник птр, а использовать голый указатель.


И получить все прелести голого указателя, а не & из раста. Мало того что unique_ptr аллоцирует в хипе, так его еще и привести всеми noexcept'ами и rvalue-ref'ами к простой базовой конструкции раста нельзя без лишних mov по-памяти.
Метка времени 21:14.

>Короче непонятно к чему ты это написал.


Пофиксить в крестах это нельзя из-за ABI легаси, он дальше об этом говорит. Даже больше, отсутствие полноценных редакций не позволяет гарантировать zero cost абстракции как в Раст.

>Это проблема компилятора, а не отношения с llvm, gcc тут не поможет.


Получается еще проще для фикса. Непонятно к чему ты тогда тут баги компилятора постишь с криками вот весь ваш Раст.
119 2516987
>>516981
У языка практически нет тотал ньюби вкатунов.
120 2516991
Чтобы понять прелести раст, нужно прочувствовать боль от крестов.

Кресты это какая-то сводка из 1001 правила "не делай вот этого", и "делай так" вообще не относящимся к программированию, а только к особенностям самих крестов.
121 2516993
Где в расте ты получаешь замедление исполнения программы от непонимания базовых основ программирования, в крестах ты (помимо сказанного) хватаешь баги, которые проявляются вылетами программы в непонятных местах и корраптом данных с продолжением исполнения.
122 2517000
>>516965

>Пчелик, я этот доклад в онлайне смотрел.


Если настолько опытный программист что тебя заставляет хейтить раст, я не понимаю? Ты хотел чтобы сделали лучше, но не говоришь что конкретно, а только поливаешь помоями. Сделают лучше. Рано или поздно научат модели оптимизации под конкретные платформы, и ни кто уже не будет смотреть на кодогенерацию, просто потому что не поймут как обученные модели генерируют такой хороший код. Будут соревноваться в грамотном составлении высокоуровневых рекоммендаций для получения максимально близкого к их замыслу, результата.
123 2517004
>>517000
Останутся сишные фрики, которые будут пытаться обоссать нейронку, и когда у них будет получаться результат будут скармиливать сети. А сеть будет экстраполировать их находки и становиться только лучше.
124 2517005
>>516986

> И получить все прелести голого указателя, а не & из раста


Ужас блин. Есть abseil::make_unique, absl::WrapUnique() и один из выводов был, что можно не использовать подобные конструкции. Да менять calling conventions для того, чтобы в этой конструкции можно было оптимизировать никто не будет.
И ещё раз никакого легаси ABI нет. Разные версии компилятора имеют разные ABI

> Мало того что unique_ptr аллоцирует в хипе


Нет, если ты указатель ему передашь в конструктор.

> Получается еще проще для фикса. Непонятно к чему ты тогда тут баги компилятора постишь с криками вот весь ваш Раст.


Это было невинное замечание, а ты так триггернулся. Ты слишком чувствительный
image.png317 Кб, 1400x569
125 2517010
Самое смешное, что даже из-за появления Rust-а необходимость обучению Си и Цпп никуда не пропадает. Во-первых, на расте нет работы(криптоскам не нужен) и чтобы она появилась в серьезном бизнесе должно пройти лет минимум 5-10. Но это решается просто ожиданием. Во-вторых, Си никуда не пропадет, а просто будет сосуществовать вместе с растом, поэтому нихуя не меняется кроме необходимости учить еще один язык.

>>517000

>Рано или поздно научат модели оптимизации под конкретные платформы, и ни кто уже не будет смотреть на кодогенерацию, просто потому что не поймут как обученные модели генерируют такой хороший код.


Бред, чтобы модель научилась писать такой код, она должна обладать разумом, осознавать свои действия и их последствия, а не просто срать готовыми паттернами. Ну а с появлением такого ИИ уже будет похуй на код, так как мир сильно изменится.
Без названия (23).png506 Кб, 512x512
126 2517017
>>517010

>Во-вторых, Си никуда не пропадет, а просто будет сосуществовать вместе с растом


Будет ли существовать Си в краткосрочной перспективе, зависит только от того насколько удастся побороться со сложностью оптимизации абстракций. Пока этому ни что фундаментально не мешает. Это можно видеть на примере просачивания ФП конструкций в современные ЯП. Раст просто бугорок в этом последовательном тренде, потому такой хайп. Неосиляторов и утят в расчет не хочу брать.

>Бред, чтобы модель научилась писать такой код, она должна обладать разумом, осознавать свои действия и их последствия, а не просто срать готовыми паттернами.


Это тоже тренд, пока ты можешь скормить сети запросы на "создай мне такой цикл", "сгенерируй такую картинку", "напиши текст на тему". Но прогресс идет, и если результаты работы все более становятся похожи на результат работы человека (их становится сложнее различить) то где же остановимся?
127 2517020
>>517017

>ока этому ни что фундаментально не мешает.


Лол, как раз мешает и это архитектура ЭВМ Пока что функциональная параша не будет выполняться на уровне железа, то об "Сишка все" даже заикаться не нужно.

>Это тоже тренд, пока ты можешь скормить сети запросы на "создай мне такой цикл", "сгенерируй такую картинку", "напиши текст на тему". Но прогресс идет, и если результаты работы все более становятся похожи на результат работы человека (их становится сложнее различить) то где же остановимся?


Ты натянул и спроецировал сомнительный успех из одной области на другую, совсем другую. А помечтать и я могу. Только реальность от этого не изменится.
128 2517035
>>517020
Large language models это та самая область. По какой причине ты думаешь что если сетка генерирует текст, неотличимый от написанного человеком на заданную тему, это нельзя применить к тексту компьютерной программы? Может на сегодняшний день она тебе и не сгеренирует компилирующийся текст, но ты увидишь и поймешь смысл её работы. Направление в котором следует копать. И сделает это исходя из окружающего, уже написанного тобой или предыдущей итерации её работы. На данный момент она берет из базы увиденного, и применяет к твоей ситуации. Это как загуглить вопрос, но получить ответ "почти точь в точь" под твой конкретный сценарий.

https://old.reddit.com/r/MachineLearning/comments/xtd8kc/p_stablediffusioninfinity_outpainting_with_stable/
https://old.reddit.com/r/GIMP/comments/xk7ft2/inpainting_is_coming_very_soon_to_the_gimp_stable/

Мы живем в сингулярности, просто люди этого не замечают. Посмотри что было 2к лет назад. Что такое 2к лет для планеты или вселенной?
129 2517040
Уже пишет лучше чем я (и быстрее) https://www.youtube.com/watch?v=TW2vaG3Y4h4
тайм-код 7:45
130 2517051
>>517035

>По какой причине ты думаешь что если сетка генерирует текст, неотличимый от написанного человеком на заданную тему, это нельзя применить к тексту компьютерной программы?


Потому что она работает только с некоторыми паттернами и учится на готовой базе. Нет базы - нет нейронки, когда человек может создать что-то новое самостоятельно. Нет никаких проблем научить нейронку стилю определенного автора и генерировать картины в этом стиле, но вот собственный стиль нейронка не придумает, понимаешь? В этом и вся проблема. Так же и с кодом. Всякие copilot от гитхаба даже формошлепов и кнопкокрасов не в силах заменить, а про более серьезную работу я вообще молчу. То, что ты пишешь - это фантастика на уровне полноценного ИИ, так как он должен понимать, что от него требуют, как ему это сделать исходя из текущей ситуации и ресурсов, должен осознавать свое состояние, а также прогнозировать возможные проблемы и их решения исходя из целей задачи, а это уже уровень человека. Да и с таким ИИ уже про код можно будет забыть, потому что эта херня будет находить ответ на любой поставленный вопрос.
131 2517062
>>517051

> собственный стиль нейронка не придумает


Рандом не сделает своё дело? Если тот же стаблдифужн взять, то вполне может по некоторым сочетаниям фраз родиться какой-то оригинальный стиль, дальше с ним и работай.
132 2517071
>>517051

>когда человек может создать что-то новое самостоятельно


doubt
изображение.png5 Кб, 491x99
133 2517095
>>516868

>Чтобы нормальную асинхронность получить, надо ставить сторонний crate, какие-то там futures, tokio


tokio де факто стандарт для асинхронности, в язык она встроена поскольку ты пользуешься теми же async/await в стандартной библиотеке для этого есть трет Future, tokio просто одна из реализаций. futures сейчас не требуется, можно подключить, вот пример:
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=034d1b01d1208023a86f2a379fd154f4

зависимости, надеюсь макаба не сожрет:
[dependencies]
tokio = { version = "1.21.2", features = ["full"] }

> прописывать декораторы.


Это аннотации, они используются в компайлтайме и генерируют код, например когда у структур пишешь аннотации для serde генерируется код для серализации/десереализации, поскольку в расте нет как такового рантайма в котором это все генерировалось. Это издержки языка низкого уровня. Допустим из моего кода генерируется при компиляции такой код https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=703394caa0fd8e643c74e059fdf50dd6

>Смешанные чувства от Some(), Ok() - вроде идея неплохая, но на практике приходится писать if let Some(text) = do_some_action().await {} вместо того чтобы просто написать if (text) {}


Во первых тут if (text) {} будет работать только с булевыми выражениями, в плане приведения типов здесь все маниакально, а во вторых ты в таких выражениях можешь обработать всякие разные штуки, например из Result<Option<Zalupa>> получить Zalupa если он есть и обработался без ошибок
if let Ok(Some(zalupka)) = do_some_action().await {}
А еще тут можно обработать всякие enum'ы коими являются Option и Result, короче можно в некоторых случаях в одну строчку записать вместо вложенных if и match

> Я джва часа потратил, чтобы заставить reqwest скачивать файлы параллельно.


С reqwest тоже не знаю чего ты ебался через tokio все распараллеливается. У меня сотни файлов разом качаются в парсере на продакшене. Я с ним помню ебался когда какие-то полубесплатные говнопрокси юзали
изображение.png5 Кб, 491x99
133 2517095
>>516868

>Чтобы нормальную асинхронность получить, надо ставить сторонний crate, какие-то там futures, tokio


tokio де факто стандарт для асинхронности, в язык она встроена поскольку ты пользуешься теми же async/await в стандартной библиотеке для этого есть трет Future, tokio просто одна из реализаций. futures сейчас не требуется, можно подключить, вот пример:
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=034d1b01d1208023a86f2a379fd154f4

зависимости, надеюсь макаба не сожрет:
[dependencies]
tokio = { version = "1.21.2", features = ["full"] }

> прописывать декораторы.


Это аннотации, они используются в компайлтайме и генерируют код, например когда у структур пишешь аннотации для serde генерируется код для серализации/десереализации, поскольку в расте нет как такового рантайма в котором это все генерировалось. Это издержки языка низкого уровня. Допустим из моего кода генерируется при компиляции такой код https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=703394caa0fd8e643c74e059fdf50dd6

>Смешанные чувства от Some(), Ok() - вроде идея неплохая, но на практике приходится писать if let Some(text) = do_some_action().await {} вместо того чтобы просто написать if (text) {}


Во первых тут if (text) {} будет работать только с булевыми выражениями, в плане приведения типов здесь все маниакально, а во вторых ты в таких выражениях можешь обработать всякие разные штуки, например из Result<Option<Zalupa>> получить Zalupa если он есть и обработался без ошибок
if let Ok(Some(zalupka)) = do_some_action().await {}
А еще тут можно обработать всякие enum'ы коими являются Option и Result, короче можно в некоторых случаях в одну строчку записать вместо вложенных if и match

> Я джва часа потратил, чтобы заставить reqwest скачивать файлы параллельно.


С reqwest тоже не знаю чего ты ебался через tokio все распараллеливается. У меня сотни файлов разом качаются в парсере на продакшене. Я с ним помню ебался когда какие-то полубесплатные говнопрокси юзали
134 2517175
>>517051
Кого волнует стиль, если она решает хорошо описанную проблему уже сейчас.

17:00 https://www.youtube.com/watch?v=t3Yh56efKGI
там и примеры решенных задач есть.
135 2517318
>>517071

>doubt


Ага, а первое произведение человеку, наверное, жидорептилоиды подогнали? Или рецепт хлеба.

>>517062

>Рандом не сделает своё дело?


"Оригинальный" паттерн, скорее всего, будет собран из других паттернов по частям, потому что при рандоме нейронка не будет знать, что нужно добавлять. Она не понимает, когда это оригинально, а когда нет. Это может оценить только человек и тот не каждый.

>>517175
Решение хелло ворлдов для удивления хомячков - это не "решает хорошо описанную проблему уже сейчас". Это больше похоже на возвращаемую ракету от Илона Маска, когда все кричали, что будущее наступило, а в реальности оказалось, что дешевле сделать новую болванку, чем чинить старую.
Еще раз повторяю, современные модели нейронок, которые пытаются развивать гугл и прочие корпорации - полный шлак даже на уровне теории. Они очень чувствительны к качеству датасета, у них очень хрупкая " память" и дорогая цена на переобучение(для новой задачи тебе нужно обучать нейронку с нуля). Это не тот ИИ о котором вы мечтаете и который вам навязала научная фантастика.
136 2518742
>>517318

>Или рецепт хлеба.


Это детект, что ты не подумал о чем пишешь.

>Решение хелло ворлдов для удивления хомячков - это не "решает хорошо описанную проблему уже сейчас".


В этом-то и прикол, что решает. Возьми человека с улицы и попроси его написать то же самое. Сколько чел в метро из ста, решат тебе codeforces?

>Они очень чувствительны к качеству датасета


Это полуправда, гораздо проще тренировать на хорошем дата сете, чем на говне. Как и человек не будет по кускам форумы читать, или браться за спецификацию (что может быть лучше спецификации? кратко, полно!) чтобы понять как прогать на сишечке, если раньше никогда не прогал. А сначала возьмется за кем-то аккуратно и выверенно написанный учебник.

>у них очень хрупкая " память"


Поясни, что это должно значить?

>и дорогая цена на переобучение(для новой задачи тебе нужно обучать нейронку с нуля)


Мультитаскинг https://en.wikipedia.org/wiki/AlphaZero

>для новой задачи тебе нужно обучать нейронку с нуля


Есть способы помочь нейронке забыть. Используется в fraud detection сетях, или сетях пытающихся угадать что покупатель захочет купить после этой покупки, чтобы предложить ему сразу.
+ еще one-shot learning
137 2518744
Этот чел с нейронками напоминает мне жалобщиков на раст. Так много уже есть, а он все ноет и ноет что мало и не то.
jtddel5i6j0a1.jpg114 Кб, 1079x1073
138 2520918
139 2521246
>>516898
Ни хрена не рублю в С++, но просто поражаюсь кол-ву отличных спикеров в их коммьюнити - что Саттер, что Тёрнер, что тот-дядька-со-странной-причёской (Майерс, кажется), который рассуждал о том, почему Ваза затонула, а плюсы - нет. Частенько на планшете поздним вечером включаю эстетического удовольствия ради и здорового сна для.
140 2522658
>>516868

>приходится писать if let Some(text) = do_some_action().await {} вместо того чтобы просто написать if (text) {}



умри, ёбаная макака.
141 2522879
>>522658

>макака


Поясни.
142 2524536
Так, без срачей, чем Rust хорош для меня, как для C++-разраба? Пока только почитал как настроить его в VSCode и приятно удивило что есть cargo который сам всё вывозит, нету ахинеи с CMake и прочим говном тащем-то там тоже ничего сложного если изучить и когда учишься работать с Rust не избегаешь основных инструментов сборки а применяешь их сразу. Ну а так пока только написал классический Hello 2ch и отложил чтения этого вашего растбука на завтра. Думаю, надо ли оно мне. Все кричат о какой-то безопасности кода да вот только если ты не еблан то не то чтобы в крестах её нету, просто не надо провтыкивать. Что по скорости? Быстрее/медленнее крестов?
143 2524561
>>524536

>Что по скорости? Быстрее/медленнее крестов?


Быстрее, на уровне C.
С++ вообще высер душевнобольного
Вся суть Rust программистов.mp42,1 Мб, mp4,
360x640, 0:30
144 2524565
145 2524652
>>524565

>главный аргумент против раста — физическое насилие

146 2524675
>>524652
главный аргумент против раста это отсутствие MVC фреймворка.
Как только его выпустят, вот тогда RUST заметят.
147 2524699
>>524536

> если ты не еблан то не то чтобы в крестах её нету


> просто пиши без ошибок


> просто не будь ебланом



Ну а если по делу, то если ты не знаешь зачем тебе Раст, то наверное оно тебе не нужно
Ну в общем и целом чем лучше:
- лучше инструментарий как ты сам уже заметил
- безопасность, но тут больше важно если ты всякие криптографические приколы хочешь делать
- меньше семантик и они более проще и чаще всего в явном виде, то есть написать тебе структуры данных, итераторы даже с ансейфом будет намного легче чем в плюсах если ты конечно не листы решишься писать
148 2524712
>>524536

>если ты не еблан



Ты-то нет, а вот джуны, которые пишут в тот же репозиторий, что и ты - вот они ебланы.
149 2524718
>>524699
Забыл главную килерфичу: макросы
150 2524788
>>524675
Так ли нужен именно MVC? Мы sqlx+actix используем, удобства как в рельсах нет, но на микросервисы хватает вполне, фронт на реактах мы туда просто json выплевываем, база postgres sqlx хватает за глаза, иногда sea-orm используем чтобы руками поменьше писать. Вьюх нет это да, но я думаю и для этого говна уже что-то есть
151 2524810
>>524788

>удобства как в рельсах нет


Ну вот когда будет как в рельсах, тогда все разом пойдут ставить себе cargo
152 2524884
>>524788

>actix используем


По какой-то определённой причине, или просто так сложилось?
153 2524911
Уже стало складываться впечатление, что фанбои сами накидывает говна на вентилятор, чтобы тухлый тред не тонул.
154 2524917
>>524884
Потому что это нормальный фреймворк для веба, rocket вроде хорош, но он для бета-тестеров, а остальное нам как-то не подошло
155 2525003
>>524561

>на уровне C


>С++ вообще высер душевнобольного


Всё с тобой понятно, дальше.
>>524699

>если ты не знаешь зачем тебе Раст, то наверное оно тебе не нужно


Самый адекватный подход к любому языку. Зачем мне оно я в конце поста напишу.

>лучше инструментарий как ты сам уже заметил


Я бы не сказал что лучше, не хватает опыта, пока могу сказать только что удобнее и проще для новичка. А ещё нравится стандартизация, т.е., нету ничего кроме cargo. Я, конечно, люблю свободу выбора в таких вещах но в душе мечтаю что появится единая охуенная система сборки.
>>524712
А вот тут и пора отметить нахуй мне оно. Я вообще ДевжОпс. И что кресты что пидаРаст мне для себя. Кресты учить начал ещё со школы но тупил и забил, потом в унике, и вот уже там, когда дошло дело до ООП, я понял как работать с памятью, точнее, саму концепцию динамически выделяемой памяти, тогда-то мне что-то понравилось и я выучил его для себя. И с тех пор пишу всякие мелкие тулзы для себя, всё хочу попробовать написать что-то на C++/WinRT. Но вот среди того софта, где были кресты, начал появляться сабж для меня чуть ли не главным толчком стало отстранение shadowsocks-libev в пользу Rust и Go реализаций и я решил лично изучить, попользоваться и решить для себя, а чего же так все наяривают и что лучше/хуже. Т.е., мне не для работы, а для себя, и это снимает кучу проблем в виде вклада даунов в репозиторий.
156 2525023
>>525019 (Del)
А в чём принципиальное отличие рандом бекенда и некой системщины?
157 2525156
>>525019 (Del)
О каких "фишках для системщины" идет речь?
158 2525159
>>525019 (Del)
Вот тут двачую, что-то я не припомню чтобы кто-то мог или пытался завести это на всяких мелкоархитектурах. Т.е. получается что словосочетания "системное программирование", "низкий уровень" и прочее применяются больше для маркетинга чтобы вебмакакии могли выебываться что они тоже типо как могут в лоулевел и они не тупые, а на практике оно вроде и может, но не применяется потому что есть C и С с инкрементом и Rust там скорее как челлендж ежели инструмент для выполнения работы.
159 2525164
>>525159

> Не помню чтоб кто то пытался завести на мелкоарзитектурах


В последнее время статей 5 на редите видел о том как кто то на каком то микроконтроллере что то на Раст пилит

Ну и эмбедивщина это только часть системщины и даже не большая ее часть
160 2525184
>>524917
axum ещё есть, warp (этот уже постарше, конечно). Их как-то оценивали, или только между актиксом и рокетом выбирали?
161 2525291
>>525184
Я уже не помню что конкретно смотрели, но в продакшене попробовали только actix и rocket, потом переписали всё окончательно на actix
163 2529564
Вот конечно Гугл ебанаты, они что-ли не знают что на современных плюсах можно писать также безопасно как на расте??? Можно же просто не быть дебилом и не делать ошибок...
164 2529651
>>529564
Ты ещё всех разрабов сторонних либ заставь писать без ошибок, и заебок. Только для этого нужен дядя с палкой, и не один. А в экосистеме раста эту роль выполняет конпелятор.
165 2529662
Аноны, хочу податься в гейм-девелопмент. Прицел - начать с простенького 2D для разминки, потом перейти в 3D. Что выбрать?
fyrox (ex rg3d) - позиционируется, как почти аналог юнити с редактором уровней и кучей фич, разве что магазина ассетов нет. Но, почему-то, непопулярен. Склоняюсь к нему, но смущает непопулярность.
Из популярных
piston - батя, но игры на нём - 2D шлак вроде тетрисов
amethyst - хз, тоже 2D, в-основном
bevy - многообещаюч, но также прямо обещают ломать API в будущем
166 2529709
>>529662

>но также прямо обещают ломать API в будущем


И? Тебе свою пет игрушку поддерживать что ли?
167 2529733
>>529709
Мне бы мою пет игрушку использовать в будущем аки бойлерплейт. А тут всё сломают - учи заново.
168 2537493
Растаны, чего притихли?
169 2537520
>>537493
Пограммируем. Не все же лясы точить.
170 2537691
>>490347 (OP)

>Rust — невероятно быстрый язык



У языков нет такого свойства, как скорость.

Как всерьез можно сидеть в треде с такой шапкой.
171 2537693
>>537691
Схуёв ли?
172 2537746
>>537693
Человеческий глаз больше 24 кадров в любом случае не видит.
173 2537750
>>537746
У раста есть 25 кадр с лгбт-пропагандой, так что на кадр быстрее.
174 2537763
>>537693
Вот даже то, что ты не понимаешь этого, уже показательно.
175 2537778
>>537763
А по делу?
176 2537782
>>537778
Язык это знаковая система. Формальный язык - это нотация, знаковая система над конечным множеством. Ни один язык, будь он естественным или искусственным, формальным или нет, компьютерным или нет. Не оладает такой характеристикой как скорость. Еще языки не обладают такими характеристиками как, например, громкость. Или мягкость.
177 2537784
>>537782
Демагогия.
178 2537788
>>537784
Ну попробуй ответить себе на вопрос, какой скоростью обладает русский или английский язык. Или какова скорость математической нотации, например.

Когда ты попытаешься это сделать, то поймешь, что сказать, что язык - быстрый, все равно, что сказать - язык вкусный.
179 2537831
>>537788
Ясное дело вкусный. Говяжий заливной ням ням
180 2537877
>>537782
Управление памяти влияет на семантику языка. Ручное управление - язык быстрый, сборка мусора - чуть медленнее, распиздяйская система типов - ещё медленнее. Можно, конечно, крутить всякие jit и прочие приблуды, но они жручи в плане памяти. А ещё можно сказать, что сишечка быстрее, но она же говно небезопасное.
Поэтому можно сказать так
Раст - самый безопасный из быстрых языков и самый быстрый из безопасных.
181 2538157
>>537877
Язык не может быть быстрым или медленным.
182 2538235
>>538157
Всем и так ясно что подразумевается не только сам язык, но и вся сопутствующая хуйня, но только не тебе.
183 2538288
>>537788

>Ну попробуй ответить себе на вопрос, какой скоростью обладает русский или английский язык


Средняя скорость речи образованного русского человека 100-120 слов/мин. Средний темп немецкой речи 130-150 слов/мин. Еще быстрее говорят англичане, их показатель – 160-180 слов/мин. Французская речь еще быстрее: 170-190 слов в минуту.
184 2538309
>>538288
Речь - это не язык.
185 2538320
>>538309
Это демагогия!
186 2538329
>>538320
Это объективность. А утверждения о скорости языка - это сюр.
187 2538751
>>538329
А каким язык может быть?
188 2538783
>>538751
Самым красивым в мире, как украинский.
189 2539037
Прочитал статью https://keminglabs.com/blog/building-a-fast-electron-app-with-rust/ и не совсем понял, за счет чего достигается сакральный эффект быстродействия io операций над fs? Я могу понять, например, когда используются стримы NTFS для ускорения поиска по файлам, как в Everything. Но тут, по всей видимости, еще и контент проиндексирован. Так за счет чего такая скорость?
photo2022-12-0200-12-43.jpg40 Кб, 648x603
190 2539303
>>490347 (OP)

Подскажите пожалуйста, пытаюсь забилдить программу на винде из исходников для линукс, получаю такую ошибку:
note: x86_64-w64-mingw32-gcc: error: unrecognized command line option '-fuse-ld=lld'; did you mean '-fuse-ld=bfd'?

error: linking with `x86_64-w64-mingw32-gcc` failed: exit code: 1

пробовал запускать эту команду
rustup toolchain install stable-x86_64-pc-windows-gnu
191 2539315
зачем расту стандартная либа, если такой дроч на крейты и карго? нельзя было просто сделать набор оффициальных крейтов типа cc, которые бы каждый подтягивал по желанию? иговно типа Rust has a small standard library (and that's ok) не выглядело бы как копиум, типа если он такой охуеть модульный, нахуй вообще стд крейт вшит.
192 2539324
от таких вроде мелочей сильно подгорает почему-то. или нет стабильного abi и это типа заебись, хотя язык претендует на написание системного говна чисто на расте и придётся юзать сишный abi. ещё дроч на статическую линковку и полное отсутствие динамической, что опять таки очень странно для языка для запила осей. никогда такого не делал, но собираюсь сделать на расте
193 2539337
>>539315
Чтобы каждый писал свой std в каждом пакете? Так-то есть nostd, сиди ебись если надо.
194 2539339
>>539324
Динамическая линковка не отсутствует, у неё нет стабильного abi. То есть, тебе все библиотеки нужно приносить вместе с бинарником.

> нет стабильного abi и это типа заебись


Есть возможность оптимизировать и допиливать компилятор. Сейчас это важнее стабильного abi. Чисто технически, всякие дебианы могут ввести свой стабильный abi используя набор параметров и версию компилятора. Но апгрейд компилятора означает что все пакаджи на расте придётся обновить.

В C++ стабильный abi много лет придумывался со всякими libstdc++.

> очень странно для языка для запила осей


Ты скозал? https://www.redox-os.org/
195 2539345
>>539037
За счёт того что в фоне индексируется fs и всё остальное. Скорость ему нужна в инкрементальном поиске по уже построенному индексу, что сколько-то там миллисекунд было время реакции.
196 2539352
>>538157
Может. Как ты ни еби питон, сам язык не позволит писать быстрые числодробилки. Там даже пресловутый GIL нужен только потому что всё доступно отовсюду (как во всех скриптовых языках), нельзя иметь изолированный скоуп памяти, который позволит изолировать переменные в треды.
197 2539365
>>539345
Спасибо за ответ. Да, я понимаю, что для быстрого поиска необходимо наличие индекса. А у раста из коробки как работают операции над fs? Есть абстракция над ОС-специфичными командами (чтение/запись и получение ивентов) или каким-то образом напрямую (через драйвер контроллера (например, SATA, IDE))?
198 2539488
>>539365
Конечно есть. В этом весь смысл ОС, чтобы ни одна программа не заморачивалась с SATA/IDE/USB/networked storage/etc, а работала с абстрактной файловой системой. Раст Любой язык поставляется со стдлибой, дающей самые базовые системные вызовы, типа input/print/открыть файл. Всё остальное, включая замороченные фичи ОС, типа inotify для отслеживания изменений в файлах, обычно есть в пакетах/крейтах.
199 2539594
>>539324
Я подумывал над такой хуйнёй: написать макрос-обёртку, который будет конпелять трейт в сишную .so-шку, а поверх реекспортировать функции этого трейта через ffi.
200 2539595
Please write a simple implementation of PROLOG in the Rust programming language.
Короче, Please ни хуя не помог, всё равно на main() обрубает.
201 2539598
>>539488
А нельзя пересобирать только нужное из стдлибы? Типа, нужна тебе только одна функция, f64::floor, например, нахуя всю либу тащить?
202 2539628
>>539598
Если прога крешнется, ей нужен как минимум print. Ах да, флоаты сами по себе как раз могут вызвать креш при делении на ноль например. Так-то есть вроде бы элиминейшен всего что не использовано. Ну и если ты эмбеддед йоба кодер, то nostd, там вообще никакой стдлибы не будет, бинари в 100 байт и ничего лишнего, всё как ты хочешь.
203 2539675
>>539628
Ну, ёпт, смари. Если ты хочешь в nostd, но тебе нужна какая-то функция, проще спиздить её из std. Тогда вопрос - нахуя делать это вручную?
А насчёт print, то можно же паниковать без бектрейса.
204 2539701
>>539675

> проще спиздить


Зависимости не дадут.

> проще


Проще не ебать себе голову и использовать std.

https://github.com/johnthagen/min-sized-rust
Вот здесь посмотри, чел вырезает из бинари всё что может.
205 2539997
Дед-байтоёб пришел учить Rust на примере написания ядрёных модулей.
206 2540013
Какой только хуйни не понапихают, а. https://doc.rust-lang.org/core/option/enum.Option.html#method.is_some_and
вот есть обычный map, а мы ещё только для bool запилим.
вот есть is_some_and для bool, а давайте ещё is_some_and_eq, is_some_and_gt, is_some_and_lt и проч для чисел запилим, а?
Пиздец, ебанаты.
207 2540050
>>540013
Ты ещё на методы строк посмотри, там чего только нет.
Но что ты имеешь против сахара? Будет спрос — запилят.
208 2540083
>>540013
Нет, блядь, велик нужно ставить в красный сарай, а не синий. Ты нихуя не шаришь. inb4: 400+ постов обсуждения
209 2540159
>>540013
Потестили, не понравилось, теперь убирают
https://github.com/crumblingstatue/hexerator/pull/41

Для этого nightly и нужен.
210 2540243
А есть толковые инструкции как правильно ошибки разруливать, все эти Result, ?, ok_or, итд. По отдельности вроде и понятно всё, а как собрать в кучу непонятно.
211 2540794
Склонил ИИ к ректальному кексу, поздравьте меня.
212 2540805
>>540243
Result - это обычный Enum, в котором или данные ответа, или ошибка - делай с ним шо хошь.
ok_or, map, map_err и т.д. - просто сахарок, чтобы не писать много if result.is_ok() {...}
? - если у тебя все ошибки Result<T, E> одного типа E или приводятся к одному типу и ты хочешь пробросить их наверх, т.е. немедленно вернуть эту ошибку вызывающему, чтобы там сами разбирались.
213 2540832
>>540805

> одного типа E или приводятся к одному типу


Если Е/? из разных либ в одной в функции, то надо делать свой енум?
214 2540907
>>540832
Ага, или свой тип для Error и приводить к нему.
Есть макросы, которые упрощают задачу, например, делают енум за тебя https://docs.rs/custom_error/latest/custom_error/macro.custom_error.html#limitations - после этого
215 2541238
>>540243

Конечно, их довольно много. Одна из свежих https://nrc.github.io/error-docs/
216 2542424
>>540907
Возьми anyhow и не еби мозг, ему можно все что угодно пробросить при помощи ?. Редко когда нужно именно с самой ошибкой работать из сторонней либы, обычно просто пробрасываешь наверх и где надо обрабатываешь и anyhow тут самый раз
1663344096872.png174 Кб, 510x346
217 2542454
>>542424
>>541238
>>540907
Спасибо, поразбираюсь.
16349467863870.mp4681 Кб, mp4,
540x960, 0:11
218 2542515
Парни, я питон бекенд макака, и нихуя не понимаю что значат всякие llvm, gcc и прочие вещи с билдом связанные. Расскажи абсолютно тупому человеку что это такое, зачем оно, и почему оно разное всякое.
Screenshot from 2022-12-05 12-35-21.png318 Кб, 1660x1054
Раст Идишевотцов 219 2543295
Кстати, Раст - динамически типизированный ЯП. Попробуйте переубедить меня.
220 2543570
>>543329 (Del)
В чём это проявляется?
221 2543582
>>542515

> llvm, gcc


Конкурирующие компиляторы. Как у тебя есть конкурирующие интерпретаторы: CPython, PyPy, Pyston, Jython, IronPython, MicroPython, etc.

> зачем оно


Превращать исходный текст в бинарники, пригодные к выполнению процессором N + операционкой M.

> почему оно разное всякое


Так сложилось. Gcc начинали ещё диды, чтобы были свободные компиляторы. Llvm это попытка переосмыслить построение компиляторов и переиспользовать готовые оптимизаторы для максимального количества языков/архитектур процессоров. На llvm намного проще создать компилятор нового языка, этим пользуются всякие видеодрайверы чтобы компилировать шейдеры. Добавить новый язык в gcc сложнее, но тоже можно, его тоже постепенно рефачат. Ещё они там не очень совместимы, вроде бы ядро линуха не собирается на llvm, потому что в ядре много gcc-специфичного кода.
222 2544036
>>543582

>ядро


Уже несколько лет как поддерживается сборка шлангом. Ну и несовместимость у них чуть больше чем просто в опциях, а еще и всяких расширениях и интринсиках.
223 2551306
>>490347 (OP)
Растеры, поясните за ваши итераторы тупому плюсовику
Вот есть Iter: next() -> Option<T>
То есть чтобы достать значние, я должен поверить не пустой ли option у меня
Но и сам итератор, чтобы вернуть option должен проверить еще раз как то внутри себя, и затем вернуть option

Это что же получается, два раза проверка??? ОВЕРХЭД!?!?! или нет?

на самом деле, пытался что то похожее в плюсах реализовать, но как только начал, понял что что есть нюансик
224 2551334
>>551306
godbolt
225 2551352
>>551334
Ну так там и чекал
У меня получилось что в целом оверхед есть, но иногда раст соптимизировать может
226 2551906
>>551306
next - это самый базовый метод итератора. Другие методы, такие как fold и try_fold (и соответственно через них сделанные for_each и try_for_each) оптимизированы насколько это возможно.
227 2552132
>>551352
Ну и в плюсах сахар работает точно также.
228 2552350
>>552132
Ну если ты про цикл for, то в плюсах не так
Ты из итератора можешь сразу значение получить, не нужно проверять, только что it != end
А в расте у тебя получается внутри итератора проверяется, чтобы вернуть Some или None, а ты еще раз затем проверяешь, Some это или None
229 2552947
В чём смысл делать result.ok().unwrap()? Почему не просто result.unwrap()?

Вот, например
https://github.com/rust-lang/rust/blob/346804452164befcc44e1531803b73d01b2864cd/library/alloc/src/collections/btree/navigate.rs#L73

И я не первый раз вижу, но не врубаюсь, зачем это
230 2552956
>>552350
Включил оптимизацию, мне вообще цикл развернуло в линейный код с константами. Без оптимизаций next остаётся отдельным методом и честно вызывается, само собой, после вызова метода значение проверяется.

>>552947
Скорее всего чья-то дурная привычка. Почти весь этот файл написал один человек.
231 2552964
>>552947
Скрывают конкретную ошибку, может?
232 2553020
>>552350

>Ну если ты про цикл for, то в плюсах не так


Я в общем. Если не -O3 или хотя бы -O2, то плюсы получются жирными и медленными. А с -O3 получается ляпота.
233 2553069
>>552350

>А в расте у тебя получается внутри итератора проверяется, чтобы вернуть Some или None, а ты еще раз затем проверяешь, Some это или None


Т.е. больше на одну проверку.
234 2553118
>>552350 >>553069
Вы разное сравниваете. В for цикле ничего проверять отдельно не надо, он сам выдаст столько, сколько есть, а потом закончится.
235 2553126
>>553118
Каким это образом?
236 2553129
>>553126
В смысле как это в asm-е выглядит? Я не уверен, зависит от многих факторов. Для статичных данных будет просто unroll цикла в повторение одних и тех же инструкций прямо в тексте программы.
237 2553376
>>552947
потому что для структуры NodeRef, которую возвращает функция next_kv, не реализован типаж Debug, который требуется для анврапа
238 2553407
>>553376

>типаж


Растбук на русский перевели?
239 2553597
>>505777
Хотел вкатиться в раст из цпп, залез в этот тред и ты, анон, меня уберег. Такие люди адекватными быть не могут по определению
240 2553867
>>553407
Это шутка? Его перевели несколько лет назад.
241 2553873
>>490347 (OP)
Где почитать про impl? Не понимаю смысл этой конструкции.
242 2553924
>>553873

>Где почитать про impl?


В растбуке.

>Не понимаю смысл этой конструкции.


Что тебе не понятно?
243 2553925
>>553873
https://doc.rust-lang.org/std/keyword.impl.html

Это всего лишь блок, где ты навешиваешь методы типу (классу), в том числе реализации трейтов (интерфейсов).
244 2553926
>>505777
А иначе что, голову им отрежешь? Могут себе позволить. Не во всех странах обсуждение происходящей хуйни стоит тебе жизни и свободы.
245 2555120
>>553925
Почему назвали трейт, а не интерфейс?
Просто из экономии букв, или там есть глубокий смысл?
246 2555134
>>555120
В чём разница между трейтом и интерфейсом в значении? Не могли просто случайно одно или другое выбрать, если они одно и то же значат?
247 2555276
>>555120
Потому что это не совсем интерфейс, хоть и похоже
248 2555341
>>555134
Интерфейс в Жабе и шарпе передаётся только по ссылке и вызывается через виртуальную таблицу. Трейты - это всегда static dispatch и можно перемещать и передавать по значению. По мнению одного шиза с лора трейты работают также, но его нужно просто научиться распознавать и никак не взаимодействовать.
249 2555501
>>555341

>По мнению одного шиза с лора


Столяров?
250 2555572
>>555501
Некто Царь. Плюсовик, который, вроде как, в чем-то шарит, но не способен общаться без попыток всех хуесосить, использует для всего свои собственные определения, из-за чего его невозможно в чем-либо переспорить.
251 2556612
>>555341
Спасибо.
252 2556644
>>555572
Он шиз со справкой, не? А так - нихуя он не шарит, и много раз это доказывал.
253 2557504
254 2557660
>>557504
это си
255 2557720
>>557660
это как на питоне в быстрые числодробилки
256 2558033
>>555120
Traits combine aspects of protocols (interfaces) and mixins. Like an interface, a trait defines one or more method signatures, of which implementing classes must provide implementations. Like a mixin, a trait provides additional behavior for the implementing class.

В трейте можно и реализацию написать, не только сигнатуры методов.
257 2558037
>>557504
Ну ок. Напиши на numpy поиск чисел Фибоначчи. Раздроби числа.
image.png8 Кб, 329x157
258 2558052
>>557720
это не на питоне, там скопмиленная сишка
259 2558072
>>558052
да хоть фортран, какая нафиг разница что там
260 2558077
>>558072
Что сказать-то хотел? Пришёл, спизданул базворд вне контекста, теперь какие-то анальные манёвры в свою защиту. Ну блядь да, если выдернуть только слова питон и числодробилки, то есть разные костыли чтобы это делать, вот как будто мы не знали.
261 2558078
>>558077

> пук среньк


Тебе слова правильные или числодробилки писать?
262 2558094
>>558078
Давай, пиши фибоначчи, пиздобол безмозглый.
263 2558239
скоро новый год, расскажите как торговать плиз
264 2558300
>>558072
ну типа ты из питона запускаешь вообще другую программу, это же не то же самое, что посчитать на питоне
265 2558325
>>558300
Какая разница что ты вызываешь, главное что где
Хоть ассемблерные вставки вызывай, какая разница
266 2558526
>>558325
В том и разница, прочитай с чего разговор начался. Поэтому и вынесли сами расчеты из питона в сишку.
267 2558541
>>558526

> сам язык не позволит быстрые число дробилки


Может лучше ты перечитаешь что пишешь
268 2558542
>>558541
Не позволяет и поэтому дробилку скинули на сишку.
269 2558544
>>558542
И вызываются они из питона
И пишешь ты число дробилки, на питоне, вызывая сишечку

ты реально тупой такой?
270 2558574
>>558544

>И вызываются они из питона


Нет, вызываются они из баша.
271 2558575
>>558544
Вызываются из питона, но написаны не на питоне. Что еще тебе надо то?
272 2558858
Двачую парней
Знали кстати что на си невозможно ОС написать, только на асме

парни, ну вы реально тупицы, литерали 0iq
273 2560652
>>555572

>царь


Ни в чем этот петух не шарит, псевдоилитарий-говноед-вниманиеблядь, не надо его упоминать где либо.
274 2560654
>>529564
да везде нужно, только ты хуй поймешь, что именно из этого безопасно или нет, в расте можно просто сфокусировать свое внимание на unsafe в чужом коде, чтобы быстрее найти уязвимость, в плюсах априори ансейф везде и хуй поймешь, насколько безопасно там что либо. 99% кода пишется криворукими дебилами всегда и везде, зиродеи в линуксе это подтвердят.
275 2560655
>>516640
Проиграл. Такое ощущение, как будто пердокрысам из запарты принесли потрогать раст и они не осилил БЧ.
276 2561753
Покажите мне, чем именно таким Rust безопасен?
почему я в конце каждой его функции не вижу ручного удаления всех переменных? Значит, есть сборщик мусора? В чём блядь разница.
277 2561835
>>561753

>я в конце каждой его функции не вижу ручного удаления всех переменных? Значит, есть сборщик мусора


Нет, не значит даже для сипэпэ
278 2561845
Почитал немного про раст. Какая-то ебанина с let mut, с передачей простых типов по ссылке (это такой простор нахуярить сайд-эффектов, что такое даже в JS не ввели), ну и лямбды выглядят не оч.
279 2561872
>>561845
Мб не понял тебя, но передача типов по ссылке не производит сайдэффектов
280 2561897
>>561872
ну, если ты передашь в функцию &mut value, то сможешь поменять в ней value, и оно также поменяется во внешнем контексте?
это я и назвал сайд-эффектом.
(конечно, когда пишешь &mut, ты вроде как и ожидаешь, что функция поменяет этот аргумент)
или я неправильно понял, в чём суть передачи по ссылке в расте?
281 2561927
>>561897

>(конечно, когда пишешь &mut, ты вроде как и ожидаешь, что функция поменяет этот аргумент)


Именно. Иначе зачем функции такая сигнатура?
282 2561942
>>561753

>Покажите мне, чем именно таким Rust безопасен?


https://stackoverflow.com/questions/36136201/how-does-rust-guarantee-memory-safety-and-prevent-segfaults
Если что то конкретное непонятно, спрашивай
есть еще трюк с переполнением численных переменных, а также выход за массив, говорят в криптографии челам оч понравилось

> Почему я в конце каждой его функции не вижу ручного удаления всех переменных?


В плюсах ты тоже этого не видишь, но RAII при этом существует
В расте же ownership semantics в плюсах около аналоги начали появлятся, в core guidelines
https://doc.rust-lang.org/book/ch04-01-what-is-ownership.html

>>561845

>Какая-то ебанина с let mut


Обычный синтаксис, или ты про иммутабельность по дефолту?
Это единственный способ сделать нормальную констатность данных, в плюсах вот по другому сделано, получилось не оч

> передачей простых типов по ссылке


???
Хочешь по ссылке передавай, хочешь по значению, кто тебе запрещает то

> лямбды выглядят не оч


Синтаксически? Ну может быть, но так или иначе, пох на синтаксис
283 2562042
>>561897
Ну в случае простых типов, это просто более эффективный и простой способ передать значение в функцию, получить его и присвоить к той же переменной. Это не сайд эффект.
284 2565201
Объесните пожалуйста в чём смысл реализовывать трейт отдельно для Type и для &Type. И когда реализуешь для &Type и пишешь &self, то что это, типа ссылка на ссылку получится?
285 2565231
>>490347 (OP)
Аноны что за шок контент на 4 пике?
286 2565357
До чего же уродливый язык. Неудивительно, что его только всякие шизы и лгбтукр++ трансы форсят. Нормальный мужчина на таком писать не будет
287 2565358
>>565357
Какой язык по твоему мнению является красивым?
288 2565378
>>565357

> не осилить синтаксис


> какой то пук про ЛГБТ и трансов


Для бинго не хватает про смузи написать

кто этих нпсей клепает?
Screenshot from 2023-01-07 09-03-00.png85 Кб, 607x807
289 2565412
>>565201
Видимо там нет автоматического дереференса и это реально два разных типа. Если убрать impl for &Type, то перестаёт собираться на строке &&c.
290 2565415
>>555572
Пиздец. Сидел в неформальном раст-чятике в телеге. Там половина это плюсовики, которые пришли рассказать какое говно этот ваш раст, как им не бомбит, и как их треугольник на вулкане даёт 5000 фпс, а не 2000 на растовском вулкано. Идеальное место что абсолютно бесполезно провести время.

>>561845
Мало прочитал. Про сайд-эффекты хуету написал. Что не так с лямбдами? .filter(|a| a > 4) пиздатые лямбды для типизированного языка.
291 2565417
>>565358
C# и Pascal красивые.
292 2565420
>>565417
begin end begin end begin end
namespace public static class public static void Main

И это красиво? Какая-то дедовская эстетика уровня писать номера линий в бейсике. Я считаю расту можно дохера чего простить за одни только блочные выражения. Только в луа есть что-то похожее в do блоках, но в расте красивее.

let x = {

let a = ...
let b = ...
a + b

};

a, b наружу не вытекают, и не нужно для этого определять целую функцию.
1673078395858.jpg6 Кб, 347x104
293 2565448
>>565420
Всё хорошее придумано до вас
294 2565467
>>565358
Самый красивый язык - это джава, потому что код на джаве можно читать как книгу. Ведь код читают гораздо больше, чем пишут. Ну за исключением Го(вна), там высирают микросервис и даже не читают, просто выбрасывают потом. Вот представьте отрывок из книги:
"Все счастливые семьи похожи друг на друга, каждая несчастливая семья несчастлива по-своему.
Все смешалось в доме Облонских. Жена узнала, что муж был в связи с бывшею в их доме француженкою-гувернанткой, и объявила мужу, что не может жить с ним в одном доме."
Легко читается, всё хорошо, но представим, что эту книгу писали бы на расте:
"Вс счстл смьи пхж дрг на дрга, кждая несчстл смья несчстл псвму.
Вс смшал в дме Облонских. Жена узнл, что муж был в свзи с бывш в их дме фр-гувернанткой, и std::io::stdout "что не может жить с ним в одном {}.", дме "
Вроде оно конечно и короче, но смогли бы вы такое читать?
295 2565495
>>565467
AbstractSingletonFactoryBeanAdapterDelegateProvider
А всё потому что у жавы ограниченная выразительность. Приходится трахать паттерны вместо нормального программирования. Говорят, в последних версиях стало лучше.
296 2565540
>>565467
Ты уже даже не вытекаешь из треда, тред просто проваливается под тобой. Настолько серьёзной шизы реально нигде не найдёшь, только в растотреде.

Пиздец
Стикер127 Кб, 500x500
297 2565569
>>565495

>AbstractSingletonFactoryBeanAdapterDelegateProvider


Это еще не самое длинное название класса, бывает поинтереснее, мне нравятся стактрейсы в спринге ух бля разворачиваешь терминал на весь экран и читаешь
298 2565640
>>565467
Просто пиздец, я ожидал чего угодно, кроме жабы.
299 2565652
>>565467
Ш - шизофрения.

Шизофрени́я (от др.-греч. σχίζω «расщеплять», «раскалывать»[2] + φρήν «ум, мышление, мысль»[3]), ранее — деме́нция пре́кокс (от лат. dēmentia praecox — «раннее слабоумие»)[4], или схизофрени́я[5], — эндогенное полиморфное психическое расстройство (или группа психических расстройств)[6], характеризующееся распадом процессов мышления.
1517769311272.png86 Кб, 1412x482
300 2565705
>>565467
Окромя шуток обж-си реально как-то так и сделан.
16730935328400s.jpg5 Кб, 148x200
301 2565785
302 2565917
>>565785
У меня такая реакция от синтаксиса раста. Он настолько засран спецсиволами, что наверно можно продавать растаман специальные клавы с износостойким шифтом.
303 2566310
В каких ОС ядро написано целиком на расте, без привлечения c++?
304 2566330
>>566310
Какие ОС вышли за последние 10 лет?
305 2566347
>>566330
Не следил, потому и спрашиваю
306 2566353
>>566347
Ну никаких новых не выходило. Что-то там напукли на расте в ядре линуха, говорят, со временем будут пукать больше. Если текущий тренд развития раста будет продолжаться, я вполне вижу постепенный переезд с C-codebase на раст, но пока раст еще сыроват для этого.

По поводу плюсов, тут тоже фифти-фифти, нужно посмотреть, к чему придут в 23 стандарте.
307 2566472
После многомесячного перерыва на лечение шизы я вновь занялся разработкой. Боже мой, без шуток, как же Rust прекрасен. Есть ли язык лучше?
308 2567776
Почему это говно провалилось?
aKgebanxbUk.jpg350 Кб, 1600x1200
309 2567862
>>567776

>поиск сеньёра по цене джуна


>всё провалилось

310 2568118
>>566353
Ага, а потом гугл допилит свой карбон, сменит его агенду с "лвлап для протухших крестов" на "йоба системный язык нового поколения" и занесёт чемоданы бабла на пиар, так что про него будут из каждого утюга вещать как это происходило с го. И прости-прощай, раст, у смузихлебов новый тренд, мозилла или кто там раст делают такой конкуренции не потянут, да оно им и нахуй не надо.
311 2568126
>>568118
Это разные вещи, грубо говоря карбон основных проблем плюсов не решит, а лишь позволит на нем писать без огромной жопоболи

но вот вытолкнет ли он по популярности раст ещё надо будет поглядеть, я смотрел недавно на состояние дел там, ну и вобщем если плюсовики раст смузихлебным называют, то там еще весело будет
312 2568138
>>568126
В потенциале - ещё как решает, это сначала карбон будет просто освобождением от жопоболи крестов, а дальше у них чётко прописана цель:

> Once we can migrate code into Carbon, we will have a simplified language with room in the design space to add any necessary annotations or features, and infrastructure like generics to support safer design patterns. Longer term, we will build on this to introduce a safe Carbon subset. This will be a large and complex undertaking, and won't be in the 0.1 design. Meanwhile, we are closely watching and learning from efforts to add memory safe semantics onto C++ such as Rust-inspired lifetime annotations.


Ну то есть они потом объявят весь карбон unsafe и поверх него прикрутят safe подмножество, которое и будет самым прямым конкурентом раста. хотя они и так будут конкуренты и до safe carbon, ниша-то олна Кто выиграет из двух - я ставлю на гугл, при условии, что они не положат хуй на проект, как это было сделано с. Dart.
image.png33 Кб, 954x282
313 2568277
>>568138
Ну я прочитал их же собственный говнофак и сделал так, как они сказали первым же предложением по теме Rust'а. И в чём я не прав?
314 2568538
Господа, работаю сейчас в основом на современном C++ и сетями, но очень интересует Rust, можно ли как-то плавно перекатиться, а то из вакансий попадающихся кроме блокчейна ничего нет.

Мб кто-то совмещал в проектах плюсы и раст?
315 2568801
>>568538
Не совсем понял, что именно ты хочешь: вкатиться в раст самостоятельно и сменить проект или втащить раст на текущий проект?

Для первого варианта всё относительно просто: читаешь растбук/статейки/другие книги, пишешь простенькие cli-тулзы/сервисы/либы/обвязки вокруг си/плюсовых либ на расте, пишешь что-то более сложное, и ты готов к интервью. Есть опыт в предметной области и плюсах хороший - можно апплаиться и на более синьорские позиции. Блокчейн вакух действительно подавляющее большинство, но есть и сетевые/геймдевные/системные. Можешь полистать в телеге канал с вакансиями на расте по тегу #nobc чтоб примерно представлять, что хотят. Опять же, в блокчейн-проектах нужен не только блокчейн - бекенды на микросервисах сами себя не напишут.

Для второго варианта тебе понадобится изобретательность, хорошие софт-скилы, какой-то авторитет в команде и удача. И отсутствие в команде шизика, вроде того что срёт в этом треде. Бери какой-то кусок функциональности и пили на расте, интегрируй его в существующий код всякими bindgen/cbindgen/cc/cxx и тд. Ну и останется его "продать" команде и менеджменту - для некоторых это самое сложное.

Кулстори:
На прошлой работе (трейдинг, но не блокчейн) я был в дотнетной команде, которая интенсивно использовала плюсовую сетевую либу с ключевой для бизноса функциональностью. Либу делала отдельная команда плюсовиков (лет 15). Либа была только виндовая (dll + пачка .hpp файлов), обильно текла по памяти и иногда крашилась. Но ещё больше было головняка с дотнетными (и jvm'ными и питоньими и goшными) обвязками для этой либы из-за сраных ограничений по многопоточности - вот это можно вызывать только в одном потоке иначе краш, а вот это только в другом, и данные отданные из одного потока нельзя передать в методы вызванные в другом, пушо они аллоцированы из разных куч, и тд. и т.п. И потому что либа была виндовая, приложения с ней нельзя было нормально контейнеризовать (windows containers - то ещё говно).

Я поддерживал .net-обвязку вокруг этой либы и сильно заебался. Написал на расте grpc-сервис, который внутре дёргал методы либы и наружу выставлял в виде удобного АПИ. Благодаря send/sync/!send/!sync удалось избежать большинства проблем с многопоточностью, copy/clone и лайфтаймы избавили от основного головняка с памятью. Ну и это добро уже запускалось в linux под wine - можно было легко докеризовать. В моей команде сначала сильно сопротивлялись, но т.к. более хорошего способа затащить проект в кубер не было, рискнули. Когда я увольнялся чтоб не попасть на утренник, сервисом уже пользовались джависты и питонисты, а гошники собирались переезжать.

После увольнения прошел несколько собесов на растовакансии и получил пару офферов (один тоже в трединговую контору, но не блокчейн, второй вообще не связан с трейдингом). Но принял оффер на позицию на старом стеке пушо на $2k/mo больше денег
315 2568801
>>568538
Не совсем понял, что именно ты хочешь: вкатиться в раст самостоятельно и сменить проект или втащить раст на текущий проект?

Для первого варианта всё относительно просто: читаешь растбук/статейки/другие книги, пишешь простенькие cli-тулзы/сервисы/либы/обвязки вокруг си/плюсовых либ на расте, пишешь что-то более сложное, и ты готов к интервью. Есть опыт в предметной области и плюсах хороший - можно апплаиться и на более синьорские позиции. Блокчейн вакух действительно подавляющее большинство, но есть и сетевые/геймдевные/системные. Можешь полистать в телеге канал с вакансиями на расте по тегу #nobc чтоб примерно представлять, что хотят. Опять же, в блокчейн-проектах нужен не только блокчейн - бекенды на микросервисах сами себя не напишут.

Для второго варианта тебе понадобится изобретательность, хорошие софт-скилы, какой-то авторитет в команде и удача. И отсутствие в команде шизика, вроде того что срёт в этом треде. Бери какой-то кусок функциональности и пили на расте, интегрируй его в существующий код всякими bindgen/cbindgen/cc/cxx и тд. Ну и останется его "продать" команде и менеджменту - для некоторых это самое сложное.

Кулстори:
На прошлой работе (трейдинг, но не блокчейн) я был в дотнетной команде, которая интенсивно использовала плюсовую сетевую либу с ключевой для бизноса функциональностью. Либу делала отдельная команда плюсовиков (лет 15). Либа была только виндовая (dll + пачка .hpp файлов), обильно текла по памяти и иногда крашилась. Но ещё больше было головняка с дотнетными (и jvm'ными и питоньими и goшными) обвязками для этой либы из-за сраных ограничений по многопоточности - вот это можно вызывать только в одном потоке иначе краш, а вот это только в другом, и данные отданные из одного потока нельзя передать в методы вызванные в другом, пушо они аллоцированы из разных куч, и тд. и т.п. И потому что либа была виндовая, приложения с ней нельзя было нормально контейнеризовать (windows containers - то ещё говно).

Я поддерживал .net-обвязку вокруг этой либы и сильно заебался. Написал на расте grpc-сервис, который внутре дёргал методы либы и наружу выставлял в виде удобного АПИ. Благодаря send/sync/!send/!sync удалось избежать большинства проблем с многопоточностью, copy/clone и лайфтаймы избавили от основного головняка с памятью. Ну и это добро уже запускалось в linux под wine - можно было легко докеризовать. В моей команде сначала сильно сопротивлялись, но т.к. более хорошего способа затащить проект в кубер не было, рискнули. Когда я увольнялся чтоб не попасть на утренник, сервисом уже пользовались джависты и питонисты, а гошники собирались переезжать.

После увольнения прошел несколько собесов на растовакансии и получил пару офферов (один тоже в трединговую контору, но не блокчейн, второй вообще не связан с трейдингом). Но принял оффер на позицию на старом стеке пушо на $2k/mo больше денег
316 2568953
>>568801

> Ну и это добро уже запускалось в linux под wine - можно было легко докеризовать


Вы там ебанутые были? Пиздец
317 2569016
>>568953

> Вы там ебанутые были? Пиздец


Ага, мне тимлид сначала то же самое сказал.
Зато потом "переезд в кубер" оказался у него (и у многих других тимлидов) в KPI, плюсовики оценили добавление кроссплатформенности в либу в почти год (пушо там ехал mfc через atl на winapi) и не осилили winelib, а нагрузочное тестирование в пару месяцев показало, что в wine оно по стабильности сравнимо с дотнетной обёрткой на винде, и при этом быстрее и удобнее.
О май.gif1,3 Мб, 255x244
318 2569239
>>568801

>Ну и это добро уже запускалось в linux под wine - можно было легко докеризовать.

319 2569817
>>568801

> (dll + пачка .hpp файлов)


че прям даже без исходников?
320 2569851
>>569817
Без исходников. Если хорошо попросить (приложить логи, крашдампы, развернутое описание проблемы и кого-то из боссов в копию) - могли выслать .pdb с отладочными символами. Исходники вообще никому на моей памяти не давали. Хотя толку от них - помимо своей работы еще и ебаться с чужим говнокодом.
321 2571110
>>565415

>> Сидел в неформальном раст-чятике в телеге


ссылку на чатик можешь скинуть?
322 2571120
Имеет смысл начинать изучение раста с этого? https://google.github.io/comprehensive-rust/running-the-course/keyboard-shortcuts.html
Веб макакапомидор, сидящая на тайпскрипте и ангуляре/реакте. В прошлом неплохой опыт шарпа, немного ноды и самообучения си с дрочем на системное. Не люблю много читать, предпочитаю выжимку с примерами.
Цель - потестить концепцию боров-овнершип, миксины, да и в целом ооп заебал. Так же написать что то для терминала, тк tui понравился.
Стикер480 Кб, 200x200
323 2571122
>>571120
Просто берёшь и начинаешь, хоть с чего.
324 2571262
Пацаны, там в расте снова дырку нашли!!!!
325 2571292
>>571262
ну так чего же ты сидишь? показывай!
326 2571358
Нужно написать простенькую обобщенную функцию, которая нормально работает со всеми стандартными беззнаковыми типами.
Работа подразумевает сдвиг влево, побитовое "и" и сравнение с нулём.
Как?
327 2571395
>>571358
ну самый простой способ делаешь для функции входной параметр реализующий трейт UnsignedNumber
А потом 10 строчек:
impl UnsignedNumber for u8 {} и тд

мбы в стд уже есть такой трейт
328 2571412
>>571395
Уже сделал как-то вот так https://pastebin.com/szL11Wc3
Так и должен выглядеть чистый код на Расте?
Чяднт, исправьте, пожалуйста
изображение.png197 Кб, 1903x995
329 2571786
330 2571811
>>571358
А зачем пишешь ты пишешь as u8, если тип и так слева указан? Ещё, что значит Output = T? В Растбуке ничего не нашёл про это.

Ну и на 14 строке можно оператор сдвига укоротить.
331 2571904
>>571811

> А зачем пишешь ты пишешь as u8, если тип и так слева указан


Подумал, что без этого не будет работать и что нужно явное приведение

> Ещё, что значит Output = T


В std::ops::Shl::<Output = T> то, что результатом

let x: T = ...
let y: T = ...
x << y

будет значение типа T.
Не знаю, я сам растбук почти не читал. Он как-то душно написан, всё желание зубрить его пропадает.
332 2571920
>>571904

> Подумал, что без этого не будет работать и что нужно явное приведение


Так и есть, это же сужающее преобразование. На первом пике показано, как, наверное, будет лучше.

> Ну и на 14 строке можно оператор сдвига укоротить.


Не знаю, какое укорочение ты имел в виду, но то, которое попробовал сделать я, не получилось (пик 2).
333 2571937
>>490347 (OP)

>Rust — невероятно быстрый язык для


того чтобы быстро кануть в аналы истории, поближе к лиспу
очередная хуета хочет "нагнуть" ВЕЛИКИЙ Си и МОГУЧИЙ Си++
удачи, епта...
334 2572004
>>571937
Кто о чем, а программист на C++ про аналы.
335 2572066
>>572004

>про аналы.


истории, озабоч
336 2572068
>>572066
У истории анналы.
337 2572216
>>572068
Молодец, садись, пять
338 2572377
>>572066
Анал — заднепроходное отверстие человека, то же, что анус.[источник?]
Анал — язык тибето-бирманской ветви сино-тибетской языковой семьи.
Анал. или аналит. — сокращение от аналитический, т.е. связанный с анализом (например, аналитическая геометрия)
339 2572484
>>572377

>Анал. или аналит. — сокращение от аналитический


те самые программисты анальники в треде.
у степановой стрим закончился шоль
340 2572554
где rust используется в блокчейне? что бы сам блокчейн сделать?
341 2573219
342 2573243
>>573219
пидо-растер, ты заебал пиздеть
343 2573261
блин, пиздец хочеться вкатиться в чё нить кондовое программерское, заебало формы шлепать. После с++ душевная травма. Я бы с радостью начал новую кодерскую жизнь с растом, но работы судя по всему немного и перекатиться непросто. Эх беда печаль.
344 2573270
>>573261

>После с++ душевная травма.



сходи к психологу
джава-пидоры степанову советуют
image.png67 Кб, 961x339
345 2573293
Что я только что прочитал?
346 2573298
>>573293
Отличный перевод
Что в оригинале написано?
347 2573299
>>573298
Rust’s memory safety guarantees make it difficult, but not impossible, to accidentally create memory that is never cleaned up (known as a memory leak). Preventing memory leaks entirely is not one of Rust’s guarantees, meaning memory leaks are memory safe in Rust. We can see that Rust allows memory leaks by using Rc<T> and RefCell<T>: it’s possible to create references where items refer to each other in a cycle. This creates memory leaks because the reference count of each item in the cycle will never reach 0, and the values will never be dropped.
348 2573301
>>573293
Что конкретно тебе непонятно? Опасны для памяти use-after-free и double-free, это ни та ни другая.
349 2573330
Объясните разницу между str и String.
Что такое вообще этот str? Какие значения принадлежат этому типу? Насколько я понял, даже литералы имеют тип &str.
350 2573378
>>573330
str - простой массив байт, ну т.е. просто набор буков, который ничем не управляет, для тупого JS-дауна: нельзя сложить str+str

string - объект
351 2573396
>>573378

> str - простой массив байт


То есть это что-то типа struct str(*const char, usize)?

> для тупого JS-дауна


Я из плюсов перекатываюсь и не понимаю некоторых деталей.

Кстати тут есть каст массива к указателю?
352 2573411
>>573396

>типа struct str(*const char, usize)?


ну и хуле это такое ты высрал , а плюсоперекатчик
353 2573413
>>573411
Структура хранящая адрес первого чара и их количество.
По-моему под определение "простой массив байт" весьма подходит.
354 2573420
>>573413
и где ты видел ты видел, шоб так структуры определялись
ты наверно имел в виду это:
struct
{
LPCTSTR lpszText;
unsigned int dwSz;
};

ну и нахуя тебе размер ?
355 2573426
>>573420

> и где ты видел ты видел, шоб так структуры определялись


В расте. Зачем мне писать в треде одного языка на другом языке?

> ну и нахуя тебе размер ?


А как ещё? Если где-то есть указатель на область памяти, где-то должен храниться её размер.
!katis.jpg102 Кб, 600x415
356 2573438
>>573426

>А как ещё?


катись обратно в бэйсик, пиздабол
да лан анончик, не обижайся, строка заканчивается 0 null-terminated, ее размер нигде не хранится и нахуй не нужен.
еслиб ты вкатывался из плюсов, ты бы это знал
image.png22 Кб, 1175x167
357 2573442
>>573438

> строка заканчивается 0 null-terminated, ее размер нигде не хранится и нахуй не нужен


В std::string плюсовом размер хранится, а null-terminated она только для совместимости в сишными строками.

> еслиб ты вкатывался из плюсов, ты бы это знал


Ещё я знаю, что есть pascal-style строки не уверен, что их кто-то так называет, просто запомнил, что паскаль этим и отличается от сей, в которых вообще нет 0 байта в конце, потому что размер хранится именно так, как я сказал.
Впрочем, стоило просто зайти на https://doc.rust-lang.org/std/primitive.str.html и убедиться в том, что я прав.

Вот зачем говорить что-то, если нихуя не знаешь, и строить из себя умника?
358 2573450
>>573442

>В std::string плюсовом размер хранится, а null-terminated она только


ну хранится, да..
но ведь это и не простой тип, а объект класса.
который может себе это позволить)

> есть pascal-style строки


были такие строки, на практике оказались нахуй не нужны.

>и убедиться в том, что я прав.


нихуя. в противном случае это будет уже не простой тип, а структура, причем несовместимая с системными вызовами, а раст это таки системный язык.
antirust.jpg347 Кб, 900x1200
359 2573458
Зачем у вас говноежек вызов функций сопровождается логическим оператором? Чтобы было максимально безопасно?

>println!("Sum is: {}", result1);

360 2573460
>>573450

> но ведь это и не простой тип, а объект класса


Сам понимаешь, что говоришь? Ну ладно, допустим, ты просто оговорился.

> были такие строки, на практике оказались нахуй не нужны.


Круто! Теперь внимательно читаешь первый пикрил. Rust by Example, если что. (Всё таки нужны, оказывается..?)

> нихуя


Я тебе уже официальную документацию принёс, а ты всё не веришь...

> причем несовместимая с системными вызовами


С какими системными вызовами? Как может быть структура данных совместима или не совместима с системными вызовами?
Ну вот в линуксе, например, есть системный вызов write, который нужен для записи данных в файл по номеру дескриптора. Туда можно вывести массив байт. Допустим, этот массив байт является строкой. И чёт не особо нужно, чтобы эта строка была null-terminated, ведь там есть параметр count, отвечающий за то, сколько байт будет выведено.
В WinAPI есть системный вызов WriteConsole, который предназначен для вывода строк в консоль, и ему тоже не нужны null-terminated строки, ведь он тоже имеет параметр count, да что ж такое?!

Может я просто жирный троллинг не понимаю?
361 2573481
>>573460

>Всё таки нужны, оказывается..?


в очередной раз подверждается, что раст это конченное дерьмо.

> вызов write, который нужен для записи данных в файл по номеру дескриптора


ты еблан или притворяешься ?
ты в файл ебашишь не строку, а буфер..
создай txt и любым редактором напиши туда "я еблан", открой его в HEX и поищи, где там размер указан.

тоже касается WriteConsole, там используется буфер, это идет еще с досовских времен, когда к текстовому буферу видеокарты можно было обратиться напрямую.

null terminated string используется при открытии файла, а не при записи в него.
ты с какой ветки слез, анончик.
362 2573484
>>573438
Ты чо несешь, поехавший
В расте слайсы это поинтер + размер

Си строки все в рот ебали
363 2573490
>>573330
Не слушай шиза выше, вот если кратко
https://stackoverflow.com/questions/24158114/what-are-the-differences-between-rusts-string-and-str

а вобще не советовал бы в этом треде что то спрашивать, тут околопоехавшие студентики и шизы деды
364 2573504
>>573484

>Си строки все в рот ебали


при этом в системных вызовах только эти строки и используются.
rust - это системный язык (с)

аахахаа пидо-растеры, не устану макать вас еблом в ваше же дерьмо
365 2573508
>>573458
добоеб, println принтит простою строку,
а println! - это т.н. выразительный принт, он принтит строку на красном фоне
366 2573512
>>573504
Зумерок, ты хоть раз сам эти системные вызовы делал ручками?
367 2573520
>>573512
eblo_skufa db "Скуфи, заметь, эта строка заканчивается 0",0
title db "Возим пидо-растеров носом по их калу."
push 0x40
push offset title
push offset eblo_skufa
push 0
call MessageBox
.jpg173 Кб, 1246x919
368 2573524
>>573481

> создай txt и любым редактором напиши туда "я еблан", открой его в HEX и поищи, где там размер указан.


То есть ты хочешь сказать, что размер файла нигде не хранится?

> null terminated string используется при открытии файла, а не при записи в него.


Ладно, с этим небольшой обсёр. Во всяком случае, для этого есть отдельные типы CString и CStr.

>>573484

> при этом в системных вызовах только эти строки и используются.


Потому что основные ОСи были написаны во времена динозавров и теперь нельзя ничего менять, потому что всё сломается?
Просто напоминаю, что если тебе в какой-то момент понадобится размер строки, тебе придётся пройтись по ней от начала до конца в поисках 0 байта. Причём не факт, что он там будет.
369 2573545
>>573524

>размер файла нигде не хранится?


причем здесь размер файла, мы про буфер говорили, который используется в системном вызове, для записи в этот файл.

>для этого есть отдельные типы CString и CStr.


ну т.е. костыли, которые друг к другу еще кастить надо, с аллокацией памяти и копированием..

>Потому что основные ОСи были написаны во времена динозавров


в том числе и поэтому, но так то ее еще выравнивать придется, по границе слова, короче дохуя памяти и гемора, а выигрыш околонулевой.

>в какой-то момент понадобится размер строки


это не такая частая операция и на самом деле не такая дорогая, ибо строки, как правило, очень короткие.
для длинных строк никто не запрещает использовать std::string
да можешь хоть свой класс сделать, что мешает та
370 2573621
>>573545

> причем здесь размер файла, мы про буфер говорили, который используется в системном вызове, для записи в этот файл.


> создай txt и любым редактором напиши туда "я еблан", открой его в HEX и поищи, где там размер указан.


Может ты просто сам не понимаешь, что хочешь сказать?

> в том числе и поэтому, но так то ее еще выравнивать придется, по границе слова, короче дохуя памяти и гемора, а выигрыш околонулевой.


Ты же дегенерат и хуйню какую-то несёшь.

> это не такая частая операция и на самом деле не такая дорогая


Я тебя понял.

> Рррряяяяя хранить размер строки дорого ррррррряяяяяяя


> Пук срёньк находить размер строки O(n) норм

371 2573983
>>573330

>Что такое вообще этот str? Какие значения принадлежат этому типу? Насколько я понял, даже литералы имеют тип &str.


Сами литералы имеют тип str, но ты нигде не оперируешь самими литералами, а только ссылками на них.
372 2574019
>>573330
String это структура фиксированного размера, смарт пойнтер на str, массив символов произвольного размера. Литералы никогда не владеют символами на которые ссылаются, к примеру они не могут дропнуть эту область памяти, поэтому там всегда &str.

Выражаясь иначе, String это единица аллокации, &str это указатель на слайс, подстрока внутри произвольного String. У каждого String может быть сколько угодно &str, но не наоборот.
373 2574021
>>573458
Явное обозначение макроса. Нравки ебаться с внезапными define?
374 2574125
>>573330
String - это аналог std::string, &str - это аналог std::string_view (+гарантия валидного UTF-8). Конкретно тип str - это некий костыль d в виде безразмерного объекта, который позволяет в одном и том же типе Box хранить и единичный объект Box<Foo>, и массив Box<[Foo]> и строковый слайс Box<str> не городя ересь наподобие ArrayBox и StrBox.
375 2574303
>>574125
String - это вектор вида Vec<u8> гарантирующий валидную UTF-8 последовательность и не null-terminated.
376 2574447
Почему std::cmp::Eq не unsafe?
377 2574453
>>574447
Почему он должен быть unsafe? Вполне тривиально для большинства типов реализуется с помощью safe методов.
378 2574456
>>574453
Насколько я понял, для его реализации нужно просто реализовать PartialEq, но при этом мы должны гарантировать то, что будет выполняться рефлексивность, симметричность и транзитивность, которые не могут провериться компилятором.
Разве не для этого unsafe нужен?
379 2574501
>>574456
Нет. unsafe ограждает код, потенциально ломающий аллокации в памяти и потенциально содержащий undefined behaviour, таким образом, что какой бы ты safe код поверх него ни написал, ты не сломаешь аллокации и не вызовешь UB. Это не гарантия корректности кода, которую ты должен проверять тестированием.
Стикер127 Кб, 512x382
380 2577039
Почти вся статья о том как борроу-чекер уничтожает продуктивность, особенно в прототипировании, и делает рефакторинг отдельной болью, так как mut везде протекает через абстракции.
https://verdagon.dev/blog/when-to-use-memory-safe-part-2
381 2577130
>>577039

>Почти вся статья о том как борроу-чекер уничтожает продуктивность


У неосиляторов. Первое время может быть да, но сейчас уже год с растом работаю и редко когда вижу что компилятор посылает меня нахуй.

>особенно в прототипировании


Для таких целей любой язык со строгой типизацией будет не быстрым, если не знаешь что будет в конце бери js или петухон и играйся сколько влезет.

>делает рефакторинг отдельной болью


Наоборот cargo clippy и покажет тебе все где ты накосячил, рефакторить в разы удобнее чем в других языках.

> mut везде протекает через абстракции


Лол нахуй так писать. Придут со своих джавашарпов и каждая вторая переменная мутабельная.
382 2577229
Нашёл в исходниках одной либы конструкцию as ⚹const _
Что оно значит?
383 2577415
>>577229
Каст к константному указателю того же типа. `_` - это wildcard, который можно использовать везде, где компилятор может самостоятельно вывести тип.
384 2578954
>>490347 (OP)
Допустим я пишу свой век
Могу я при переполнении переносить данные просто memmove? Не надо же каждую структуру в цикле присваивать?

просто в плюсах такое UB вроде, вот хзы как в расте
385 2579432
>>578954
Можешь копировать. Присваивание неинициализированной памяти - наоборот UB.
386 2579789
Можешь. В расте присваивание не оверлоадится и эффект всегда соответствует memmove (memcpy в случае с Copy типами, но нас тут это не интересует).
387 2580012
где могут пояснить за ownership? и тд.
в доках непонятно написано, чувствую что можно легче объяснить
388 2580107
>>580012

>чувствую что можно легче объяснить


Объясни, тогда.
389 2580115
>>580107
когда мне объяснят, я с удовольствием и тебе поясню
390 2580258
>>580012
Представь, что каждая переменная защищена мютексом или RWLock'ом. Перед тем как изменить значение переменной ты обязан как бы захватить мьютекс, ты это делаешь через &mut. Это - mutable borrow. Он может быть только один, потому что иначе невозможно поддерживать некоторые инварианты. Если тебе нужно только прочитать значение, тебе достаточно захватить read-lock, ты это делаешь через &. Это обычный borrow, их может быть сколько угодно одновременно.

Отличие борроу-чекера от настоящих мьютексов в том, что он работает на этапе компиляции и там, где были бы гонки и дедлоки происходит просто ошибка компиляции.
391 2580318
Почему все говорят, что mut - это про мутабельность? Это же нихуя не так. Посмотрите на методы того же атомика - store принимает &self, а не &mut self. mut - это скорее про уникальность ссылки, из которой вытекает возможность модифицировать её состояние, но модифицировать состояние можно так же и у обычных шареных ссылок, как в примере с атомиком.
Вы че, ебанутые? Назвали бы тогда не mut, а unique, или если по растерски, то uniq. А аналога const из C++ у вас совсем нету, получается. Я только начинаю перекатываться, но некоторые вещи мне не нравятся прям пиздец как сильно. Пока что от дропа меня отделяет только либа wgpu, которая, конечно, есть и для плюсов, но выглядит она на них как кал. Надеюсь что наитие меня ещё настигнет, но пока от вашего языка я в основном плююсь. Хотя есть и очень много положительных моментов, но я их перечислять не буду, вы их и так все уже знаете.
392 2580379
>>580318

>Посмотрите на методы того же атомика - store принимает &self


Ты где-то не то прочитал.
393 2580380
>>580318

> А аналога const из C++ у вас совсем нету


Что мешает мне сделать аналог атомика в плюсах, который будет иметь не константный метод store?
Или а чем это не аналог?
394 2580382
>>580379
Всё правильно. Просто нах атомики иначе нужны, если их по мут ссылке передавать?
395 2580415
>>580318

>Посмотрите на методы того же атомика - store принимает &self, а не &mut self



Это interior mutability, которая нужна чуть чаще, чем mutable в плюсах, то есть мы лезем в залупу, то есть для примитивного изложения это лучше опустить.
396 2580910
>>580318
Пришлось бы объяснять что за такая уникальная ссылка и зачем и как, а с mut и волки сыты, и овцы целы.
397 2582864
>>566472

> Есть ли язык лучше?



Lisp.
398 2583255
>>580012
Если прямо переводить, то это владение. Некий блок кода владеет объектом в переменной. При завершении этого блока нужно удалить объект, в том числе почистить все ассоциированные ресурсы (память, файлы, сокеты, итд).

По умолчанию когда ты вызываешь функцию без всяких &, ты передаёшь владение объектом, теперь это её, функции, головная боль вовремя удалить объект.

Не отдавая владение объектом его можно одолжить (borrow). >>580258 вот тут нормально расписано как это работает.

Дальше идут нюансы, всякие трейты Copy, Clone, Drop, они насыщают этот механизм разнообразием поведений. К примеру трейт Copy позволяет каждый раз клонировать объект вместо передачи владения.
399 2583303
>>580318
Mut это ещё гарантия единственной ссылки. Атомики нужны чтобы иметь много ссылок. Поэтому здесь немного упорото. В доках говорят что это копия atomic_ref из C++, оно и там тоже прикидывается что объект не меняется void store( ... ) const noexcept;
400 2583699
>>583303
Множественное владение же только через аналог shared_ptr делается. Атомики это про модель памяти и гарантии синхронизации между тредами
401 2583745
>>583699
Речь не о множественном владении, которое Rc<T> или shared_ptr, а о ссылках. Для любой синхронизации нужно больше одной ссылки, между же тредами, не будешь же синхронизироваться сам с собой.
402 2583869
Можно ли учить раст как первый язык? Ну в плане хватит ли инфы для понимания человеку, который лишь косвенно связан с айти? Понятное дело я не говорю ни про какую там работу, меня моя работа вполне устраивает, просто мне вкатывает концепция низкоуровневых языков
403 2583896
>>583869
Лучше не надо, будет всё казаться лишним и переусложнённым ПРОСТО ТАК, потому что нет никакого понимания, с какими ситуациями данные решения призваны бороться.
404 2583964
>>583869
Как первый я бы не рекомендовал слишком сложно будет
405 2584395
>>580318

>mut - это скорее про уникальность ссылки


Да, ты прав. Да, многие глубоко заползшие растеры согласны, что uniq был бы лучше. Но оно уже сделано как сделано, и мы просто привыкли что &uniq ссылки у нас называются &mut. Язык слишком хорош, чтобы его дропать из-за такой мелкой фигни.

Ну и при объявлении переменной "mut" всё же про мутабельность, так что не везде "mut" неправильно назван:

let mut a = 0;
406 2584401
>>583869
Не рекомендуется, но можно. Из минусов есть шанс получить неприязнь ко всем остальным языкам, потому что если ты первым языком учишь раст, при изучении следующего появляются мысли вроде такой: "бля, ну что за хуйня, вот в расте оно нормально сделано, а не через жопу".
407 2584912
>>583869
Для углублённого понятия существующих проблем в современной низкоуровневой разработке нужно начинать с си.да и чуть ли не все современные языки в топ10 с си-подобным синтаксисом, это как плюс Только после ебли с сишкой можно переходить на раст и начинать вникать в то, что он предлагает и зачем. А там и понимание придёт и скилуха.

Ну или как советует этот анон >>584401
408 2584925
>>583896
А вдруг это только бывалым сложно и непривычно? Справляются же как-то спецы по БД с shared lock/exclusive lock.
409 2584926
>>584912
Можно ещё с zig вместо си. Это как си, только более явный и читаемый.
410 2584958
>>577130

> Придут со своих джавашарпов


Ну этот чел не такой простой как кажется. Он там свой язык напилил, Vale, с какими-то арена-аллокациями, я не до конца понял, но якобы аллокация происходит один раз для целого блока кода и отпадает необходимость следить за каждым объектом через всякие RC/GC. И его эти эссе об управлении памятью это попытка разобраться что уже придумано и где оно сосёт.
411 2587946
Пацаны, там Бьярн Трупстрауса руст раскритиковал!!!1
412 2588291
>>584958
Про арены можешь подробнее почитать в пейперах про regionml, 90-ые годы (впрочем как и clean, в котором были реализованы линейные типы ("борроу-чекер" по-местному))

мимо
413 2588340
>>587946
где
414 2588619
>>588340
Когда создавал лучший язык.
416 2591330
Когда запускаю rust-lldb, то выдаёт

error: toolchain 'stable-x86_64-pc-windows-gnu' does not contain component 'rust-lldb' for target 'x86_64-pc-windows-gnu'; did you mean 'rust-std'?

Как фиксить? lldb установлен
417 2591478
>>591330

> Как фиксить?


Ставить ОС пригодную для разработки
https://github.com/rust-lang/rustup/issues/2838
image.png13,8 Мб, 4800x3886
418 2592931
теперь и у нас есть растотянучка
419 2593023
>>592931
ужасно.
420 2593489
>>592931
Отвратительно
421 2593575
>>592931
ролль ещё эту нейронку
и чтоб нв=а этот раз пупок голый был!
422 2594099
https://github.com/fish-shell/fish-shell/pull/9512
Один из двух активных контрибуторов fish shell свихнулся и решил всё переписать на расте. Второй чел охуел, говорит что не знает раст, что дистроделы будут яросте, много кому сломает процесс сборки.
423 2594180
>>594099
Чо не форкануть просто
424 2594181
>>594099
Господи спасибо что я пользуюсь zsh, где в мейнтейнерах нет соевого дурачка с растошизой. Ну а fish можно помянуть, скоро разделится на два полудохлых форка.
425 2595147
>>593023
>>593489
LGBTQHTTPCSS пидоры спок
426 2595258
>>593575
ты, наверное, имел в виду не пупок, а soudness hole?
427 2595259
>>595258
*soundness
428 2596182
>>594099
Второй контриб много чего пояснил потом. Говорит что на самом деле для них это решение не было шоком. И что тот самый ridiculousfish, который сейчас начал толкать раст, на самом деле когда-то вытащил проект из забвения, и переписал его с си на си++.

https://github.com/fish-shell/fish-shell/pull/9512#issuecomment-1410820102

Можно успокоиться и отставить истерику.
429 2596230
>>490347 (OP)
С чего начать вкат в системное программирование, если я бэкэнд макака?
Что то про ОСи почитать может, или вообще про железки?
430 2596290
>>596230
Для начала запомни, что любая из книг Танненбаума - это говно из жопы. Очень много воды и совершенно нет полезной информации.

Если совсем не знаешь, как работает компьютер, можешь прочитать книгу «Код» Чарльза Петцольда. Она не серьезная, но в общих чертах описывает то, как работает типичная числодробилка. Если хочешь сразу серьезное - есть замечательная книга Харрис&Харрис. Если нужно что-то между, есть «Nand to tetris»

Далее читаешь книгу «OS 0 to 1». Перед ней лучше выучить Си, но это не сложно, ибо Си простой как палка.

Потом читаешь документацию интересующей операционной системы.
431 2597329
>>596290
Спасибо, полистал "Код" и книгу Харрисов, решил на последнем остановиться. Код какой то слишком банальный.
Танненбаума еще в шараге по сетям читал и половину не выкупал, лол.
Алсо, есть какая нибудь литература про Си, где походу книги делаешь что то свое? Типа как в SICP интерпретатор на лиспе, или как движок на крестах, только на си?
432 2600229
Привет ржавым. Что думаете на счёт будущего для Rust? В своё время сделал ставку на Го и теперь ближайшие лет пять, можно будет лутать нихуёвые деньги с буржуев, решая задачки которые были отобраны у питонистов. А Раст что?

В последнее время начали его пихать везде. И круды вроде как стало легче пилить, а за счёт бороу чекера можно будет всю эту байду крутить в облаке за копейки.

Планирую, всё же окончательно, перекатиться в Раст, годиков так через пять. Когда волна хайпа поднимется уже среди кабанчиков.

Какие подводные?
433 2600545
>>600229
Раст это для души, это если ты больной на голову перфекционист, которому нужна максимальная производительность выполнения за счёт человеческой продуктивности. Лутай бабос дальше на го и не парься. Некоторые даже на пхп продолжают лутать.
434 2603871
возможно ли на расте делать десктоп приложения?
435 2603899
>>603871
возможно
image.png2,4 Мб, 3072x2048
436 2603973
>>603899
Мне нужно сделать приложение, которое будет принимать сигналы с измерительной хуеты (пример на пикриле) и обрабатывать в нужной мне математической форме. В институте уже есть программа какая-то древняя, которая может ловить сигнал. Но она работает на 98-ой винде, хотелось бы что-то своё да посвежее (на жму/пинус, макос, винде).
Вопрос в том, как мне получать такие же сигналы как в той программе? Придётся драйверы заново писать для интерфейса?

бакалавр заборостроительного, третий курс
437 2604048
>>603871
лучше сделай на tui-rs
Нахуй тебе десктоп братик)
438 2604050
>>603973

>Мне нужно сделать приложение, которое будет принимать сигналы с измерительной хуеты



Руководство по эксплуатации от хуеты в студию или иди на хуй.
439 2604054
>>603973

>Вопрос в том, как мне получать такие же сигналы как в той программе? Придётся драйверы заново писать для интерфейса?


>



Поищи ради прикола драйвер и API для современной винды, но там скорее всего какая-то проприетарная платка для PCI, которую тебе никто не даст. Если USB, то можно попробовать отреверсить пакеты, но нужно очень так глубоко лезть в протокол.
440 2604058
>>603973
https://www.hackster.io/news/read-data-from-an-old-agilent-54621a-oscilloscope-via-rs232-port-e6a453053fc2

Все уже написано до тебя, тупой идиот, не умеющий пользоваться гуглом.

Но ты еще и настолько тупой идиот, что не сможешь скачать и скомпилировать готовый проект, да, идиот?
441 2604062
>>604054

>Поищи ради прикола драйвер и API для современной винды



О, еще один тупой прикольный идиот.
У вас тут гнездо, идиоты?
442 2604066
>>604062

>О, еще один тупой прикольный идиот.


>У вас тут гнездо, идиоты?



Ну нет у меня привычки рассматривать шакальные фотографии, что же теперь. :3
изображение.png367 Кб, 644x950
443 2604068
>>604066

>Ну нет у меня привычки рассматривать шакальные фотографии, что же теперь.



Тогда вырабатывай в скебе привычку сосать хуй.
444 2604108
>>604068
Как же хочется няшный осциллограф...
2633644[1].gif2 Кб, 106x106
446 2604122
дяди растеры, объясните мне, маленькому ламеру, как добавить библиотеку io, кучу библиотек добавил, а эту херю не могу(((((
447 2604124
>>604122
терминал warning высирает и всё(
448 2604234
https://github.blog/2023-02-06-the-technology-behind-githubs-new-code-search/

Поисковый движок на расте написан :)
449 2605738
>>604122
Ошибку в студию, пожалуйста, все телепаты в отпуске.
450 2609966
узнал, что в окамле есть алгебраические эффекты. почитал чуть про них в пейперах кока (язык такой). https://www.microsoft.com/en-us/research/publication/algebraic-effects-for-functional-programming/ тут примеры есть, где показывают, что можно так запилить асинк, итераторы, исключения, парсеры и тд. добавление асинков в раст до сих пор считается эпичным фейлом, думаю, что можно было добавить эффекты, тем более управление эффектами подходит по функциональную сущность раста. Что думаете?
Эффекты, кстати, уже есть и в мейнстримных языках типа хаскелля и окамля. есть ещё язык тоже майковский: F с зав типами и эффектами, и его сабсет low для низкого уровня. язык имеет встроенный солвер z3
451 2610001
>>609966
f star и low star
f low
452 2610343
Хочу написать на расте бэк для своего мобильного приложения?

Что-то заинтересовался этим языком.
Подводные?
453 2610401
>>610343
Оверкил скорее всего, но если интересно, то почему бы и нет.
454 2610433
>>609966
Характеристики ЯП — это многомерное пространство, и каждый занимает там некоторую нишу. Всякие зав типы и эффекты — это прекрасно, но это только одна из координат в этом многомерном пространстве, эдакая бескомпромиссная переиспользуемость кода. Есть ещё производительность выполнения, ментальная нагрузка разработчика. Последнюю можно разделить на множество независимых координат: лёгкость чтения, написания, поиска, предсказуемость, помощь утилит, доступность утилит и библиотек под каждую область, длина цикла модификация/запуск, итд.

Дальше берётся некоторая потребность. Наговнякать сайт по-быстрому, написать верифицированный код для медицинского устройства, создать игру без тормозов/с красивой графикой/для лоу-энд устройств, итд. Каждая из этих потребностей задаёт ограничения на выше обозначенном многомерном пространстве, и оптимальный выбор языка становится задачей выбора из 2-3 кандидатов, а то и меньше. И вот алгебраическими эффектами в таком выборе жертвовать легче всего. И без них всё делается достаточно качественно и быстро.
455 2610509
>>610343
Если ты уже писал беки на чём-то - тебя ждут мелкие неприятные сюрпризы с экосистемой. То, что для джавашарпов и гопитонов есть в виде зрелых либ/фреймворков (и обычно с несколькими тоже вполне зрелыми альтернативами), в расте может быть в версии 0.1.1 и заброшено в 2020 году. Я имею в виду веб-фреймворк с какой-то аутентификацией и мидлварями, БД+ORM, очереди, кеш, логи+метрики+трейсы, всякие прочие примочки вроде сваггеров/удобных интеграционных тестов/etc.
Для обычного крудобэка кода будет немного больше, чем на "популярных" стеках, но ничего смертельного. Всё сильно усложнится, если захочешь выжать из своего поделия какой-нибудь особой производительности.

Если беки ни на чём не писал - лучше выбери или другой стек, или задачку попроще, вот честно.

расто-неофит из >>568801
456 2613194
https://mmapped.blog/posts/15-when-rust-hurts.html
Когда раст делает больно. Борроучекер не даёт легко объединять повторения в коде.
457 2614289
>>610343
насколько я знаю раст для бэка используют вот прям в очень байтоёбских задачах, когда кабанчик мечтает о 100% аптайме и готов за это платить (те же банки)
458 2614668
>>613194
Ты сам читал что принес?
Очередной высер неосилятора джаваскриптизера который не разобрался.

let s = "a very long string".to_string();
let x = f(s);
let y = g(s);

Это на первых страницах растбука расжёвано, когда передали s в вызове f, то теперь мы дальше не владеем это переменной, если хочешь владеть пользуйся ссылкой.

let f = MyType::from;
let x = f(b"bytes");
let y = f("string");

Потому что добавление b превращает строку в байты, вот пример:
assert_eq!(b"bytes", "bytes".as_bytes());
Будет равно, это просто синтаксический сахар который вызывает метод as_bytes. Теперь объявленная f при компиляции после первого выражения принимает тип fn(&[u8]) -> MyType и в следующем вызове ждет байты, но ему дают строку. Опять же воспользовался синтаксическим сахаром который позволяет не указывать типы, если бы указал типы при объявлении переменной или пользовался ide не обосрался бы. Раст очень строго подходит к типам, ты даже u8 и u16 не сложишь без явного приведения к одному типу, именно поэтому не дает передать строку без явного приведения к вектору u8. И сам же ниже заметил нужно подружиться с дженериками тогда и будет счастье.


self.state = match self.state {
Ping(s) => { self.inc(); Pong(s) } // ← compile error
Pong(s) => { self.inc(); Ping(s) } // ← compile error
}


Как бы если у enum записывать в self.x не скомпилируется ))) я попытался залезть в голову автору воспроизвел это https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=ee3a36d7d30fd732957854dbf81dfbf5
И оно работает, бывает иногда проблемы с мутабельностью и бороу чекером, но они у меня перестали возникать через месяц-два после написания на расте, спустя год такое возникает вообще редко.

Дальше не читал, уноси
458 2614668
>>613194
Ты сам читал что принес?
Очередной высер неосилятора джаваскриптизера который не разобрался.

let s = "a very long string".to_string();
let x = f(s);
let y = g(s);

Это на первых страницах растбука расжёвано, когда передали s в вызове f, то теперь мы дальше не владеем это переменной, если хочешь владеть пользуйся ссылкой.

let f = MyType::from;
let x = f(b"bytes");
let y = f("string");

Потому что добавление b превращает строку в байты, вот пример:
assert_eq!(b"bytes", "bytes".as_bytes());
Будет равно, это просто синтаксический сахар который вызывает метод as_bytes. Теперь объявленная f при компиляции после первого выражения принимает тип fn(&[u8]) -> MyType и в следующем вызове ждет байты, но ему дают строку. Опять же воспользовался синтаксическим сахаром который позволяет не указывать типы, если бы указал типы при объявлении переменной или пользовался ide не обосрался бы. Раст очень строго подходит к типам, ты даже u8 и u16 не сложишь без явного приведения к одному типу, именно поэтому не дает передать строку без явного приведения к вектору u8. И сам же ниже заметил нужно подружиться с дженериками тогда и будет счастье.


self.state = match self.state {
Ping(s) => { self.inc(); Pong(s) } // ← compile error
Pong(s) => { self.inc(); Ping(s) } // ← compile error
}


Как бы если у enum записывать в self.x не скомпилируется ))) я попытался залезть в голову автору воспроизвел это https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=ee3a36d7d30fd732957854dbf81dfbf5
И оно работает, бывает иногда проблемы с мутабельностью и бороу чекером, но они у меня перестали возникать через месяц-два после написания на расте, спустя год такое возникает вообще редко.

Дальше не читал, уноси
459 2616626
>>614668

> неосилятор


> джаваскрипт макаки


> дальшенечитал


> в мануале всё разжёвано


> врёти у меня всё нормально через два месяца



Бинго за один пост! Как тебе это удаётся?
460 2616913
>>616626
да не трясись ты
Стикер63 Кб, 200x200
461 2616994
>>616626

>Как тебе это удаётся?


Не знаю, они сами в тред приходят и такие статьи пишут, тут полное бинго тупости в статье. Нахуя ты сам такое бинго в тред приносишь?
462 2617310
Зачем вкатуну раст? Он применяется много где, но одновременно и нигде. И вакансий нет никаких
463 2617339
>>617310
Раст нужен энтузиастам борщехлебам
464 2617356
>>616994
Просто ты токсичная чмоня и извергаешь яды по любому поводу. Человек-валидатор, которого всю жизнь за каждую пробу и ошибку ебали как сидорову козу.
Стикер512x512
465 2617449
>>617356
Иди поплачь, еще в спортлото жалобу подай на меня. Если для тебя называние говном статьи состоящей на 99% из говна извергнание ядом, то я не знаю как ты живешь со столь утонченной натурой
466 2617450
>>617310
Вкатунам не нужен, сюда обычно с опытом приходят
467 2617459
>>617450
Почему не нужен? Раст это же замена си, то есть базового языка для обучения и вката.
468 2617489
>>617459
Потому что для вкатунов там много "лишнего" от лайфтаймов, до бороучекера, плюс еще различный синтаксический сахар, иммутабельность и прочие штуки. Чтобы эти штуки понимать нужно хоть немного иметь коммерческого опыта. Человеку которому пару дней назад объяснили что переменная это коробочка в которую положили записочку мягко говоря будет сложно понять некоторые вещи. Но для тех кто любит трудности это наверное самый раз
469 2617516
>>617459

> с


> базовый язык для вката


Ебала аналитиков данных, тестеровщиков и фронтендеров представили?
470 2617679
>>617459
Нет, замена си это Zig. А раст это замена C++. Для обучения и вката достаточно Go.
471 2619147
>>617679
Два чая. Это база
472 2621090
>>490347 (OP)
Первые пару дней я был под впечатлением от раста.

Сегодня я сдался, мне каждый раз нужно лезть в гугл и ублажнять ебучий компилятор бороу чекингом и мув семантикой?

Да, в этом есть плюсы, но это лоу лвл программы, стабильные, которые будут поддерживаться лет 10 и компания будет инвестировать.

Для пет проектов. и прочего это говно нахуй не сдалось. Я каждый день сижу надрачиваю компилятору вместо того чтобы концентрироваться на более высокоуровневых вещах. Подумайте дважды, чем шагать сюда.

Да, можно выебываться перед коллегами словечками мономорфизация или мув семантика, ток это нахуй никому не надо.

Пойду писать свои проекты на питоне\го.
473 2621180
>>490347 (OP)
Что выбрать для вката в микроконтроллеры?
Прошивать программатором ничего не хочу, хочу прошивать через USB и одну команду.

Достаточно ли дешёвого набор Arduino UNO SMD и датчиков, чтобы осуществить любые хотелки?
image.png274 Кб, 1059x600
474 2621567
>>490347 (OP)
Подскажите что за плагин, который пишет ошибку сразу в строчке с кодом?
475 2621676
>>621090
Лошара, для петпроектов есть кложур\хаскель. А раст - это низкоуровневый язык, да.
476 2621709
>>621567
я flycheck пользуюсь, но это в другом текстовом редакторе
477 2621866
>>621090
Ну вон выше говорят что после двух месяцев совсем не пахнет и можно писать так же продуктивно.
image.png104 Кб, 806x484
478 2622172
>>621709
Нашёл. Это Error lens, охуенный плагин.
479 2622516
Как только появится прод-готовый аналог laravel, django, rails, spring, nestjs на Rust, пизда вам, бекенды ебаные. Будут сметать всех, кто владеет базовым синтаксисом.
480 2622534
>>622516
Эх если бы
481 2622560
>>621866
Да да да, расскажешь . Продуктивно. Раст нахуй никому не уперся.

>>621676
Дадада, конечно. Кложур\хаскель\ерланг и прочая поебень - полная параша. Петроекты на то и петпроекты, что нужно сделать быстро и запустить попробовать.

Ебаться с ебанутыми парадигмами, как бы они не были хороши - нахуй не надо. У тебя есть время дрочить хуйню которая не принесет бабла? Дрочи

Мое время ценнее, нежели дрочить хаскель, Я за пару часов на го наклепал то, что сделал за пару дней на расте, это пиздец.

И мало того, что го лучше своим стд, на расте тебе придется обойти пару либ чтобы выбрать что то, а потом еще углубится в них и посмортеть что как работает, а потом ублажнить компилятор. Я хуею нахуй, язык для дрочеров, просто пиздец.

Я все сказал. Ушел.
482 2622562
>>622560
>>621090
Сколько языков уже сменио, неосилятор?
483 2622618
>>622560
до завтра!
484 2622621
>>622560

> Раст нахуй никому не уперся


Это уже какая-то другая крайность. Упёрся, очень даже. Писать на нём дороже, но выжимать производительность и не отращивать десятый мозг чтобы предвидеть ub/баги с памятью — вполне годно. Геймдев, высокопроизводительные сервера (чаты, очереди, там где стейт не снаружи в бд, а в самом сервере), критичные userspace утилиты. Зависит короче какие у тебя там петы. У меня вполне успешный опыт написания пета на питоне, а потом переписывания на расте. То что считалось потенциально несколько недель, посчиталось за день.
485 2622717
>>622516
Все что ты написал это хуяк хуяк и в продакшн сайт запилить, НО для этого нужны высокие абстракции без ебли с низкоуровневой залупой, которую раст предоставить не может. Если бы раст действительно занимал эту нишу, то на него бы давно переписали все микросервисы для которых таких фреймворков и не надо, но ничего такого нет и в помине.
486 2622764
>>622621

> успешный опыт написания пета на питоне, а потом переписывания на расте


О, не хочешь portage переписать?
487 2622826
>>622764
Не, я даже на питоне в него изменения внести не смог, очень уж сложный. Ну и я немного переболел гентой и на убунту укатился.
2023-02-2600-01.png438 Кб, 482x697
488 2622959
Решил себе написать аналог OpenHardwareMonitor под Linux, взялся за rust + gtk-rs, для тех кто не в курсе, у glib/gtk своя система управления памятью и ооп, и оно просто нормально не налазит на rust, в gtk-rs базовые типы, классы еще облагородили, и то полно уродства, а если что то свое делаешь, то быстро понимаешь что с++ это настоящая база. В итоге сделал rm -r и написал за пару часов себе виджет на нормальном языке, который не становится препятствием если использовать неправильные библиотеки.

Ну и вишенкой переизобретение классов в отдельной взятой библиотеке, на макросах, https://gtk-rs.org/gtk4-rs/stable/latest/book/g_object_subclassing.html
489 2623063
>>622959
Соглы гтк это сишный пиздец
ну и скока жрёт твой монитор?
490 2623082
Хуя неосиляторы в треде.
На Rust'е писать в разы проще, чем на голанге или плюсах. Вы ебанутые? Тут компилятор вас за ручку водит, а линтер не позволит написать хуёвый код. Лучший язык на свете
491 2623116
>>623082
Нет, я лучше быстро напишу, а потом буду полгода вылавливать баги.
492 2623123
>>623116

>полгода ебаться с сегфолтом

493 2623188
>>604114
а там еще дешевле есть? они сильно хуже?
494 2623273
>>623063

>ну и скока жрёт твой монитор?


0% CPU и 50MB памяти, смотрю в xfce4-taskmanager.
495 2623496
>>623188
бля, первое предложение это не вопрос. что за осцилографы за 3-4к?
496 2623499
есть уже компиляторы раста вместо rustc?
497 2623665
>>623082
Толстый троль, которому поверят только зеленые.

Выше чел правильно все расписал. С растом нужно ебаться пару месяцев. Все зависит от бизнеса. Кто то же до сих пор пишет на хачкеле и платит за это деньги.

Бизнес любит быстро. А ты можешь предложить бизнесу быструю гошку. Да, компилятор хуевей чем в расте, но задачи будут клепаться, бизнес развиваться.

Это тоже самое как покупать мак или линукс. Хочешь дрочить с дыркой в кармане? Покупай линукс. Хочешь купить ноут и начать работать? Берешь мак. все просто.
498 2623705
>>573458
На самом деле пугающая херня, которая заставляет задуматься. Для обычного принта используется магия макросов.
499 2623723
>>584958
Еще в 90-2000 обсуждали эти арены/зоны/контексты.
Оказывается в программе не так много этих областей и кроме статики или области функции, тебе на вряд ли понадобиться более двух, трех областей, где ты мог бы "собраться".

Но в реальности, если тебе надо щупать бизнес логику проще взять язык с гц, а если надо пощупать железо, то древних си и плюсов хватает с головой. Поэтому раст и не выстрелил, несмотря на попытку натянуть его на глобус. Особенно забавно, когда пытаются его в веб пропихнуть.
500 2623728
>>623723
навряд ли
501 2623748
>>623665

>Бизнес любит быстро. А ты можешь предложить бизнесу быструю гошку.


Спорно.
Есть бизнес хуяк-хуяк и там рулит typescript, C#, java, python.
А есть настоящее айти, где выравнивание структуры даёт прирост и экономию на железе
502 2623750
>>573458
Гавноед здесь только ты, потому что можно написать
println!("Sum is: {result1}");
И почти уже твой любимый JavaScript
503 2624140
>>623723
Какой-то пук ни о чём. В расте, если что, нет арен, ты конечно прямо об этом не заявил, но построение текста намекает.

Древних си и плюсов хватает ровно так же как и брейнфака, чисто технически можно всё на свете сделать, хватит с головой, вот это всё, по-человечески все любят cargo и весь джентльменский набор линтеров встроенный в компилятор.

Вот тут можно причаститься как раст не выстреливает в прямом эфире: https://lib.rs/stats

Насчёт веба ничего не скажу, не смотрел. Знаю только что фигма свой бэк с вебсокетами и мультиплеером на расте написала. Веб сегодня довольно разный.
504 2624228
Изначально идея Си компиляторов как можно меньше проверять код, то есть они доверяют всё человеку за компьютером, и не прощают только глупые ошибки.

В Расте всё наоборот - компилятор выступает как дрессировщик, а юзер как загнанный зверь поначалу.

Какая идеалогия вам ближе всего?
505 2624233
>>624140

> В расте, если что, нет арен, ты конечно прямо об этом не заявил


Был бы твой мозг сложнее чем хлебушек, ты бы заметил что речь идет не про раст, а про vale и арены.

>Вот тут можно причаститься как раст не выстреливает в прямом эфире


Если сейчас пойти в любой экзотический язык, особенно комьюнити, начнет складываться ложное впечатление, как-будто он активно развивается и вот вот станет очень популярным (если не уже, в их умах). На деле же, за столько лет (уже вроде больше 8?), раст мало чего путного достиг и топчится где-то внизу спроса, простреливая где-то благодаря хайпу и неокрепшим умам тех, кто его на работу протащил (от чего бизнес еще взвоет).
506 2624236
>>624228
Дело даже не в том, что кто-то анализатор умудрился прикрутить к компилятору, большого ума не надо (хотя на деле концепция владения живет только для хеллоу ворда, а весь код у тебя из ссылок и костылей в виде Rc). А в том что раст накладывает на разработчика лишнюю нагрузку. Даже если ты себя надрессируешь, тебе все равно придется писать в рамках баран-чекера в тех местах, где он по сути и не нужен.
Если в С++ есть все те же инструменты и они опциональны и восстребованы только когда реально нужны, то в расте ты всегда зажат в рамках узкой парадигмы, словно в каком-то трубопроводе.

И да пиарщики раста умудрились надрессировать комьюнити так, что ошибка с аллокацией памяти, стало прям главной проблемой тысячелетия в разработке ПО, но на деле же любой управляемый язык давно избавился от этой проблемы, но код безопаснее от этого не стал ниразу. там, кстати, свои пиарщики и возвели другую проблему в абсолют, проблему с наллами (null), но затирание буллшитов ровно такое же
507 2624240
>>624233
Не завидую тебе, везде нужно бизнес какой-то из жопы вытаскивать и переписывать всё на с/с++ чтобы точно популярно стало. А то понапринесут своего пидорства новомодного, ууух суки.

>>624236
С хуя ли Rc это костыль? Там где не надо борроучекер, там и используй Rc. Будет почти как в обычном gc-языке как в свифте. Даже крестолуддиты не чураются shared_ptr. Очередной пиздобол с общими фразами про хайп, неспособный разобраться в вопросе.
508 2624249
>>624236

>Если в С++ есть все те же инструменты и они опциональны и восстребованы только когда реально нужны, то в расте ты всегда зажат в рамках узкой парадигмы, словно в каком-то трубопроводе.


Да-да, большинство С++ программ крашатся первые 15 лет
Стикер63 Кб, 450x378
509 2624400
>>624236

>а весь код у тебя из ссылок и костылей в виде Rc


У меня не состоит, сейчас ide открыта проект на 84 файла только в двух местах обернул в Arc<Mutex<>> и то из-за асинхронности, остальное всё контролируется бороу чекером. Другие проекты примерно также. Что я делаю не так? Как я по твоему должен писать на расте?

>Если в С++ есть все те же инструменты и они опциональны и восстребованы только когда реально нужны


Шизик тебя с этим обоссали уже несколько тредов подряд, ты специально приходишь мочу пить?
510 2624412
>>624240
Очередной дауненок который не может в отличие Rc и ARC, если бы ты знал, как работает свифт, не писал бы хуйни.

Кстати, раз затронули язык. После ?? и анврапных конструкций раст выглядит ублюдущно. Имхо.
511 2624447
>>624400

>в двух местах...и то из-за асинхронности


>Что я делаю не так?


Устройся на работу и начни уже программировать. Кому ты нужен с пет проектами с асинхронностью в двух местах.
512 2624450
>>624249

>Да-да, большинство С++ программ крашатся первые 15 лет


Ну да, аллокация памяти сама главная проблема сейчас в разработке (а не говнобюджеты и вечные "херак и в продакшен"), вот в управляемых языках вообще багов нет, ведь там нет проблем с памятью.
513 2624522

> написал лабу


> пойду ка я в расто тред рассуждать о судьбе программирования, что на самом деле нужно бизнесу и как нужно писать код


Каждый тред всё одно и тоже

>>624450

>там нет проблем с памятью


может потому что они с памятью не работают?
514 2624777
Работая с ублюдошным C++ невозможно опознать ошибку на ранней стадии. Скомпилируется - не скомпилируется - надо ебаться с отладчиком на ранних стадиях.

Если запустился rust, то уже уверен в том, что 99% строчек кода работают как запланировал. Единственный конкурент у раста не C++, а golang
515 2624839
>>624522
Унизили за пет проект, о котором сам проговорился. Теперь кругом у него студенты. Лучше бы молчал.
516 2624844
>>624777

>Если запустился rust, то уже уверен в том, что 99% строчек кода работают как запланировал


Да ну просто новая эпоха в программирование! Решили проблему с аллокацией через анал-карнавал, вроде как с гонкой что-то сделали (больше чем уверен, что тупо черед рид-онли) и на тебе супер-пупер язык с самой безопасной утечкой памяти.

Такое ощущение что ты глупый smm'щик, а не программист, ведь программист то должен знать об управляемых языках и вкурсе, что там чуда не произошло.
517 2624861
>>624844
Ты просто боишься потерять работу, ведь скоро тебя заменят раст-кодерами
518 2624866
>>624861
покажите вакансии
519 2624874
>>624866
Через пару лет взрывной рост
520 2624897
>>624874
Вы можете предсказывать тенденции? Получается если мы сейчас вкатимся, то через пару лет будем как синьоры "духов" джунов на путь истинный направлять и тред будет наравне с плюсами по активности?
Стикер127 Кб, 467x440
521 2624911
>>624447

>с асинхронностью в двух местах


Самый прикол что асинхронность везде, просто когда стучишь на те же сторонние апи и для остальной безнес-логики не нужно все оборачивать в Arc. Достаточно передать то что нужно при вызове внутри tokio::spawn тут либо теряешь владение, либо клонируешь, для мелких json не критично и потом получить результат вызвав futures::future::join_all, а так по сути у меня в Arc обернут только контекст где конекшен к БД и всякие прочие вещи которые нужны везде. А другое место с мьютексом там одна штука для бизнес-логики где асинхронно запись в структуру и нужна мутабельность и лочить. Всё, остальное как я выше описал передали -> получили ответ.
То что ты говнокодишь у себя в плюсах используя везде не GC еще не значит что другие также делают.
522 2624912
>>624861
Да его уже заменили джаваскриптизерами лол, вот и жопа горит
523 2624971
>>624897

> тред будет наравне с плюсами по активности?


Нет конечно, лабы то никто не отменял
524 2625085
>>624971
что такое лабы? это когда препод даёт задачу по программированию? просто в моем инженерном институте мы на лабах со всякими установками возимся и измеряем на йобах 50-летней давности, а программы и прочее я сам дома делаю, даже лучше чем it студенты
525 2625520
>>624912
Жопоскриптеров скоро заменит иишечка.
Ирония судьбы, натираешь свой питон, а он же тебя потом и задушил.
526 2625528
>>624861
Смешно, но я больше боялся, что везде обмажут гошкой и придется его есть. Про раст даже не говорим. Были пару додиков, которые до релиза фапали, а потом утихли. Возможно недостаточно хайпуете.
527 2626459
>>625528

>везде обмажут гошкой и придется его есть


Так так и произошло! Сейчас все крупные русские ит-компанию во всю пишут на нём бекенд и микросервисы
528 2626531
>>626459
У нас нет, выкинули при первых тестах на производительность. Нереально тормозное говно, при всем своем минимализме (ну или фанбои не смогли нормально написать тест).
529 2626647
Сап, растач, помоги совладать с borrow checker'ом. Хочу написать функцию, которая добавляет lookup table к вектору (вектор неизменяемый). Ключом в этой lookup table должно быть поле из элемента вектора. Требования на пик 1. Если сделать ключ owned, а элементы вектора обмазать Rc, то все легко и просто (пик 2), но можно ли как-то избежать хотя бы одной доработки? Либо хотя бы без Rc (пик 3), либо хотя бы ключ - не owned (пик 4). Только unsafe обмазывать?
530 2626790
>>626647
Тут обсуждают насколько раст крут чем С++, с баран-чекером сам епись.
531 2626829
>>626790

>насколько раст крут чем С++


Настолько крут, что через пару лет все будем на нём писать
532 2627176
>>626829
Какие к этому предпосылки?
533 2627227
>>626647
Либо разделять владение (хэшмапа хранит только хэши строк, значения — индексы), либо разбираться с self-referential structs. Ну либо обмазываться unsafe. Я бы переделал структуру этих данных, зачем там одновременно и Vec и HashMap?
534 2627687
https://habr.com/ru/company/badoo/blog/420407/comments/#comment_19013235

>Проще говоря, программист на С и программист на машинных кодах выдадут исполняемый бинарник с совершенно минимальными отличиями.



https://habr.com/ru/company/badoo/blog/420407/comments/#comment_19013387

>Так вот судя по их словам, обогнать себя самого на VLIW-ассемблере либо нельзя, либо на считанные проценты, относительно того же грамотно написанного С-кода в связке с оптимизирующим компилятором.


>С даёт результат чрезвычайно близкий к вручную написанным машинным кодам.



Справедливо то же самое в отношении Rust?
535 2627696
>>627687

> программист на С и программист на машинных кодах выдадут исполняемый бинарник с совершенно минимальными отличиями


Эээээээ

> С даёт результат чрезвычайно близкий к вручную написанным машинным кодам.


Более чем голословное заявление, есть крайние случаи которые си не может оптимизировать достаточно, есть где наоборот, си какую то супер крутую оптимизацию применит, о которой 99% прогеров способных ассемблер писать и не знают

хотя хзы, может эмбедед в каком то другом мире живет, где выше мной сказанное ложь

> Справедливо то же самое в отношении Rust?


Неа, чтобы такое выполнялось нужно так называемые "зеро кост абстракшенс", собственно только в си можно более менее сказать что они есть
536 2627705
>>627696
Значит с лучше rust?
537 2627709
>>627705
Не значит
538 2627810
>>627687
Rust это аналог плюсов, а не си. Си он максимально прозрачен, ты всё делаешь ручками. Как пример, у тебя нет такого, что при выходе из скоупа непрозрачно исполняется какой-то левый код деструкторов
539 2627816
>>627810

>Как пример, у тебя нет такого, что при выходе из скоупа непрозрачно исполняется какой-то левый код деструкторов


)))

https://github.com/systemd/systemd/blob/main/src/libsystemd/sd-bus/test-bus-cleanup.c#L14
540 2627817
>>627810
Плюсы это же прокаченный си
541 2627824
>>627687

>Справедливо то же самое в отношении Rust?


Код пишут не только для машины, но и для человека. В этом главное непонимание гавнаря с хабра
542 2627835
>>627824
сказать что хотел-то?
543 2627837
>>627835
1) Хабр кал для гавноедов
2) C хороший язык, но трудно поддерживаемый
544 2627951
>>626829
Хайп ушел, а ты все фанбойничаешь.
Языку лет 8, чуда не произошло, хватит эту дурость писать. Это просто еще один экзотический язык на дне рынка.
545 2628151
>>627227

>хэшмапа хранит только хэши строк, значения — индексы


Хорошая идея, спасибо. Вопрос только в обработке коллизий, но на моих объемах данных это не должно быть проблемой (на моих объемах вообще можно и без Rc обойтись, просто делать clone() везде, но тем не менее).

>зачем там одновременно и Vec и HashMap?


Мне нужно иметь возможность как выводить весь список элементов (они отсортированы по другому полю), так и быстро получать конкретный элемент по его id. На crates.io вроде есть ordered dictionaries, и их использование было бы наиболее правильным решением, но хочется реализовать без сторонних зависимостей.
546 2628208
>>627951

>Языку лет 8


Напомни, сколько лет прошло перед тем, как Python стал популярным и ВСЕ компании мира начали на нём писать?
547 2628258
>>627816
И что ты скинул?
548 2628289
>>628258
При выходе из функции, вызовется деструктор "sd_bus_unrefp" для "bus".
549 2628363
>>628151
на пик 1 сразу видна проблема. Ты не можешь просто так положить ссылку на стеке в структуру, т.к. ссылка может жить дольше объекта.
или делай отдельный индекс ключей (заодно получишь сортировку по ключам), или клади туда по значению, String например.
550 2628396
>>626647

>Только unsafe обмазывать?


>


Вместо ссылки на Item кладешь указатель и делаешь функцию типа get(&self, &str) -> &Item, в которой разыменовываешь. Это даже не unsafe, а так, на пол шишечки.
image.png205 Кб, 500x450
551 2628799
Узнали? Согласны?
552 2628831
>>628799
ансейф явно виден и легко локализируется, в отличие от аналоговнет
553 2629047
>>628289
Ну это какой-то специальный предолинг, который я даже не понял как работает. Это_другое
Это расширение от компилятора. Компилятор ещё дает возможность встроить код, который будет выполняться при входу в любую функцию
laughingXzibitusesRustprogramminglanguage52332269-81d0-4030-ae28-8cd6ec6e3d6a.png1,6 Мб, 1024x1024
554 2629055
>>628799
Мы сложили unsafe внутрь safe, чтобы ты мог писать safe и не переживать про unsafe.
555 2629108
>>629047

> не понял как работает


Там наверное какая то магия на goto
556 2629258
>>629047
Это не другое, это расширение которое есть в gcc и clang, а развитие стандарта С это буквально постепенное включение в него расширений gnu. Большинство проектов GNU и Linux используют расширения, даже вставку asm нельзя сделать без расширения, они часть языка, но не часть переносимого стандарта, который нужен как для ПК так и для МК.

Помимо этого есть еще интересная фича а иногда баг https://godbolt.org/z/Y7qfjaMaf

>>629108
https://echorand.me/site/notes/articles/c_cleanup/cleanup_attribute_c.html
557 2629858
>>629258

> Это не другое


> расширение стандарта


> Это не другое

558 2629859
>>626647
А нахуй тебе вообще вектор всрался? Почему бы просто не хранить овнед Item'ы в одном хэшмапе? А если нужны конкретные фичи вектора, которых нет в хэшмапе, типа ордеринга, юзай btreemap
559 2629905
>>628208
Нужно только подождать
Питон из дна вытащили ученые с МО и разводилы для хочух в айти и универы. Каким боком ты проводишь параллели со ржавчиной, мне не понятны. Тоже самое сказать, что за дирижаблями будущее, вон видите как самолеты стали популярны.
Про популярность я бы тоже поспорил, язык безз многопоточности - игрушечный язык, а вебе он так популярен и не стал, пхп до сих пор долю занимает жирную
560 2630107
>>629859
Элементы отсортированы не по ключу (id), а по другому полю. Чем тут поможет btreemap?
561 2631196
>>629858
То есть там код не на С? Понял.
562 2631208
>>631196
Не на С
Всё что не удовлетворяет стандарту не является языком С
563 2631216
>>631208
Комнатная манька не написавшая ни одной строки, ты?
564 2631493
>>631216
Зумерок как факты появится напишешь
565 2631704
>>631493
Твои комментарии обо всем говорят
566 2632822
Сап, аноны. Такой вопрос возник, а кто такие системные программисты Rust?
(Я умею пользоваться гуглом, просто определения и рабочие обязанности везде указаны разные, особенно заметны различия между русским и английским толкованием)

Увидел недавно вакансию "Джуниор системный программист Rust", но в описании вакансии из обязанностей указанно только: "Расширение функционала, документации и написание функциональных и модульных тестов на несколько проектов". Хотел бы попробовать свои силы, но не совсем понимаю какой уровень знаний необходим для кандидата.

Я учу Rust 2 месяц, есть несколько пэт-проектов, есть поверхностные знания Go, JS, NodeJs, Java. Очевидно, понимаю теорию алгоритмов (Introduction to Algorithms by Thomas H. Corman - замечательная книга). Ну и так, по мелочам. Знаю как это звучит, в свою защиту хочу сказать, что сам для себя учил, и экспертом себя назвать язык не повернется, но суть понимаю, поэтому считаю знания поверхностными.

Из пэт-проектов SQL база данных (пока на том уровне, где мне было бы стыдно прикрепить его к резюме).
И менеджер буфера обмена, функционал работает, но выглядит как говно, тоже стараюсь развить до приемлемого уровня. Ну и вообще, дайте оценку, пожалуйста, насколько разумным будет включать эти проекты в резюме.

Подводя итоги, хотелось бы услышать ваши определения того, кто такой системный программист Rust, и что он должен знать. И если не сложно, подсказать что следовало бы учить, если у меня есть желание попробовать себя в этой роли
567 2632869
>>632822

> пэт-проектов SQL база данных


сам писал, или по гайдам? если по гайдам дай ссыль
568 2632886
>>632869
По гайду, ну и свои доработки. Держи, анон. Материалов три штуки, довольно понятным языком. На английском, на русском не учусь.

https://adambcomer.com/blog/simple-database/motivation-design/
569 2632889
>>632869
>>632886
Дополню, вспомнил что в закладках есть ещё один гайд не плохой. Тоже на английском

https://munksgaard.me/pdb/lets-build-a-database.html
570 2632922
>>632889
>>632886
Благодарю, на ангельском даже лучше)
h609ih056ojhtgk0ht.jpg71 Кб, 540x405
571 2634402

>Package: libstd-rust-dev


>Size: 150.846 MB



>Package: rust-src


>Size: 112.247 MB

572 2636717
Привет, работаю разработчиком на Go, в вузе были C/C++ супер-ентри левела, хотелось бы попробовать Rust. Будет ли проблемой то что нет особо понимания плюсов? Стоит ли сначала учить C++?
573 2636719
>>636717

> Будет ли проблемой то что нет особо понимания плюсов?


Будут проблемы с пониманием того, зачем нужна та или иная фича, что плохо, а что хорошо.
Важно не столько знание C++, сколько опыт программирования на оном
574 2637151
>>636717
Я сейчас после питона плотно осваиваю раст, все довольно удобно и приятно. Главное - понять логику борроучекера.
Правда до этого у меня были небольшие пет проекты на си и плюсах, но до раста я как то не сильно задумывался о UB, а тут компилятор не дает жопу отстрелить, что радует. Специально без ансейва UB сделать как то сложновато.
575 2640384
>>629905
Однако сложно отрицать тот факт что питухон приносит денежки многим конторам которые в рот давали мнимым определениям "игрушечного языка".
576 2641442
>>490347 (OP)
лол, Winderton тоже раст изучает
577 2641458
>>641442
Одноклассник твой?
578 2642662
>>641442
Вау, виндертон… это уёбище без хоть какого-нибудь подтверждённого опыта коммерческой разработки и вместе с тем откровенно помойным кодом на гитхабе по уровню не дотягивающим даже до уровня джуна.
579 2643176
>>642662
Ага

Странно что в комментариях его хвалят.
На гите его собственного кода я не увидел, одни форки.
Не знаешь он выучил с++ за полгода?
580 2643717
>>640384
Бизнес бы и макаку посадил за печатную машинку, если это было выгодно по обучению и затратам. Не нужно бизнесом мерить ценность языка. Именно из-за бизнеса сейчас и существует такой зоопарк языков, где каждый кустарь пилит одно и тоже, массово деградируя в ширь.
image.png69 Кб, 811x491
581 2644591
Аноны, а есть инструменты для визуализации памяти в расте типа пикрила?
582 2644635
>>644591
Чот похожее https://github.com/cognitive-engineering-lab/aquascope
Сам не пользовался
583 2644874
>>644591
Отладчик в CLion
584 2648204
>>490347 (OP)
Как выглядит среднестатистический пользователь Rust? Только честно. Сложилось впечатление, что по уровню интеллекта это не очень умные люди. В остальном еще и ебанутые. Примерно как хозяин комнаты на пикче со Столяровым, та что в шапке треда. Ну или как Стив Клабник, такой типичный фрик-пидорок. Интересуюсь для того чтобы понять философию Раста.
585 2648209
>>636719
Ты имеешь ввиду опыт работы с низкоуровневыми API ОС или что?
1649201653725.png989 Кб, 1564x882
586 2648231
587 2648239
>>648231
Почему так? Бля, у них еще и старухи феминистки в кор тиме. Это пиздец.
588 2648730
>>648231
Я кстати думал, что это рофл. Но я подписан на пару каналов по расту и там авторы реально чулки носят, ногти красят
Не то, чтобы мне это принципиально было, просто забавно
589 2649499
>>648730
что за каналы?
591 2649577
>>648730
Все время слышу "мне все равно", "пофиг". Но в реальности речь идет о технически сложном продукте. Меня это правда настораживает.

мимо так и не закатился в раст, ибо как-то получается он мне
ненужон
592 2653804
Смотря на отсуствие некоторых вещей в Расте и потом если посмотреть, что пишут англоязычные кодеры, как аргументацию на счет тех или иных вещей, то сдается впечатление, будто растовчане - это поехавшие фанатики
Это норма или просто попадаются клоуны?
593 2653983
>>653804
Если бы ты указал, каких именно вещей нехватает, и кто и чем аргументирует (со ссылками) - мы могли бы это обсудить.
Пока что я вижу только один тренд: повышение интереса растохейтеров к гомоебле и хуйцам, что не может не радовать.
594 2653994
>>653983
ну типа возьмем к примеру базовые вещи типа
тернарного оператора или возвращения значения из функции через return
595 2653996
>>653994
Ты забыл приложить ссылку на аргументацию англоязычных кодеров.
Screenshot2023-03-27-12-17-40-364com.android.chromecompress69.jpg144 Кб, 1080x2248
597 2654090
>>654022
Просто попадаются клоуны.
598 2654096
>>653994

>возвращения значения из функции через return


А что с ним не так?
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=4ba7e8ebf7c613ad460d3fbef942555f
599 2654110
>>654096
не, ничего. Просто правило хорошего тона условно вместо
fn some() -> i32 {
return 5;
}

писать без return и ;
fn some() -> i32 {
5
}

и мне было интересно покопаться и поискать причины таких решений и прочее, но попуптно встречаемые ответы от коммьюнити порой поражают
600 2654153
>>654110

> и мне было интересно покопаться и поискать причины таких решений


Это не фича именно раста, просто функциональщикам нравится такой синтаксис
601 2655667
>>653994

>тернарного оператора или возвращения значения из функции через return


Но они же как раз вместе работают отлично. Вместо
c = isActive ? 5 : 3;
или вызова функции типа
if (isActive) {
return 5;
} else {
return 3;
}
можно сделать
c = if isActive { 5 } else { 3 };
всего пара дополнительных символов относительно тернарника, зато никакого магического синтаксиса специально для этого случая. Всё обычно.
36c25b1a33c43fa1decca7db374b58db279adf15.png188 Кб, 1600x1352
602 2655789
Антоны, я обычная питон макака, прошу не считать троллингом тупостью и набрасыванием на вентилятор.
Но нахуя нужны эти ебаные скобочки вместо отступов? В любом случае все и всегда код форматируют под них, придерживаясь определенных правил.
Да, есть моменты, когда в одну строку делаешь еботу и скобочки там нужны, ну сделали бы их опциональными.
603 2655794
>>655789
Чтобы не сидеть, не выгадывать форматирование, а чтобы ты нажал одну кнопку, и инструмент отформатировал за тебя.
604 2655795
>>655794
За меня всё это редактор делает, я просто на enter жму.
605 2655796
>>655795
Мы оба знаем, насколько это приукрашивание правды, а не настоящая ситация.
606 2655918
ПЕРЕКАТ >>2655915 (OP)
ПЕРЕКАТ >>2655915 (OP)
ПЕРЕКАТ >>2655915 (OP)
Тред утонул или удален.
Это копия, сохраненная 3 мая 2023 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски