Программирование


Ответить в тред Ответить в тред

<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
537 60 118

Rust #6 /rust/ Аноним 15/01/19 Втр 13:05:05 13270891
2019-01-15-1057[...].png (40Кб, 1034x583)
1034x583
15464700540220.webm (2422Кб, 1920x1056, 00:00:12)
1920x1056
2019-01-15-1105[...].png (250Кб, 1669x1327)
1669x1327
mozilla-rust-gr[...].jpg (99Кб, 3261x1260)
3261x1260
Rust — невероятно быстрый язык для системного программирования без segfault'ов и с гарантиями потокобезопасности.

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

https://www.rust-lang.org

> Пачиму helloworld весит как моя мамка?!1й
https://lifthrasiir.github.io/rustlog/why-is-a-rust-executable-large.html

Читать
Оф. книга, она же растбук
https://doc.rust-lang.org/book/
https://rustbyexample.com/
Очень хорошая книга, отлично зайдет после растбука:
http://shop.oreilly.com/product/0636920040385.do

Упражнения
https://exercism.io/tracks/rust
https://github.com/crazymykl/rust-koans

Писать
IDE
https://areweideyet.com/
Вебня
http://www.arewewebyet.org/
Игры
http://arewegameyet.com/
Etc
https://wiki.mozilla.org/Areweyet

Список интересных проектов
https://github.com/rust-unofficial/awesome-rust

Новости
Компиляция всего, что произошло за неделю
Иногда постят вакансии
https://this-week-in-rust.org/
Сколько вешать в лайках
https://github.com/trending/rust

Оп рекомендует:
https://www.amethyst.rs/
https://github.com/TatriX/dvach
Аноним 15/01/19 Втр 16:03:35 13272322
Какую смазку брать для моего парня брать?
Аноним 15/01/19 Втр 16:09:34 13272393
Аноним 15/01/19 Втр 16:19:39 13272464
>>1327089 (OP)
Взял вашу книжку полистать. Первая же угадайка поломалась:

io::stdin().read_line(&mut guess)
.expect("Feiled to readlineliiil)");

Даёт ошибку "type `core::result::Result<usize, std::io::error::Error>` does not implement any method in scope named `expect`"

А вот это робит:

io::stdin().read_line(&mut guess);

Да, жалуется, но поведение хотя бы запускается и делает что надо.


Что за хуйня?
Аноним 15/01/19 Втр 16:23:36 13272495
2019-01-15-1424[...].png (114Кб, 1458x698)
1458x698
>>1327246
Незнаю, нужно больше инфы.
Аноним 15/01/19 Втр 16:28:44 13272506
Аноним 15/01/19 Втр 16:43:08 13272577
123334.jpg (496Кб, 1099x778)
1099x778
>>1327249
>>1327250
Обнаружил в чём проблема:
rustc 1.0.0-beta (9854143cb 2015-04-02) (built 2015-04-02)
cargo 0.0.1-pre-nightly (84d6d2c 2015-03-31) (built 2015-04-01)

И это на офсайте ж нашёл. rustup-init, кстати, не сработал почему-то.
Сейчас бету снёт, накатил 1.31.1 - всё хорошо.
Внезапно и cargo стало прям как по примерам генерировать всё.



Аноним 15/01/19 Втр 16:58:11 13272618
Объясняю почему Rust говно.
1) Как системный ЯП, Rust медленнее, чем C. Причем, в одном случае вы будете ебаться со сложной системой управления памятью (аки защита от макак) , а в другом - с собственным говнокодом. Подразумевается, что системеный программист не макака и способен нормально организовать работу с памятью, без искусственных ограничений встроенных в ЯП.
2) Как прикладной ЯП неудобен (см. пункт 1). Невасянский GC не завезли.
Аноним 15/01/19 Втр 17:00:20 13272629
>>1327261
Количество уязвимостей в коде твоего сферического системного программиста показывает что можно пожертвовать скоростью в пользу безопасности в общем случае. Впрочем, утверждение что одно медленней другого так же ничем не подкреплено.
Аноним 15/01/19 Втр 17:04:17 132726410
>>1327261
Но ведь системное программирование не ставит своей целью сверхскорости. Это скорее побочный эффект с того, что С фактически является обёрткой над Ассемблером.
Аноним 15/01/19 Втр 17:06:50 132726711
Если раст не быстр, значит и не нужен.
Аноним 15/01/19 Втр 17:30:17 132727612
>>1327261
Ты ни на си, ни на расте не писал нихуя.
Аноним 15/01/19 Втр 19:06:52 132733013
>>1327261
Дак ты, это, не с Цэ сравнивай, а с Цэ++. Быстрее сей бывает только ёбля голого ассемблера и фортрана.

Аноны, я и сам хуй простой, только вкатываюсь. Такой вопрос, как бы сделать
(a as i16 - b as i16).abs() as u8
но поизящнее? Нужно вычесть из одного беззнакового другое, получается только вот так топорно.
Аноним 15/01/19 Втр 19:11:17 132733514
Раст по скорости на уровне питона.
Аноним 15/01/19 Втр 19:42:34 132736415
>>1327335
Хихикающая девочка-фротнендер? Заёбанный дядя-плюсист с пятью детьми? Школьник-максималист с комплексом великого провокатора?
Кто же ты, о чудо?
Аноним 15/01/19 Втр 19:55:02 132737616
Аноним 15/01/19 Втр 19:57:50 132738117
Аноним 15/01/19 Втр 20:07:34 132739018
>>1327376
едрить, ну и костыль. Хотя, сам пример интересный, спасибки.
Аноним 15/01/19 Втр 20:13:05 132739319
>>1327390
Раст это костыль на костыле с убогим синтаксисом. Даже для мк не попрогать на нем.
Аноним 15/01/19 Втр 21:19:17 132742720
>>1327393
Ну а как бы ты вычел на ассемблере? Тут или распаковывать в знаковое, или вычитать из большего меньшее. Вот системность раста, как языка, она об этом. Вот тут даже хз, что будет шустрее, вроде бы на simd есть команды для сравнения и сортировки, так что и там, и там вариант со сравнением, скорее всего.
Аноним 15/01/19 Втр 23:05:25 132748621
Аноним 15/01/19 Втр 23:07:01 132748722
Аноним 15/01/19 Втр 23:17:12 132749523
>>1327276
lab1.c lab2.c lab3.с LAB4.c
не хотел?
Аноним 15/01/19 Втр 23:34:38 132750924
Чем плохо переписывание существующего кода на раст? Почему это так не любят?
Аноним 15/01/19 Втр 23:52:33 132752125
>>1327509
Ничего плохого если ты сам этим занимаешься. Не любят из-за товарищей которые в иссуях на гитхабе капают на мозги мол давай переписывай свою хуйню на раст, раст ебать топчик.
Аноним 15/01/19 Втр 23:54:45 132752526
Аноним 16/01/19 Срд 00:08:35 132753927
Аноним 16/01/19 Срд 03:08:03 132760028
>>1327539
Почему ты пишешь имя Иисуса на английском языке?
Аноним 16/01/19 Срд 07:29:53 132762529
Вопрос к прошаренным. Не сочтите за наезд или троллинг.
Раст вообще развивается? Что там нового?
Просто часто слышу в разговорах, что раст застопорился. Расскажите кому не лень и кто шарит. Только подробно.
Аноним 16/01/19 Срд 07:35:49 132762730
>>1327625
Хуясе застопорился. Недавно выкатили 2018 версию с кучей новых фич. В этом году ожидаются две большие фичи: корутины и константы в генериках. А так сами разработчики не хотят торопить события и сосредоточится на стабилизации и допиливании существующих фич, а не придумывании новых.
Аноним 16/01/19 Срд 07:49:49 132763031
>>1327627
Ясно. Смотрел давно видос, что лысый из яндекса нахваливал язык. Сейчас где юзают его, в каких проектах/конторах?
Аноним 16/01/19 Срд 10:11:48 132766532
Аноним 17/01/19 Чтв 13:36:59 132848733
Что-то я читаю всякие реддиты-медиумы-хакерньюсы в последнее время и замечаю , что люди прям срут на раст. И собсна вопрос, а чего нас так вдруг невзлюбили? Язык не особо чем выделяется, чтоб говном поливать. Растаманы не индусы, и не фронтендеры. Оглядел тред, тут тоже какие-то буйственные настроения. В чем хейт то пошел ? Я что-то пропустил ?
Аноним 17/01/19 Чтв 13:56:29 132849934
>>1328487
Сперва был хайп, переоценка, теперь идёт откат. Таким маятником и устаканится отношение к нему.
Не срут же на джулию, с которой я на него вкатился, а она то ещё говнецо.
Аноним 17/01/19 Чтв 14:00:51 132850835
>>1328487
> Что-то я читаю всякие реддиты-медиумы-хакерньюсы в последнее время и замечаю , что люди прям срут на раст. И собсна вопрос, а чего нас так вдруг невзлюбили? Язык не особо чем выделяется, чтоб говном поливать. Растаманы не индусы, и не фронтендеры. Оглядел тред, тут тоже какие-то буйственные настроения. В чем хейт то пошел ? Я что-то пропустил ?

Разочарование, хотели чтобы язык кресты убил, а он в середине своего развития упоролся и чижика съел.

Ну и в первую очередь потому что хотелки нипалучились и устраивающей всех по фичам стабильной спеки ещё так и не вышло.
Аноним 17/01/19 Чтв 15:22:43 132857136
>>1327089 (OP)
>Rust — невероятно быстрый язык
Такой быстрый, что в некоторых тестах даже медленнее C#

>regex-redux
>C# .NET Core 2.22
>Rust 2.44
Аноним 17/01/19 Чтв 15:32:36 132859237
6Mfy5mrd.jpg (21Кб, 640x554)
640x554
>>1328571
Лол, я даже не глядя уже понял , с какого сайта бенчмарки такие идут. Интересно , сколько ещё клованов найдется , которые все его цитировать будут. В каждом ебаном треде о каждом ебаном языке, блять.
Аноним 17/01/19 Чтв 16:12:51 132863138
1400564103420.png (116Кб, 462x754)
462x754
Аноним 17/01/19 Чтв 16:19:12 132863939
horriblesubs-ni[...].jpg (34Кб, 736x414)
736x414
Аноним 17/01/19 Чтв 16:26:20 132864340
>>1328571
>[DllImport("pcre2-8", EntryPoint = "pcre2_compile_8", CharSet = CharSet.Ansi)]
Эх, щас бы сравнить встроенную библиотеку раста с сишной библиотекой регулярок от гугла и назвать это тестом перформанса раста вс шарпа ¯\_(ツ)_/¯
Аноним 17/01/19 Чтв 16:31:04 132864941
>>1328487
Дизайн языка плохой, рестриктивный.
Он не делает решение никаких задач проще. Запретили одну дырявую абстракцию, в итоге на расте пишут другие точно такие-же дырявую абстракции адресации памяти с точно такими-же багами.
Аноним 17/01/19 Чтв 16:38:59 132865542
>>1328643
А тебе кто-то запрещает использовать интероп в шарпе?
Наоборот, это преимущество языка. 90% кода пишутся на простом, высокоуровневом языке, а там, где нужна производительность, вынести в быстрые библиотеки.
Аноним 17/01/19 Чтв 16:43:24 132865943
>>1328655
Это всё очень хорошо, но это не будет показателем производительности C#, так что такие бенчмарки идут нахуй.
Аноним 17/01/19 Чтв 16:45:51 132866144
>>1328649
>Он не делает решение никаких задач проще.

Он делает проще задачу поиска проблем из категории buffer overrun, use-after-free и aliasing. Ничего кроме этого он не заявлял.
Аноним 17/01/19 Чтв 16:50:30 132866445
>Rust is fast
Not with the number of defensive copies or arbitrary synchronizations you need to make to satisfy the BC.
>Rust can easily integrate with other languages
No stable ABI
>Rich type system
No HKTs
No pi types
>guarantee memory-safety
Still trivial to leak memory with a reference cycle
>productivity
Enjoy fighting the BC more than doing actual work
Аноним 17/01/19 Чтв 16:54:16 132867046
>>1328664
> Enjoy fighting the BC more than doing actual work
С таким настроением только в языки с gc.
Аноним 17/01/19 Чтв 16:55:33 132867247
>>1328487
На всё чем хоть кто-то пользуется срут все кому не лень, см. цитату Страуструпа.

Алсо, так же можешь посмотреть на коменты под новостями о новых версиях какого нибудь окамла (которых нет). Так что, наличие критики = используемость.
Аноним 17/01/19 Чтв 17:09:43 132869048
363602.jpg (69Кб, 725x465)
725x465
>>1328672
>см. цитату Страуструпа.
Аноним 17/01/19 Чтв 17:11:32 132869449
>>1328670
Че, неприятно? Язык не оправдывает своих ожиданий и разработчики нагло врут о якобы быстром языке.
Аноним 17/01/19 Чтв 17:14:37 132869750
>>1328694
> нагло врут о якобы быстром языке
Это ты про сишарп вкинул что ли?
Аноним 17/01/19 Чтв 18:07:14 132875051
>>1328664
Ловите борщехлеба.
17/01/19 Чтв 18:25:40 132876152
>>1328750
К чему ты это пропердел?
Аноним 17/01/19 Чтв 18:45:07 132876953
>>1327625
Если все такие умные может ответите?
Аноним 17/01/19 Чтв 19:45:51 132880954
Аноним 17/01/19 Чтв 19:58:18 132881255
>>1328809
А это правда, что Rustовитяне все CoCолды?
Аноним 17/01/19 Чтв 20:05:16 132881556
>>1327232
по поводу гомофобии, которая постоянно всплывает в растотредах
вы хоть понимаете, что это не только раста касается, а вообще всех новых технологий разрабатываемых в бездуховных геймерике и гейропе? где они преобладают, там и кок/сжв/лгбт будут как правило! и в таком случае вы предлагаете из-за этого тупо гасить всё новое оттуда или есть варианты получше?
Аноним 17/01/19 Чтв 20:09:50 132881857
>>1328815
Когда по существо нечего сказать, включают петросяна.
Аноним 17/01/19 Чтв 20:16:44 132882158
>>1328815
Программировать на C++, разве там много LGBT?

>>1328818
>по существу нечего сказать
Почитай это >>1328664
Аноним 17/01/19 Чтв 20:19:14 132882359
>>1328821
Нечего там читать. "Я не осилил борроу-чекер, я хочу систему типов как в языках с гц, но с перформансом сишечки". Хотеть не вредно.
Аноним 17/01/19 Чтв 20:23:37 132882860
>>1328823
Борроу-чекер просто НЕ позволяет тебе писать быстрый код
Какой сейфти, если утечку памяти можно сделать через обычный референс цикл?
Какое компатибилити, если хуево поддерживается двоичный интерфейс приложений?
Ну и видимо, кроме hello world'ов ты сложнее ничего не писал, да и понятно почему, ты не смог заставить код работать из-за BC
Аноним 17/01/19 Чтв 20:27:10 132883161
>>1328828
Мань, ну вычитал ты где-то кукареки того, кто не разбирается в том о чем говорит, ну молодец.

Пруфа про связь борроу-чекера и скорости?
Мемори-сейфити != нет утечек памяти
Какая связь между гаратниями совместимости между версиями раста и ABI?
Аноним 17/01/19 Чтв 20:37:37 132884162
>>1328821
>Программировать на C++, разве там много LGBT?
сразу вспомнилась картинка двух программистов в леопардовой раскраске
не знаю как сейчас, но если для с++ предполагается приток новых программистов, то там будет также, ибо новые поколения молодых людей уже воспитываются в том духе, который неприятен гомофобам
что тогда будете делать?
Аноним 17/01/19 Чтв 20:41:18 132884463
>>1328841
Создадут нормальный язык. И в этом случае производительность программистов будет намного больше, чем на других, лгбтшных, потому что им не нужно бороться с самоидентификацией и харассментом
Аноним 17/01/19 Чтв 20:42:26 132884564
>>1328844
Очень надеюсь что ты либо тупой троль, либо глупый ребенок. Потому что иначе, у меня для тебя плохие новости.
Аноним 17/01/19 Чтв 20:45:43 132885065
Аноним 17/01/19 Чтв 20:49:49 132885366
>>1328845
Во-первых, вы тысячу лет ебетесь с BC. Осилить BC значит потратить дохуя драгоценного времени, вместо работы
Во-вторых, это гендерно-небинарные животные. Любой откровенно плохой код будет котироваться, т.к. "плохой код" - это термин цисгендерных угнетателей.
В-третьих, а впрочем, уже достаточно.
Аноним 17/01/19 Чтв 21:01:14 132886567
>>1328853
> Осилить BC значит потратить дохуя драгоценного времени, вместо работы
Не осилить бц значит потратить больше времени на последующую отладку. Или ты тот самый гениальный программист который пишет сразу без ошибок? Тогда непонятно с чего вдруг у тебя проблемы на такой мелочи как бц.
Аноним 17/01/19 Чтв 21:04:10 132886968
>>1328844
>Создадут нормальный язык.
а с железом и всеми остальными технологиями как быть? приходите за техподдержкой, а там ОНИ
Аноним 17/01/19 Чтв 21:17:45 132887969
>>1328869
Приходится сейчас на Путина только и надеятся, что не даст пидорам захватить рынок
Аноним 17/01/19 Чтв 21:25:51 132888870
>>1328831
>Мемори-сейфити
Не было и никогда не будет. Анально огораживаешь одну модель памяти, а потом прописывает не тот индекс массива и ловишь panic
Аноним 17/01/19 Чтв 21:35:41 132889471
>>1328888
во-первых, никто не запрещает тебе пользоваться итераторами и прочую функциональщину.
во-вторых, сейфти там скорее о том, что у тебя не возникнет ситуаций, когда 2 потока меняют значения по одному адресу, либо один поток удалил массив, а второй об этом не в курсе (на сях такая поебень даже в однопоточном коде встречается).
в-третьих, у раста хотя бы паники адекватные. Я бы даже сказал, приятные.
Аноним 17/01/19 Чтв 22:31:52 132893272
>>1328888
Ну дык обращение по индексу делается если ты точно стопроцентно уверен что нужное значение там есть. Если не уверен, делаешь get(i) и получаешь свой Option<T>
Аноним 17/01/19 Чтв 22:34:26 132893373
1547753527806.png (83Кб, 500x700)
500x700
Аноним 18/01/19 Птн 00:20:04 132900574
2019-01-17-2223[...].png (58Кб, 1646x843)
1646x843
18/01/19 Птн 00:25:16 132900975
>>1329005
>jemalloc is removed by default
дальше не читал.
Аноним 18/01/19 Птн 03:32:13 132908176
Моя драм-машина.webm (14415Кб, 616x420, 00:05:01)
616x420
Non-lexical lifetimes можно как-то отключить?
Знаю что можно выставить edition = "2015", но это все 2018-edition-фичи отключит, а можно ли вырубить отдельно nnl?
Аноним 18/01/19 Птн 04:54:03 132909277
>>1328809
Мне интересно НОРМАЛЬНОЕ и объективное мнение по языку. Я зашел не тролить, мне реально интересно, потому что нравится С++(На работе java). Просто я не хочу пока что в него погружаться, чтобы разбираться в нём.
Своё мнение напиши. Как язык, что нравится а что нет.
Аноним 18/01/19 Птн 04:57:14 132909378
855702.png (253Кб, 460x460)
460x460
>>1328812
Конечно нет. Взгляни на этого парня. Он ебёт шведских цыпок по две штуки в день пикапя их рассказами про хаскель.
Аноним 18/01/19 Птн 08:29:52 132911979
>>1329092
Ну, мне пока всё нра. Не хватает https://github.com/rust-lang/rfcs/issues/2092 разве что.
Если сравнивать с плюсами, то у раста
- меньше паник
- паники читабельны и понятны (сегфолты в плюсовом ооп коде та ещё мерзость)
- есть cargo
опять же, у плюсов есть хорошие фичи, типа умных указателей (не бц, но типа похоже), но это опционально - можешь юзать, а можешь и не юзать. Или ты будешь юзать, а кто-то нет - в какую-нибудь стороннюю функцию, которая юзает обычные указатели, умный уже не передашь.
А вообще я novichok, неделю на расте
Аноним 18/01/19 Птн 09:48:19 132914880
>>1329092
нормальное и объективное мнение: язык говно. тупо добавили read write lock для всех переменных на этапе компиляции.

говорят, что многопоточное программирование сложное из-за ебли с синхронизацией и mutex'ами, т.к. сложно этот весь зоопарк контроллировать и уследить, нужно постоянно строить ментальную модель в голове что где откуда читается, где блокируется и т.д.
а теперь представь, что ВЕСЬ код на расте нужно писать как многопоточный код с mutex'ами.
Аноним 18/01/19 Птн 09:55:02 132915381
>>1329148
А чего там сложно с мютексами-то? Вот с атомиками, да. Заебёшься придумывать как так сделать чтобы оно работало и было быстрее старого доброго лока.
Аноним 18/01/19 Птн 11:55:04 132922282
>>1328888
>анально огораживаешь одну модель памяти, а потом прописывает не тот индекс массива и ловишь panic

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

>>1329148
>говорят, что многопоточное программирование сложное из-за ебли с синхронизацией и mutex'ами,

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

>а теперь представь, что ВЕСЬ код на расте нужно писать как многопоточный код с mutex'ами.

Если ты не макака, ты ХОЧЕШЬ писать в таком стиле что на плюсах, что на Питоне, потому что огребешь проблем, если вызов функции поменял состояние , а ты не уследил.
Аноним 18/01/19 Птн 20:02:32 132954083
>>1329081
Просто ради интереса: а зачем? То есть оно же никак не мешает.
Аноним 18/01/19 Птн 20:11:45 132955384
>>1329148
>ВЕСЬ код на расте нужно писать как многопоточный код с mutex'ами

ЧИВО БЛЯТЬ? То есть я абсолютно не понимаю что ты спизданул. Какой весь код с мьютексами? Код пишется абсолютно нормально. Да, иногда приходится думать, почему ругается BC, но как бы тут на тебя ругается компилятор, а в C(++) это будет или сегфолт, или какая-нибудь забавная гонка данных, которую хуй отладишь. Или оверхед на смарт-поинтеры, да.

А сейчас еще NLL в раст добавили, теперь можно потихоньку и отвыкать от старых правил.

Да, бывает, что BC на нормальный код ругается и приходится подсказывать ему с помощью лафйтаймов, но это крайне редкий случай, и лучше уж так, чем потом сидет в дебагере, разбирая, а где же там все разъебалось.
Аноним 18/01/19 Птн 23:21:41 132972685
>>1329553
>NLL в раст добавили
Замечательно. Пока не скомпилируешь, не поймёшь есть ошибки или нет.
Аноним 18/01/19 Птн 23:26:39 132973686
>>1329726
> Пока не скомпилируешь, не поймёшь есть ошибки или нет.
Есть RLS, он компилирует в бекграунде и показывает ошибки сразу. А вообще двачую. Лучше бы сделали как в C++: пока не запустишь, не поймёшь есть ошибки или нет.
Аноним 19/01/19 Суб 00:36:13 132978387
>>1329726
В любом языке так делаю, чтобы не отвлекаться от алгоритма, который пишу, зависимости нет.
Аноним 19/01/19 Суб 01:08:27 132979688
>>1329726
Так падажжи ебана, а что не так? Конечно можно как в джаваскрипте ловить "undefined is not defined", но я как-то предпочту отловить ошибку ДО ТОГО, как программа запуститься. Странное желание, конечно.
Аноним 19/01/19 Суб 12:15:43 132996689
Теперь ты подчи[...].webm (10269Кб, 747x420, 00:04:35)
747x420
>>1329796
Думаю он имел ввиду что раньше ошибки лайфтамов он мог найти даже без компиляции - статическим анализом, посчитав скоупы.
Вообще я не знаю нужна ли компиляция теперь, но проверять "в голове" определённо сложнее стало.
>>1329540
Вот собственно затем.
Я раст только изучаю, а nnl усложняет понимание и так сложной системы лайфтаймов.
Аноним 19/01/19 Суб 15:24:55 133009990
>>1329966
Нужно всего лишь этот статический анализатор сделать и будет работать ровно так (или таки воспользоваться RLS/Racer).ТО есть в такой формулировке проблема только в том что еще нет такого инструмента. В C++ вряд ли IDE волшебным образом находила сама ошибки, да.
Аноним 19/01/19 Суб 20:52:23 133036891
20190120-b0b88.png (141Кб, 587x543)
587x543
>>1329966
>я не знаю нужна ли компиляция теперь
У меня в виме плагинчик, которых высвечивает мои косяки при каждом сохранении файла - вы об этом? Если да, то хз, как вы без этого живёте.
алсо, поясните за лайфтаймы и вообще структуру - не наворотил ли я пиздеца
Аноним 19/01/19 Суб 23:23:33 133048092
Аноним 19/01/19 Суб 23:33:50 133048993
>>1330480
> My main reason is that I have chosen to pursue a career in mathematics research.
Ну понял чел что писать код это не его. Что с того?
Аноним 19/01/19 Суб 23:33:51 133049094
Аноним 20/01/19 Вск 01:02:39 133052895
>>1330480
The proposals were not aligned with the language goals. I was, as is recurring, too ambitious, thinking that I could reform the whole type system with all these new nice theoretical properties, many of which are more complicated than useful.

Вся суть
Аноним 20/01/19 Вск 11:19:06 133066696
А что это за браузер на вебмке, где по тредам маршрутизируют, словно по миднайт коммандеру?
Аноним 20/01/19 Вск 12:18:18 133071497
Аноним 20/01/19 Вск 19:09:12 133097398
>>1330368
Вложенные слайсы? Почему не просто Vec<Vec<T>> ?
Аноним 20/01/19 Вск 22:00:12 133117799
>>1330973
Хотелось построжее. Однако, эти лайфтаймы, энто что-то, а вот вектор, ну совсем распиздяйский тип. Но я нашёл сторонний костыль - ArrayVec.
Аноним 20/01/19 Вск 23:43:51 1331292100
>>1331177
Построже с чем? Единственное прямо преимущество, которое я вижу, это потенциально более эффективная работа слайсов, по сравнению с веторами.

А так вообще непонятно какую задачу ты пытаешься решить. Судя по ArrayVec ты знаешь уже конечный размер своей "матрицы". Тогда почему не просто массив массивов?
Аноним 21/01/19 Пнд 01:23:48 1331329101
Кто то использует связку Rust + Vulkan api?
Аноним 21/01/19 Пнд 15:57:47 1331773102
Начинаю только изучать Rust
Подскажите, пожалуйста, что означает символ "?" в конце некоторых функций/методов? И как он называется, чтобы пойти в доках почитать подробнее
Аноним 21/01/19 Пнд 16:07:11 1331779103
Аноним 21/01/19 Пнд 16:45:38 1331806104
>>1331773
исключения для бедных
Аноним 21/01/19 Пнд 18:21:00 1331913105
Аноним 21/01/19 Пнд 18:30:11 1331922106
>>1331292
>почему не просто массив массивов
мне нужен массив массивов с конечным типом ImageBuffer. Допустим, у меня 40 на 40 - как мне проинициализировать такую-то еблолу?
1. С ссылками я мог бы сделать [[&someImage; 40]; 40];
но ссылки в структуре, это пока неподвластное мне ниндзютсу
2. Если использовать [[someImage; 40]; 40], то это даёт ебический оверхед при создании - сперва скопируй 40х40 раз одну хуйню, потом заполни другой.
3. Можно обернуть ImageBuffer в п.2 в Option и заполнить нонами вместо someImage, но на хрен такое только ради создания - потом-то у меня однозначно всё на месте будет.
4. Остаётся юзать вектор, как и остальным слабакам
Аноним 21/01/19 Пнд 18:53:22 1331953107
>>1331922
А зачем нужна одна и та же хуйня 1600 раз?
Аноним 21/01/19 Пнд 19:19:57 1331979108
>>1331922
То есть я правильно понял, что тебе нужен 40x40 массив со ссылками на уже существующие объекты? Или что?

Вот ты пишешь:
> мне нужен массив массивов с конечным типом ImageBuffer
Тогда зачем тебе массив со ссылками на этот тип? Почему не сразу массив массивов из этого типа? (про оверхед вообще не вдуплил, что ты там и куда копируешь, сори).

Если проблема в том чтобы проинициализировать, то тут или вектором, или намути макрос, который за тебя заебашит инициализацию такого массива (я даже уверен что уже подобные хелперы существуют).
Аноним 21/01/19 Пнд 19:31:14 1331987109
>>1331979
Может я тупой, но.. проблема в том, чтобы создать пустой массив типа ImageBuffer и потом заполнить значениями. Нужно или сразу создать заполненный - а это лишнее копирование, или сразу инициировать - а это 1600+ строк кода инициализации. Хотя, на счёт макроса я погуглю, сам такое писать пока не осилю.
>>1331953
>одна и та же хуйня 1600 раз
вот так в расте инициализируются массивы. Сперва одна хуйня 1600 раз, а уж потом фигачишь туда 1600 разных хуйней вместо неё.
Аноним 21/01/19 Пнд 20:05:43 1332011110
>>1331987
Все, понял. Ну да, создать "пустой массив" нельзя (как через malloc в C), ибо получится кусок памяти, который заполнен мусором (очевидно). Проще всего тогда через векторы, наверно:

let x: Vec<Vec<ImageBuffer>> = vec![Vec::with_capacity(40); 40];

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

Есть еще ОЧЕНЬ НЕКРАСИВЫЙ вариант: https://doc.rust-lang.org/nomicon/unchecked-uninit.html , но я бы без веской необходимости им не пользовался.

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

Ну так ты сразу пихай туда нужную хуйню.

21/01/19 Пнд 20:08:16 1332012111
То есть в расте нет адекватного решения на это?
Аноним 21/01/19 Пнд 20:10:52 1332014112
>>1332012
А что в твоем понимании адекватный вариант?
Аноним 21/01/19 Пнд 20:51:42 1332034113
Аноним 22/01/19 Втр 20:41:25 1332795114
Лол, я этого автора уже по заголовкам определяю, очень у него статьи своеобразные.
https://habr.com/ru/post/437128/
Аноним 23/01/19 Срд 17:40:01 1333481115
Аноним 23/01/19 Срд 18:56:25 1333503116
>>1333481
Да. Никто же на языке не пишет.
Аноним 23/01/19 Срд 20:34:13 1333536117
>>1333481
Линкани сюда, посмотрим.
Аноним 24/01/19 Чтв 22:18:40 1334327118
Посоны, а если я открытый гейсо всеми атрибутами типа полосатого хедера в свиттере, радужного бэкграунда на аватарках и тд, это будет считаться преимуществом при отборе на вакансию?
Аноним 25/01/19 Птн 09:15:22 1334476119
>>1334315
>>1334327
ГЫЫЫЫЫЫ мам смотри там педики в разработке конпелятора участвуют ГЫЫЫЫЫ на работу на расте берут только педиков ГЫЫЫЫ мам я затролел их

пожалуйста, съеби назад в свой пщ-тред, ребенок
Аноним 25/01/19 Птн 12:54:49 1334547120
>>1334476
>яростный кукарек обиженного СоСолда
думаю, теперь всем окончательно стал понятен общий уровень завсегдатаев этого треда
Аноним 25/01/19 Птн 12:56:29 1334549121
>>1334548
Было бы смешно, он бы не агрился. Мне вот тоже не смешно. Нахуй вы несмешно тралите?
Аноним 25/01/19 Птн 13:45:00 1334559122
Аноним 25/01/19 Птн 13:47:24 1334561123
>>1334548
> бля ахаха смотрите там педики а если я педик меня возьмут к ним гыгыгы
Очень смешно, да. Может тебе еще и русские комедии нравятся?
Аноним 25/01/19 Птн 13:52:32 1334562124
Ес
Аноним 25/01/19 Птн 20:50:27 1334770125
20190126-41865.png (53Кб, 1185x124)
1185x124
Аноны, поздравьте меня с первым unsafe: мучу каст из Vec[u8] в Vec<Rgb<u8>>

вообще, сразу вопрос:
ImageBuffer<Rgb<u8>, Vec[u8]> => (через .into_raw()) => Vec[u8] => (через unsafe mem::transmute::) => Vec<Rgb<u8>>
я ничего по пути не проебу?
картинка на случай проёба разметки
Аноним 25/01/19 Птн 21:20:23 1334791126
>>1334770
А ты уверен, что у Rbg<u8> паддинга нету?
Лучше реализуй для Vec<u8> что-то типа GetPoint() -> Rgb<u8>. Или вообще сделай свой ImageBuffer массивом векторов, так и векторизация лучше работать будет.
Аноним 25/01/19 Птн 21:21:25 1334792127
>>1334791
>массивом векторов
В смысле, вектор под каждый канал.
Аноним 25/01/19 Птн 21:28:04 1334799128
>>1334770
Покажи лучше код. Из твоего описания тяжело сказать, не проебешь ли ты чего. Но кажется что не должен, Rgb устроен максимально примитивно (это же из image, да?), там вряд ли что может помешать (разве что на вход получишь таки не Rgb картинку, а что либо другое).
Аноним 25/01/19 Птн 21:29:14 1334800129
>>1334791
Нет, оно repr(C). Я недавно оттуда напрямую гонял байты в opengl, все нормально.
Аноним 25/01/19 Птн 21:37:54 1334810130
>>1334799
>image
да оно самое. Кода много, я там типы привожу, макросы хуячу - чтобы безболезненно можно было на Rgba или grayscale перекатиться.
>>1334791
>у Rbg<u8> паддинга нету
А вот как понять? Вроде простая структура https://docs.rs/image/0.21.0/image/struct.Rgb.html

Лан, сча тестом покрою через обратную конвертацию и сравнение, и заебок. Как же охуенно, что в расте так элементарно пишутся тесты.
Аноним 25/01/19 Птн 22:16:24 1334841131
Я раст не знаю, но мне очень интересует наверное единственный существующий язык-альтернатива си. И меня интересует, каким именно образом в расте осуществляется в ней защита от утечек памяти и потокобезопасность?
Аноним 25/01/19 Птн 22:24:45 1334850132
>>1334841
> И меня интересует, каким именно образом в расте осуществляется в ней защита от утечек памяти и потокобезопасность?

Никак, Раст защищает от неопределенного поведения и гонок данных. Система типов в статике и\или проверки в рантайме не дают двум потокам получить доступ для записи к одному ресурсу из двух мест одновременно.

Утечки, если постараться, можно получить, от дедлоков, если действовать неаккуратно, тоже никуда не денешься..
Аноним 25/01/19 Птн 23:57:23 1334926133
>>1334850
>Утечки, если постараться, можно получить
А если стараться не получать утечки, то легче ли их будет предотвратить чем в С?
Я хоть на С и писал только одни лабы, но даже в них всё равно сталкивался с утечками памяти, даже когда старался их предотвратить. В расте с этим всё как я понимаю намного проще и компилятор не даст скомпилировать откровенную лажу?
Аноним 26/01/19 Суб 00:06:32 1334933134
>>1334926
В си ты скорее всего просто забывал освободить память, оттуда и утечки.
Чтобы получить утечки в расте, нужно сделать хитровыебанный цикл между Rc.
Аноним 26/01/19 Суб 00:18:23 1334936135
>>1334933
>В си ты скорее всего просто забывал освободить память, оттуда и утечки
Именно так и есть. Поэтому для обнаружения и предотвращения утечек мне приходилось использовать следующий метод: я запускал проверяемый кусок в бесконечном цикле и смотрел в менеджере процессов на потребляемую процессом память. Если она оставалась константной, то значит всё в порядке, а если нет, то значит в освобождении памяти есть ошибка. И как не странно, выяснялось, что утечки встречались намного чаще, чем этого хотелось.
Аноним 26/01/19 Суб 00:20:20 1334937136
>>1334936
Открой для себя valgrind.
А лучше пиши на расте и не парься. Вероятность обосраться в нём на столько меньше, что до своего первого дедлока/утечки ты успеешь обписаться.
Аноним 26/01/19 Суб 00:38:41 1334941137
>>1334937
>Открой для себя valgrind.
Я вообще не сторонник дебагеров. И весь дебаг обычно провожу прямо в голове. Ну или пишу вспомогательные куски кода для тестирования.
Аноним 26/01/19 Суб 00:42:29 1334942138
>>1334941
> laba2.cpp
Ты держись там.
Аноним 26/01/19 Суб 00:48:54 1334944139
>>1334942
Лаба лабе рознь. И бывали у меня и такие лабы, которые две недели нужно было писать по несколько часов каждый день.
Аноним 26/01/19 Суб 00:50:59 1334945140
>>1334944
Нихуя ты! Не перетрудился?
На дебаггер надейся, но и сам не плошай!
Аноним 26/01/19 Суб 03:49:51 1334963141
>>1334476
>в свой пщ-тред

не, он не из пщ-треда, ибо всё, что появилось за последние 10 лет, уже опидорено, и так будет и дальше продолжаться и усиливаться пока мы паразитируем на технологиях бездуховных геймерики и гейропы
Аноним 26/01/19 Суб 11:23:16 1335037142
>>1334963
А у меня вот друг гей. Мне норм.
Аноним 26/01/19 Суб 11:44:53 1335049143
>>1334936
>Именно так и есть. Поэтому для обнаружения и предотвращения утечек мне приходилось использовать следующий метод: я запускал проверяемый кусок в бесконечном цикле и смотрел в менеджере процессов на потребляемую процессом память.

Конкретно эту проблему решили еще в С++ (до 11-го стандарте на уровне "можно сделать"), просто из-за кучи слоёв абстракции это породило ряд иных дырок.
Аноним 26/01/19 Суб 11:48:23 1335050144
>>1335049
Это каким же образом? Положив в стандартную либу пару смартпоинтеров?
Аноним 26/01/19 Суб 11:58:52 1335056145
>>1335050
Я про весь подход с RAII в целом. Благодаря смартпоинтерам стало приятнее писать деструкторы, но в любом случае, если в Си на каждый malloc приходилось писать free, то в плюсах нужно было описать одну функцию, которая вызывается сама.
Аноним 26/01/19 Суб 12:02:31 1335058146
>>1335056
Вот только ты можешь этого и не делать.
И люди уровня label3.cpp в рот ебали эти ваши смартпоинтеры.
Аноним 26/01/19 Суб 12:05:25 1335060147
>>1335058
А у людей уровня laba3.rs тупо нет выбора. И это здорово.
Аноним 26/01/19 Суб 12:05:33 1335061148
>>1328659
>программа на языке не показатель производительности языка
))
В манямирке шизиков только, а в реальном мире, что язык может - то и производительность. Производительность может быть только у реальных написанных программ, а не у маняязыка в избирательном шизиками вакууме.
Аноним 26/01/19 Суб 12:09:20 1335066149
>>1335056
> если в Си на каждый malloc приходилось писать free
Не-а. Самая большая проблема в том, что у функции может быть несколько точек выхода. Типа
void yoba() {
x = malloc(...);
if (!peka()) {
free(x);
return;
}
if (!psshh()) {
free(x);
return;
}
}

Поэтому тебе не на каждый malloc нужно писать free, а намного больше, на каждый выход x из области видимости. А чтобы не было бойлерплейта использовать goto.

void yoba() {
x = malloc(...);
if (!peka()) {
goto cleanup;
}
if (!psshh()) {
goto cleanup;
}
cleanup:
free(x);
}
при чем этих cleanup'ов может быть несколько, в зависимости от логики.

И вот это уже пиздец.
>>1335060
А люди уровнем повыше ебутся.
Аноним 26/01/19 Суб 12:13:48 1335070150
>>1335066
Не ебемься. Убери свой готу от греха.
Аноним 26/01/19 Суб 14:01:42 1335177151
>>1335061
> программа на языке
Так в том и дело что часть программы на другом языке.
Аноним 26/01/19 Суб 14:49:40 1335241152
>>1335177
В том то и дело что нет. Язык это то на чем ты пишешь программы. Ты не пишешь библиотеки на других языках, а только их подключаешь.
Аноним 26/01/19 Суб 14:51:33 1335242153
>>1335241
Это тест скорости библиотеки.
Аноним 26/01/19 Суб 16:24:36 1335364154
>>1335241
Получается, если подключить ту же либу к Расту, то Раст окажется быстрее Раста?
Аноним 26/01/19 Суб 19:12:31 1335467155
>>1335364
>Получается, если подключить ту же либу к Расту, то Раст окажется быстрее Раста?
Вот ты ебодятел-то, а. Эта либа написана на С, 99% времени работает она, соответственно, ты измеряешь скорость работы алгоритма в его реализации на С. Эту же либу можно и к бидону подключить - внезапно, какой охуенно быстрый язык получится.
26/01/19 Суб 19:42:51 1335487156
>>1335467
Игорь, ты? Помнишь меня? Я твой одноклассник. Я узнал тебя по твоим шизоидным словам и высерам. А помнишь, как мы всем классом нассали тебе в кружку в третьем классе, на сладкоежке? Ты ещё выпил, облизнулся и попросил добавки. А потом тебя пришёл забирать твой отец, тот самый дворник, который на Вернадского изнасиловал собаку и получил условный срок за то, что украл плавленный сырок в магазине. Он зашёл в класс, все стали смеяться, а ты обосрался под себя от стыда, а потом сказал, что всю жизнь будешь ненавидеть дворником, но в 9м классе, когда ты пошёл на рейд, чтобы их отпиздить, то они пустили тебя по кругу, после чего тебе наложили на анус восемь швов. Как поживаешь, Игорян?
Аноним 26/01/19 Суб 20:55:55 1335525157
>>1335487
Если бы ты использовал не настолько протухшую пасту, то мог бы блеснуть своей, экхм.., эрудированностью, что ли. А так и этим не смог. Сожалею, старайся лучше.
Аноним 27/01/19 Вск 20:22:08 1336303158
20190128-18f6b.png (189Кб, 775x400)
775x400
20190128-14ef5.png (147Кб, 1159x304)
1159x304
Ю-ху, анонии, насколько же легко писать тесты, охуеть. Я, конеш, понимаю, что есть gtest и для того же бидона куча либ. Но тут-то оно из коробки - а значит меньше велосипедов и больше взаимопонимания в растовом мирке.
Аноним 27/01/19 Вск 20:31:53 1336315159
>>1336303
Братишка, побереги глаза. Поменяй схему.
Аноним 27/01/19 Вск 21:08:31 1336343160
20190128-8fc86.png (148Кб, 722x320)
722x320
Аноним 27/01/19 Вск 21:16:13 1336347161
>>1336343
Немного. Уменьши контрастность всех остальных цветов. Или просто возьми monokai или любую другую готовую тему.
Аноним 28/01/19 Пнд 15:33:44 1336696162
>>1336303
Да, тесты вообще благословленные. Единственное немного раздражает то что в tests/ нельзя нормально сделать модуль, который сам тесты не содержит, а включается в другие модули с тестами. Приходится изворачиваться с tests/utils/mod.rs , чтобы оно не собирало этот модуль как отдельные тесты.
Аноним 28/01/19 Пнд 15:37:58 1336701163
А я правильно понимаю, что сейчас нет никакого способа делать динамические библиотеки (да и статические тоже), которые можно было бы распространять без постоянной пересборки всех зависимостей? Интересует не сборка в сишную библиотеку и потом unsafe extern "C", а именно возможность подключить динамическую библиотеку, написанную на расте, и использовать оттуда безопасный растовый код
Аноним 28/01/19 Пнд 17:04:14 1336724164
Аноним 28/01/19 Пнд 17:20:08 1336730165
Аноним 28/01/19 Пнд 18:44:46 1336769166
>>1336724
Я как раз явно сказал, что интересует не это.

>>1336730
Хм. То есть вообще нет возможности распространять крейт кроме как исходный код?
Аноним 28/01/19 Пнд 18:50:22 1336774167
>>1336730
Ломают ABI.
Что это значит? Я понимаю так. Скомпилил ты в исполняемый файл. Взял этот файл, отправил другу, у него стоит та же ос или выше, он его запустил, всё сделалось. Правильно?
Аноним 28/01/19 Пнд 18:53:18 1336776168
>>1336769
Да. Ну или сишная либа.
>>1336774
Скачал с сайта rayon.dll какую-нибудь, пытаешься её засунуть себе в проэкт, но сосешь хуй из-за того что ничего не собирается.
Если исполняемый файл, то всё ок, там все либы статически слинкованы и ничего больше не требуется.
Аноним 28/01/19 Пнд 18:59:57 1336781169
>>1336776
> статически слинкованы
То есть весь их код переведён в машинный язык и засунут в этот же бинарник (исполняемый файл)?
Аноним 28/01/19 Пнд 19:04:32 1336787170
>>1336781
Да. От этого и бугурты на хелло ворлд.
Аноним 28/01/19 Пнд 19:14:13 1336793171
>>1336776
Хуево. Это же еще очень мешает коммерческому использованию языка, ведь ты не можешь сделать что-то и распространять это в виде блобов.
Аноним 28/01/19 Пнд 19:24:31 1336803172
>>1336793
Ну ты сам прикинь, какова доля либ в коммерции (обычно продают готовый продукт) и помножь эту долю на долю раста - вот ты получишь %, где это даже не необходимо, а "было бы неплохо". К тому времени. когда раст захватит мир, это наверняка реализуют.
Что касается ускорения конпеляции, то для этого есть кэш и он неплохо работает.
Аноним 28/01/19 Пнд 21:33:30 1336935173
Аноним 28/01/19 Пнд 21:37:44 1336942174
>>1336935
Что такое главный модуль? main.rs?
Аноним 28/01/19 Пнд 21:43:35 1336951175
>>1336935
Да, он. Ни в условный lib.rs, ни в крейты пробросить не получается.
Аноним 28/01/19 Пнд 21:49:47 1336956176
>>1336951
Ясен хуй, это не имеет никакого смысла. Клади свою константу в lib.rs.
Аноним 28/01/19 Пнд 22:45:55 1337019177
Untitled.png (45Кб, 854x1008)
854x1008
Блеть, я просто хочу сматчить что инпут еть String да и только. Как это сделать подскажите?
Аноним 28/01/19 Пнд 22:50:40 1337027178
>>1337019
Он и так стринг. Проверку на ошибку (и вытаскивание из Result) ты уже сделал в виде .expect()
Аноним 28/01/19 Пнд 22:52:06 1337028179
>>1337027
Та то понятно. Я же хочу управляемую ошибку. В случае эррора там и Ок-а...
Аноним 28/01/19 Пнд 22:59:50 1337040180
Аноним 28/01/19 Пнд 23:40:43 1337076181
Untitled.png (45Кб, 674x965)
674x965
>>1337040
Проблема в том, что я не знаю вводит ли юзер инпутом число... Инпут то в String хранится и нет смысла матчить на тот же i32.
Аноним 28/01/19 Пнд 23:54:58 1337081182
Аноним 29/01/19 Втр 05:54:54 1337187183
>>1336956
Так оно, кстати, работает. Но, вишь какое дело, мне удобнее задать все константы в главном модуле, чтобы либы подхватывали их оттуда. Иначе мне придётся держать кучу констант для кучи либ (размеры массивов, пути, вот это всё) и при изменении каждый раз лазить в эти либы.

Ещё такое: как сделать тесты в отдельном крейте? Делаю по манулам, какая-то хуйня получается - или ошибка импорта, или 0 тестов пассед из 0. Если есть линк на гитхаб с рабочим вариантом, буду оч признателен.
Аноним 29/01/19 Втр 10:25:33 1337249184
>>1337187
Ёпты, нашёл решение. В кобылью сраку отдельные крейты и [lib], всё нужно делать через mod.
Аноним 29/01/19 Втр 11:19:43 1337279185
Есть ли в Расте дженерики?
Аноним 29/01/19 Втр 11:29:17 1337286186
>>1337279
Нет, обещают добавить в Rust 2
Аноним 29/01/19 Втр 11:36:13 1337288187
>>1337286
А модули тоже отложили до Rust 20? :/
Аноним 29/01/19 Втр 14:01:57 1337352188
Аноним 29/01/19 Втр 14:40:04 1337377189
>>1337352
почему кое где есть ; в конце строки а кое где нету?
Аноним 29/01/19 Втр 14:41:14 1337378190
>>1337377
; превращает выражение в ()
fn foo() -> () { 42; }
fn bar() -> i32 { 42 }
Аноним 29/01/19 Втр 14:41:30 1337379191
Бля а чего классы вообще выпилили?
Аноним 29/01/19 Втр 14:43:53 1337380192
>>1337379
Да, потому что они создают гораздо больше проблем, чем решают.
Аноним 29/01/19 Втр 14:45:39 1337382193
Аноним 29/01/19 Втр 14:46:42 1337384194
>>1337382
Парадигма которую используют через жопу.
Используй Трейты и будет тебе норм.
Аноним 29/01/19 Втр 14:47:33 1337385195
Аноним 29/01/19 Втр 15:13:23 1337398196
>>1337384
>Парадигма которую используют через жопу.
Это кто такое сказал?
Аноним 29/01/19 Втр 15:14:41 1337399197
Аноним 29/01/19 Втр 15:26:42 1337404198
А что вообще с багами? Реально то игру вообще написать и не наткнуться на какую нибудь мистическую хуйню?
Аноним 29/01/19 Втр 15:27:40 1337405199
>>1337404
Реально. Правда приличных законченных движков еще нет.
Аноним 29/01/19 Втр 15:36:43 1337414200
>>1337405
Аметист и пистон не считаются?
Аноним 29/01/19 Втр 15:42:58 1337416201
>>1337414
Аметист активно пилят и вроде как частенько ломают АПИ.
Пистон кажется перестали развивать.
Еще есть ggez, но там тоже часто ломают апи.
Аноним 29/01/19 Втр 16:07:52 1337429202
А есть ли в этих движках физическая модель? Я так понимаю главная их цель конектится к какому нибудь OpenGL по сишному интерфейсу и отдавать юзеру Растовый интерфейс для рисования?
Аноним 29/01/19 Втр 16:13:00 1337431203
>>1337429
По дефолту вроде нет. Кажется в аметист планировали добавить.
Есть https://nphysics.org/
Аноним 29/01/19 Втр 16:16:11 1337432204
>>1337431
Бля нах он нужен тогда? Самому ебаться с сишными запросами? Как у раста с C вообще?
Аноним 29/01/19 Втр 16:23:57 1337433205
>>1337432
Как у тебя C тут всплыл?

> Как у раста с C вообще?
Как и у всех, всё хорошо. Это же C.
Аноним 29/01/19 Втр 16:27:40 1337436206
>>1337432
Кто "он" и, действительно, при чем тут "ебаться с си"?
Аноним 29/01/19 Втр 16:31:21 1337439207
>>1337436
Имеется ввиду игровой движок на расте. При том что движок должен уметь рисовать, вот я и говорю нах движок нужен если самому придётся брать то что этот чудодвижок нагородит делать из всего этого чуда вертексы и к openGL обращаться
Аноним 29/01/19 Втр 16:34:39 1337440208
>>1337439
Что ты вообще несешь? Ты спрашивал про физ. движок. Физ движка из коробки нету.
Рендерит движок сам.
Аноним 29/01/19 Втр 16:37:51 1337442209
А вообще демки поглядел—пиздато. А как он так в браузере рисует?
Аноним 29/01/19 Втр 16:38:44 1337443210
>>1337440
Ты прикалываешься? Вверху была ссылка, там физический движок! Но он не умеет рендерить да?
Аноним 29/01/19 Втр 16:42:34 1337446211
>>1337443
Анончик.
У тебя есть игровой движок, скажем Аметист. Его задача дать тебе ECS и рендерить твою хуйню, что он с успехом и делает. Т.к. очевидно, ему нужна либа для работы с матаном, он юзает https://www.nalgebra.org
Отдельно от всего этого, есть еще физ. движок который используетт же либу для математики: nphysics.
Да, физ. движок ничего не рисует.
Аноним 29/01/19 Втр 16:44:07 1337447212
>>1337443
Возьми графический движок и физический движок. И делай своих игорей.
Аноним 29/01/19 Втр 16:48:46 1337448213
>>1337446
А блять, я думал np и есть Аметист
Аноним 29/01/19 Втр 16:49:40 1337449214
Аноним 29/01/19 Втр 19:57:31 1337520215
Аноним 29/01/19 Втр 21:20:50 1337576216
15487835664250.jpg (36Кб, 472x698)
472x698
>>1337520
Внутренности раста
Аноним 30/01/19 Срд 08:10:21 1337727217
1322152087635.jpg (47Кб, 373x500)
373x500
>>1337187
>задать все константы в главном модуле
По-моему ты неправильно воспринимаешь main.rs.
lib.rs - как раз "главный" модуль крейта-библиотеки.
main.rs - это отдельный крейт, который собирается в бинарник (bin-крейт), он вообще не часть библиотеки порождённой lib.rs.
Аноним 30/01/19 Срд 08:13:23 1337728218
JonathanBlow-GD[...].jpg (70Кб, 880x552)
880x552
Аноним 30/01/19 Срд 12:51:20 1337815219
>>1337728
Тиресно, хотя я раст нихуя не знаю
Аноним 30/01/19 Срд 22:02:31 1338243220
Untitled.png (27Кб, 750x756)
750x756
Да как его с элементом вектора сматчить то...
Аноним 30/01/19 Срд 22:25:10 1338261221
Untitled.png (41Кб, 719x782)
719x782
Вот непонятно совсем че так.
Аноним 30/01/19 Срд 22:55:26 1338300222
Untitled.png (54Кб, 803x946)
803x946
Пиздец как сложно. А впереди еще всунуть это все в заloopу
Аноним 31/01/19 Чтв 00:10:46 1338357223
>>1338243
Ну то что ты написал это херня. Паттерн должен быть, я даже не знаю как сказать, константным выражением что ли (я не уверен, как правильно обозвать термин). Твой код можно переписать в таком виде:

match input_department.as_str() {
x if x == &departments[0] => ... ,
x if x == &departments[1] => ... ,
_ => panic!("Unknown departments")
}

Я думаю, что это ограничение (невозможность указать результат вызова функции как паттерн) связано с тем что синтаксис x(y) в паттерне все таки означает "Тип x с полем y, где содержимое x.0 привязывается к y и может использоваться после =>". Если бы мы могли слева от => указывать вызов функции, была бы неопредленность.

Аноним 31/01/19 Чтв 08:41:19 1338443224
>>1338300
Братишка, это не ты случаем здесь летом руби изучал?
Аноним 31/01/19 Чтв 19:33:28 1338775225
>>1338243
Че ты вообще пытаешься сделать?
Аноним 31/01/19 Чтв 22:44:53 1338907226
>>1338775
Видимо пытается сматчить некий инпут с заранее заданными значениями и если такое есть, то где-то сохранить.

Я бы на его месте перестал изъебываться и написал что-то типа такого:

if departments.contains(&input_department) {
hm.insert(input_name, input_department)
} else {
panic!("ВСЕ ПИЗДЕЦ НАХУЙ!")
}
Аноним 01/02/19 Птн 00:18:32 1338987227
>>1338443
Не. Никогда таким не интересовался.
>>1338907
Та ифами как-то уныло. То-ли дело ёба match.
И до сих пор непонятно че оно ныло на вектор и нормально хавало перемнную на которую перед этим засаайнил тот же элемент вектора но это две лишних сточки кода.
Аноним 01/02/19 Птн 00:24:08 1338993228
>>1338357
Дружок-пирожок но тут же >>1338261 я указываю обычной переменной и всё работает. И причем про мач сказано что оно матчит с тем что слева от арма ака =>
Аноним 01/02/19 Птн 01:20:01 1339010229
>>1338993
Нихуя оно не работает у тебя. Ты не сравниваешь то что ты передал в match с ранее заданным xuy, ты просто взял и то что ты передал в match связал с именем xuy в рамках конкретного => . При этом у тебя ЛЮБОЙ вход будет удолетворять первой строчке match'а, и остальные компилятор должен пометить warning'ом как недостижимые.

Вот тебе пример, если нужно нагляднее: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=906665de9ed8d1bd6a26e3bacd693070
Аноним 01/02/19 Птн 12:05:39 1339208230
Аноним 01/02/19 Птн 21:35:34 1339615231
я вот счетаю, что rust - язык для настоящих мужчин, которые не бояться анальных кар компилятора с его заимствованиями и лайфтаймами

так же я считаю, что все хейтеры этого языка - простые неосиляторы, которые своими вскукаречными потугами пытаются восстановить своё значение в этом мире, но мы то знаем (что они обычные кукаретики)
Аноним 01/02/19 Птн 22:05:22 1339654232
>>1339615
Поддвачну. Я, вот, когда на других языках пишу, то такую хуйню горожу, аж самому противно, но не могу остановиться - конпеляется же. А тут как-то само получается стройно и почти красиво, я аж загордился чутка и блинов поел.
Аноним 01/02/19 Птн 22:29:38 1339683233
Аноним 01/02/19 Птн 22:30:20 1339684234
VJbL1fq - Copy.png (138Кб, 570x585)
570x585
>>1339615
>rust - язык для настоящих мужчин
Но я девочка_внутри и я люблю раст.
Аноним 01/02/19 Птн 22:31:49 1339685235
>>1339684
для сексуальных меньшинств тоже найдется место в необъятных чертогах ржавчины. так что раздевайтесь и смажьте жёпу для компилятора
Аноним 01/02/19 Птн 22:38:42 1339696236
>>1339615
>язык для настоящих мужчин, которые не бояться анальных кар компилятора
...Сплетаемся в объятьях братских. Крепкие руки крепкие тела обхватывают. Целуем друг друга в уста. Молча целуем, по-мужски, без бабских нежностей. Целованием друг друга распаляем и приветствуем. Банщики между нами суетятся с горшками глиняными, мазью гатайской полными.Зачерпываем мази густой, ароматной, мажем себе уды. Снуют бессловесные банщики аки тени, ибо не светится у них ничего.

— Гойда! — восклицает Батя.
— Гойда-гойда! — восклицаем мы.

Встает Батя первым. Приближает к себе Воска. Вставляет Воск в батину верзоху уд свой. Кряхтит Батя от удовольствия, скалит в темноте зубы белые. Обнимает Воска Шелет, вставляет ему смазанный рог свой. Ухает Воск утробно. Шелету Серый заправляет, Серому — Самося, Самосе — Балдохай, Балдохаю — Мокрый, Мокрому — Нечай, а уж Нечаю липкую сваю забить и мой черед настал. Обхватываю брата левокрылого левою рукою, а правой направляю уд свой ему в верзоху. Широка верзоха у Нечая. Вгоняю уд ему по самые ядра багровые. Нечай даже не крякает: привык, опричник коренной. Обхватываю его покрепче, прижимаю к себе, щекочу бородою. А уж ко мне Бубен пристраивается. Чую верзохой дрожащую булаву его. Увесиста она — без толчка не влезет. Торкается Бубен, вгоняет в меня толстоголовый уд свой. До самых кишок достает махина его, стон нутряной из меня выжимая. Стону в ухо Нечая. Бубен кряхтит в мое, руками молодецкими меня обхватывает. Не вижу того, кто вставляет ему, но по кряхтению разумею — уд достойный. Ну, да и нет среди нас недостойных — всем китайцы уды обновили, укрепили, обустроили. Есть чем и друг друга усладить, и врагов России наказать. Собирается, сопрягается гусеница опричная. Ухают и кряхтят позади меня. По закону братства левокрылые с правокрылыми чередуются, а уж потом молодежь пристраивается. Так у Бати заведено. И слава Богу…
Аноним 01/02/19 Птн 22:45:54 1339700237
>>1339696
и всё же воистину славный язык
Аноним 01/02/19 Птн 23:16:06 1339716238
>>1339208
>#![feature(slice_patterns)]
Вон оно че, Михалыч.
Аноним 01/02/19 Птн 23:16:45 1339718239
Аноним 01/02/19 Птн 23:32:50 1339729240
>>1339696
Блин, начал читать и думал мож как переделал забавно, а там просто цитата (хотя автор великий, конечно, как и повесть).
Аноним 02/02/19 Суб 08:15:52 1339917241
>>1339683
Со сметаной и творогом - заебок. Ещё чай зелёный покрепче, с вареньем кислым.
Аноны, у кого-нить есть пример кода/крейта для многопоточного заполнения вектора строго по индексам? Сам примерно знаю, как сделать, но боюсь подводных граблей, да и велосипедить не охота.
Аноним 02/02/19 Суб 11:44:44 1340003242
>>1339917
Заверни в Arc<Mutex<Vec<T>>>
Аноним 02/02/19 Суб 15:33:56 1340117243
Аноним 02/02/19 Суб 20:40:51 1340303244
>>1340003
Мьютексы в моей задаче оказались только помехой, зря время потратил. Потом вообще непонятно, как из них данные раззалупливать - оригинал под обёрткой остаётся мувед, дроп не спасает. Если кто знает, поясните, плз, вдруг таки буду их юзать.
Сделал проще: в тредах возвращаю тупл с индексом и данными, а потом получаю в главном через джойн и впендюриваю по индексу. Впендюриваю тоже как-то чрезжопно, приходится сперва забивать result_vec "пустыми" значениями, если кто знает лучший путь, буду рад.
for t in threads {
let (idx, res) = t.join().unwrap();
result_vec.swap_remove(idx);
result_vec.insert(idx, res);
}
Аноним 02/02/19 Суб 20:42:24 1340305245
...а если так
for t in threads {
let (idx, res) = t.join().unwrap();
result_vec.swap_remove(idx);
result_vec.insert(idx, res);
}
Аноним 02/02/19 Суб 20:43:08 1340308246
...ну а так
for t in threads {
____let (idx, res) = t.join().unwrap();
____result_vec.swap_remove(idx);
____result_vec.insert(idx, res);
}
Аноним 03/02/19 Вск 01:11:33 1340497247
>>1340308
Было бы неплохо, если ты таки объяснил, что ты пытаешься сделать.
Аноним 03/02/19 Вск 04:06:14 1340584248
>>1339917
>Аноны, у кого-нить есть пример кода/крейта для многопоточного заполнения вектора строго по индексам? Сам примерно знаю, как сделать, но боюсь подводных граблей, да и велосипедить не охота.

Но нахуя? Многопоточность - это когда у потоков изолированные данные и взаимодействие онли через ридонли-сообщения. Привыкай, сейчас на десктопы уже НУМА в лице тредрипера от амуде поперла и дальше будет только хуже, техпроцессы закончились и старая добрая SMP архитектура с одним пулом и контроллером оперативы уходит в прошлое.
Аноним 03/02/19 Вск 06:59:36 1340600249
Pokak 2.jpg (36Кб, 736x699)
736x699
>>1339716
Это линк на старые доки.
В 2018-edition слайс патерны включены.
Аноним 03/02/19 Вск 08:48:54 1340620250
>>1340497
Нужно перемолотить некоторое количество наборов данных и сложить в массив в строго определённом порядке. Однопоточно проблем нет - делай push и все дела.
Аноним 03/02/19 Вск 12:41:38 1340691251
Аноним 03/02/19 Вск 13:19:24 1340704252
>>1340691
>answer = result;
век живи - век учись. Сколько примеров не смотрел, видел заполнение векторов только через push. В остальном я практически так и сделал, только через return. Ещё такое - ты про join просто забыл или там какой-то фокус, что он и не нужен?
Аноним 03/02/19 Вск 13:20:38 1340705253
Макак, заебал, сделай отключение разметки в программаче.
Аноним 03/02/19 Вск 13:37:26 1340715254
>>1340704
Джойн нужен если ты хочешь дождаться завершения выполнения треда. В моем случае мне это не нужно, т.к. мне важно получить значения, что происходит через канал.
Аноним 03/02/19 Вск 14:09:40 1340741255
>>1340715
т.е. rx.recv() ждёт завершения? Тогда это тот же джойн. Пока я вижу смысл rx/tx в построении каналов между дочерними тредами, использовать это в главном выглядит излишеством.
Аноним 03/02/19 Вск 14:10:46 1340742256
Ну сделай на джойнах, какая разница. Если тебе важно чтобы порядок получения был последовательным.
Аноним 03/02/19 Вск 17:08:41 1340832257
>>1340620
А почему бы не использовать rayon? Он же специально для такой хуйни заточен. https://github.com/rayon-rs/rayon
>>1340691
В rayon'е можно сделать в одну сроку:
let answer: Vec<usize> = (0..(num_threads as usize)).into_par_iter().map(|i| do_some_stuff(i)).collect()
Аноним 03/02/19 Вск 17:24:13 1340843258
13246510780319.jpg (72Кб, 743x957)
743x957
Чё там с доступом к DOM API (и вообще WEB API) из wasm'а кто-нибудь знает?
Я в курсе что его пока нет, но работа-то ведётся, черновики стандарта какие-нибудь есть?
Аноним 03/02/19 Вск 17:29:46 1340852259
>>1340843
> Чё там с доступом к DOM API (и вообще WEB API) из wasm'а кто-нибудь знает?
Называется оно WebAssembly Host Bindings.
> Я в курсе что его пока нет, но работа-то ведётся, черновики стандарта какие-нибудь есть?
https://github.com/WebAssembly/host-bindings
Аноним 03/02/19 Вск 18:38:53 1340905260
>>1340832
>rayon
Едрить, оверкилл. Я тут >>1340303 сильно протупил - у меня же есть вектор с тредами, которые уже отсортированы, поэтому push в вектор с результатами будет идти в заведомо верной последовательности. А я, чёт, продолжал действовать так, как будто последовательность произвольна (как было бы при заполнении данных изнутри треда).
Аноним 03/02/19 Вск 18:40:01 1340907261
>>1340905
> Едрить, оверкилл.
Почему оверкилл? Очень удобная штуковина, на самом деле.
Аноним 03/02/19 Вск 19:00:01 1340918262
>>1340907
Потому что оно сильно увеличит время компиляции, хотя вместо этого можно просто написать 3 лишних строчки кода. Вот если ему надо много таких штук делать, тогда есть смысл взять либу.
Аноним 03/02/19 Вск 19:03:26 1340921263
>>1340918
> Потому что оно сильно увеличит время компиляции
Нет, не сильно. Это ж тебе не C++ с шаблонами. Вот у меня в небольшой программе с rayon'ом:
Finished release [optimized] target(s) in 11.57s
Аноним 03/02/19 Вск 19:11:15 1340928264
>>1340921
> Compiling no-rayon v0.1.0 (/tmp/no-rayon)
> Finished dev [unoptimized + debuginfo] target(s) in 0.48s
vs
> ... rayon ...
> Finished dev [unoptimized + debuginfo] target(s) in 4.11s

Впрочем это холодная сборка после cargo clean.
После первой компиляции оно одинаково быстрое. Разве что CI бесить со временем будет, что вряд ли значимо в данном случае.
Аноним 03/02/19 Вск 19:26:58 1340942265
51gtUcYaPrL.SX4[...].jpg (40Кб, 406x500)
406x500
Аноним 03/02/19 Вск 19:53:23 1340981266
Screenshot2019-[...].png (21Кб, 850x92)
850x92
Аноним 03/02/19 Вск 20:21:20 1341021267
>>1340907
Мне больше нравится писать ванильно. Это, конечно, збс, что карго вот так легко позволяет подключать крейты, но если использовать эту фичу слишком интенсивно, проект станет похож на нодовый с крейтами уровня left-pad и isarray.
Кстати, даже логика rayon примерно та же, что у многих нодовых модулей - добавляет новые функции (into_par_iter, par_iter) для существующих структур. Я так погляжу, разрабы раста многое подсмотрели у жс и у ноды.
Аноним 03/02/19 Вск 20:23:19 1341024268
>>1341021
Кек. Нет, братишка, манки-патчинг из жс-дристни ничего общего не имеет с тем, что делает rayon.
Аноним 03/02/19 Вск 20:24:29 1341027269
>>1341021
> Кстати, даже логика rayon примерно та же, что у многих нодовых модулей
Ты наверное кроме C++ ни на чём не кодил. В C++ действительно другая крайность, что подключение любой библиотеки, кроме header-only превращается в ад. А так подобное есть в любом современном (и не только) языке. В той же жаве очень удобная система пакетов. У C# тоже.
Аноним 03/02/19 Вск 21:05:28 1341080270
>>1341024
Их убогое vs наше великое. А суть та же - куча зависимостей тянет кучу зависимостей, каждая из которых экономит в среднем 7 строк кода на проект.
Аноним 03/02/19 Вск 21:11:33 1341089271
>>1341080
Ты же даже не понимаешь о чем речь, правда?
Я говорил о разъебывание прототипов которое глобально видно всем, а не о количестве зависимостей.
Аноним 03/02/19 Вск 21:17:16 1341096272
>>1341089
А я вообще не об этом, а о том, что порочна сама идея подключения внешнего модуля ради экономии пары строк. Что где-то оно хуёво реализовано с технической стороны, это уже частности.
Аноним 03/02/19 Вск 21:30:06 1341108273
>>1341096
Если впадать в крайности в стиле нпм, то конечно порочна. Впрочем подход goвна, где в каждом проекте копипаста min/max и прочих вещей не намного лучше.
Аноним 04/02/19 Пнд 19:49:25 1341807274
20190205-72b5f.png (45Кб, 586x158)
586x158
20190205-13251.png (50Кб, 643x152)
643x152
Анон, зацени, как можно сделать. Умный конпелятор сам понял, что итерировать нужно до окончания конечного итератора (cycle() делает бесконечный) - охуеть.
Например, такое нужно для суммирования сигналов со сдвигом по фазе.
Аноним 04/02/19 Пнд 22:15:57 1341926275
hqdefault.jpg (12Кб, 480x360)
480x360
Блецкий педоRust не дает засунуть мутабл борроу и ссылку в одну область видимости поэтому в loop input из консольки и insert в хэшмапу не получается.
Аноним 05/02/19 Втр 00:24:29 1342017276
Аноним 05/02/19 Втр 09:17:57 1342116277
>>1342017
я не он, но проблемс в том, что если нужно как-то модифицировать ввод, а не напрямую кидать в хэшсет, канпелятор шлет нахуй
Аноним 05/02/19 Втр 16:33:29 1342324278
Аноним 05/02/19 Втр 16:46:31 1342331279
>>1342116
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=093cfdd97d4c7697f767b34c1aa2b24c
"Ввод с консольки" и "Модицифированный ввод" - это разные сущности по семантике. Значит, имеет смысл положить их в разные переменные. Если будет что-то парсить in-place, ты заколебешься абсолютно в первом же нетривиальном случае. Проще сделать новый объект FP-параша стайл.
Аноним 05/02/19 Втр 21:25:44 1342492280
Untitled.png (82Кб, 1089x960)
1089x960
Аноним 05/02/19 Втр 21:26:08 1342493281
>>1342324
>>1342331
он не я, но я пытался рассказать про ошибку, которая случается из-за несколько других вещей
вкатываясь из .NET, сложновато держать в голове все это borrowing/owning, а потом еще пытаться доказать компилятору, что все это должно работать по идее
Аноним 05/02/19 Втр 21:26:52 1342494282
>>1342492
sooqa, ты тоже утонул на этом задании из растбука
(
Аноним 05/02/19 Втр 21:26:58 1342495283
Аноним 05/02/19 Втр 22:00:22 1342507284
>>1342495
> ведь можно модифицировать input

Чтобы сделать длинную строку, нужно выделить под неё память и скопировать данные из маленькой строки. Когда ты в плюсах пишешь что-то типа
string a = "qqqq";
a += a;
Ты по сути делаешь то же, что и в случае
string b = a + a;
Только деструктор a вызывается раньше. Никакой "модификации" не происходит, нужно ровно такое же число операций.

>>1342492
Тебе, по идее, нужно определить input_name и input_department в теле loop. Сейчас они "поглощаются" на первой итерации при добавлении в словарь и становятся невалидными, поэтому компилятор и ругается.
Аноним 05/02/19 Втр 22:36:03 1342528285
Untitled.png (92Кб, 1096x975)
1096x975
>>1342494
На самом деле нет. Там не сказано лезть в заloopу. Если убрать loop то задание решено.
>>1342507
Не прокатило.
Аноним 05/02/19 Втр 22:45:31 1342536286
E9DNk2LX400x400.jpg (24Кб, 351x351)
351x351
>>1342507
С++ практически не знаю, но из моих представлений при добавлении строки к строке происходит примерно следующее:
1. Проверяется capacity строки и если памяти уже выделено достаточно то строка-аргумент сразу копируется туда. (Т.к. пямять под строку при первоначальной аллокации/реалокациях, насколько я понимаю, выделяется с запасом.)
2. Если недостаточно - по происходит реаллокация памяти, причём, вроде как, перенос строки в другое место при этом не обязательно происходит, т.к. может оказаться что свободное место есть и рядом.
Так что эквивалентно это созданию новой строки только в худшем случае - и то наверняка в расте при полноценном создании новой строки больше действий выполняется.
Аноним 05/02/19 Втр 23:13:38 1342551287
2019-02-05-2117[...].png (57Кб, 905x513)
905x513
Аноним 06/02/19 Срд 00:24:22 1342566288
>>1342528
Блять. trim возвращает слайс на строку, которая всё также умирает на следующей итерации. Нужно вставлять &input_name.trim().to_string();

Но это говнокод, вынеси тримнутые строки до match, а в самом match используй их без взятия ссылок.
let input_name = &input_name.trim().to_string();
...
hm.insert(input_name, &department[0]);
Аноним 06/02/19 Срд 09:37:34 1342704289
>>1342551
я, конечно, понимаю, что это не самое сложное задание, но по книге такая хуйня как
fn parse<'a>(mut words: impl Iterator<Item=&'a str>)
еще неизвестна
Аноним 06/02/19 Срд 12:38:39 1342785290
>>1342704
Мне просто было жалко аллоцировать память.
Можно было бы сделать split_whitespace().collect::<Vec<_>>()
и дальше работать уже с вектором вместо итератора.
Аноним 06/02/19 Срд 18:05:19 1342942291
https://pastebin.com/SRS5P0yK
.clone(), .clone(), .clone()
по большому счету, не считая логгирования, я использую dept и empl только по разу. как заставить компилер понять это и не рассказывать мне про borrowing?
(или ЧЯДНТ)
с другой стороны, насколько такой клонинг убивает перфоманс? (inb4 я из управляемых языков, там вообще похуй на такую парашу)
Аноним 06/02/19 Срд 19:27:13 1342973292
>>1342942
.to_owned() попробуй, если и правда по разу.
Аноним 06/02/19 Срд 21:26:09 1343046293
1488066200298.jpg (45Кб, 288x358)
288x358
Untitled.png (112Кб, 974x1093)
974x1093
Аноним 06/02/19 Срд 21:59:26 1343065294
1.png (54Кб, 1039x744)
1039x744
>>1343046
У тебя странная ошибка, но этот совет не отменял совет >>1342507 , кек.
Аноним 06/02/19 Срд 22:03:20 1343073295
>>1343065
И че, ранит?
У мя nightly сборка.
Аноним 06/02/19 Срд 22:11:07 1343077296
1.png (18Кб, 557x457)
557x457
>>1343073
Да.
>rustc 1.32.0 (9fda7c223 2019-01-16)
Аноним 06/02/19 Срд 22:11:09 1343078297
>>1343073
>>1343065
А, понел. У мя же мап указан что только ссылки берёт. ака
let mut hm: HashMap<&str, &str> = HashMap::new();
Аноним 06/02/19 Срд 22:28:23 1343085298
>>1343077
Спасибо .Понятен даже стал весь код.
С твоей выдержкой можно медбратом в дурке работать или учителем в спец. интернате для отсталых.
Аноним 06/02/19 Срд 22:37:29 1343092299
>>1343085
>Двачи
>в спец. интернате для отсталых.

Факты сходятся.
Аноним 06/02/19 Срд 22:38:50 1343094300
Едота2.jpg (69Кб, 675x675)
675x675
>>1343092
>Двачи Rust
>в спец. интернате для отсталых.

Факты сходятся.
Аноним 06/02/19 Срд 22:46:01 1343101301
Можно ли делать на ржавом делать биндинги для пистона так же как на плюсах? Думаю какой второй язык взять
Аноним 06/02/19 Срд 22:56:41 1343108302
Аноним 07/02/19 Чтв 08:55:23 1343193303
>>1343046
тебе ж компилятор подсказывает что делать
как вариант, передавать input_name[..], что создаст &str по значению равный оригинальному String
Аноним 07/02/19 Чтв 08:56:50 1343194304
>>1343193
сука, тред не обновился, думал, что ответа нет
Аноним 07/02/19 Чтв 12:22:43 1343288305
Аноним 07/02/19 Чтв 18:01:09 1343485306
>>1342942

> как заставить компилер понять это и не рассказывать мне про borrowing?
Ну так ты если сначала переместишь dept и empl внутри своих and_modify, то все, нет больше твоих переменных. Все правильно.

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

> я из управляемых языков, там вообще похуй на такую парашу
Угу, а потом бекенд, на котором сидит 2 пользователя, не влезает в гигабайт памяти.

В твоем коде можно просто перенести println! выше, до workplaces, все равно код до него дойдет, а println! не захватывает переменные, так что ты сможешь ими далее воспользоваться.

Ну и вообще у тебя как-то странно сделаны твои .entry, .and_modify, .or_insert.
Аноним 07/02/19 Чтв 18:05:30 1343487307
Аноним 08/02/19 Птн 01:09:41 1343739308
mem-900x450.jpg (38Кб, 900x450)
900x450
>Язык не поддерживает утечки памяти и с полностью безопасной работой с памятью.
>Пытаешься линкануть сишную либо, так как писать функционал готовой либы дольше самого клиентского приложения.
>Получаешь утечки памяти и сегфолты из-за скрещивания ежа с ужом.

Аноним 08/02/19 Птн 10:45:29 1343814309
>>1343739
>>Получаешь утечки памяти и сегфолты из-за скрещивания ежа с ужом.
>
Не используй сишные либы с утечками памяти и сегфолтами. Проблема решена!
Аноним 08/02/19 Птн 10:53:53 1343821310
>>1343485
> Все правильно
ну, я понимаю, что всё правильно, мне еще это компилятор рассказывает к тому же.
но вот как я вижу работу кода с .entry().and_modify().or_insert(): я получаю значение empl из хэша по ключу dept, потом либо изменяю его в and_modify или помещаю новое в or_insert, т.е. тут однозначная вилка в логике. но при том, что эти два вызова находятся в одном скоупе, компилер видит захват в and_modify, и потом переиспользование в методе выше его не устраивает по вполне разумным причинам.
в моем случае все эти значения - строки. конечно, неприятно копировать/клонировать все по паре раз,но как-то жить можно. а если бы это были чуть более сложные структуры данных (или не поддерживающие клонирование), то чтобы использовать одно поле для двух разных методов в логике, мне приходится приседать и выдумывать какую-то дичь (или мне так кажется с моим опытом уровня laba2.rs)

> не влезает в гигабайт памяти
предпоследний кастомер очень сильно удивился моим импрувментам дабы сервис не сожрал чуть больше имеющегося памяти, в коде, говоря: ну, пару гигов свурху можно и потребить, мы-то не сильно паримся по этому поводу
так, что да, лул, такое нынче пишется говно
Аноним 08/02/19 Птн 11:13:57 1343829311
>>1343821
> то чтобы использовать одно поле для двух разных методов в логике, мне приходится приседать и выдумывать какую-то дичь

if let entry = hm.get_mut(){
entry.push(string)
} else {
...
hm.insert(...);
}

Интерфейс and_modify добавили ради какой-то монадической НЁХ, но никто не запрещает пользоваться классическим интерфейсом, если он тупо удобнее.
Аноним 08/02/19 Птн 11:42:19 1343838312
>>1343821
А, блин, это Entry API, вообще забыл про него. Ну тогда короче, замени or_insert на or_insert_with (чтобы дефолтное значение генерировалось только если реально надо). Тогда пофигу, что везде clone, ибо оно будет реально выполняться только если будет вызвана соответствующее замыкание. Или можешь сделать так:

*(workplaces.entry(dept.clone()).or_insert_with(|| Vec::new())).push(empl.clone)

Ну и все еще если хочешь избавиться от clone, перетащи println! выше.
Аноним 09/02/19 Суб 10:22:47 1344395313
Аноним 09/02/19 Суб 16:11:06 1344559314
сап двач. Пишет школьник почти 16 лвл. Решил вайти пару месяцев назад, все это время теребил книгу по плюсам (даже прошел половину). Пару дней назад голову ударила моча и понял, что плюсы к тому моменту когда я попиздую работать (это лет через 5-6) плюсы вымрут и везде где можно будет раст. Решил сейчас задрачивать матан и вкатываться в хасскель в целях апа инты. Через год буду выбирать что задрачивать. Ваше мнение по поводу того выстрелит ли раст, аноны?
Аноним 09/02/19 Суб 16:13:42 1344561315
>>1344559
Он уже выстрелил. Даже на hh.ru уже есть вакансии не про крипту. Так что к тому моменту как ты попиздуешь работать предложений будет с головой.
Аноним 09/02/19 Суб 16:19:24 1344572316
>>1344561
В гейропе аналогично будет? Собираюсь в чехии учиться, а это, вроде, голубая карта и нахуй возвращаться. И еще, ты уже работаешь на расте или у вас его юзают (чисто для справки)?
Аноним 09/02/19 Суб 16:25:19 1344580317
>>1344572
Я работаю на расте, да. Как раз гейропе.
Аноним 09/02/19 Суб 17:15:16 1344620318
>>1344580
можешь рассказать подробнее?)
другой анон
Аноним 09/02/19 Суб 17:25:36 1344624319
>>1344620
Лабаем фин-тех штуки. Ничего особенного. По сути набор сервисов которые делаю всякие вычисления и набор апи для этого.
Аноним 09/02/19 Суб 21:08:42 1344767320
>>1344624
это пишется на любом, в общем-то, языке. почему у вас именно раст?
Аноним 09/02/19 Суб 21:27:50 1344785321
>>1344767
Я не он, но отвечу. Потому же, почему и жаба - из-за относительной строгости языка руководству проще быть уверенным, что армия макак-подчинённых не наговнякает.
Аноним 09/02/19 Суб 21:43:42 1344792322
>>1344785
ну чет основная масса софта, судя по такому ответу, как раз ожидает наговняканый продукт от индусов, вместо эффективно работающего приложения
Аноним 09/02/19 Суб 22:20:46 1344828323
>>1343814
>>Не используй POSIX и WinAPI, а еще >100 000 либ системного и прикладного уровня.
>> Когда предложил работодателю, меня уволили.
Аноним 09/02/19 Суб 22:57:42 1344849324
>>1344767
Потому что модно-молодежно.
Сложно на самом деле ответить почему решились, меня в тот момент не было. С технической точки зрения выбор очень удачный.
Аноним 10/02/19 Вск 08:01:34 1344935325
>>1344792
>наговняканый продукт от индусов
Дак индусы как раз и говнякают на жабе по этой самой причине, что в ней всё относительно (того же бидона или сей) строго и иерархично. Например, белые господа могут проектировать интерфейсы, оставляя грязным индусам реализацию.
>>1344828
Да лан тебе ёрничать, не всё так плохо. Раст изначально заточен быть в упряжке с Ц/Ц++ софтом, т.к. прямо сейчас, например, код на расте работает в таком виде в фуррифоксе.
Аноним 10/02/19 Вск 11:17:03 1344979326
>>1344828
Ни разу не сталкивался с сегфолтом внутри ни одной сторонней либы, не говоря уже про POSIX и WinAPI. Они этого добиваются обычно месяцами и годами ебли, но результатом остаётся просто пользоваться.
Аноним 10/02/19 Вск 12:29:40 1344993327
>>1344935
>Раст изначально заточен быть в упряжке с Ц/Ц++ софтом
Пока все либы не перепишут на раст, будут в упряжке, так?
Аноним 10/02/19 Вск 13:30:41 1345022328
>>1344993
>перепишут на раст
Зачем, если они уже есть и работают?
Аноним 10/02/19 Вск 15:18:22 1345087329
fgsfds.png (79Кб, 633x738)
633x738
Такой вопрос. Есть метод для структуры, который должен возвращать Option<&T>. Как из него вернуть ссылку на вот этот дженерик(он - поле другой структуры бтв), обёрнутый в Option<Rc<RefCell<Ещё_одна_структура_нейм<...>>>>? Что ни делаю, компилятор ругается либо на то, что возвращаю ссылку на локальную переменную, либо 'cannot move out of borrowed context'. Что делоть? Как это вообще должно выглядеть. Код на пикриле. Что он говно, я знаю.
Аноним 10/02/19 Вск 15:34:38 1345102330
Аноним 11/02/19 Пнд 17:30:46 1345729331
VSCode: по сейву в файле main.rs применяет автоформат документа, в lib.rs -- нет. шо за уродство
Аноним 11/02/19 Пнд 17:43:13 1345751332
>>1345729
Тормозной редактор на электроне, вот что это за уродство.
Аноним 11/02/19 Пнд 21:14:02 1345955333
>>1345751
как с IntelliJ живется? я привык в Visual Studio, но там, судя по вики, поддержка раста практически нулевая
Аноним 11/02/19 Пнд 21:30:07 1345970334
как работают аттрибуты в расте?
ну вот я добавил #[derive(debug)] и почему от меня больше ничего не требуется?
если это сахар для компилятора, который распарсит поля и вытянет все в строку, то, например, растбук предлагает написать такую еболу: #[derive(PartialEq, Debug)]. есть какая-то дефолтная имплементация PartialEq?
Аноним 11/02/19 Пнд 21:46:39 1345976335
15498078561900.png (111Кб, 512x512)
512x512
Аноним 11/02/19 Пнд 22:12:31 1345993336
>>1345955
Живу в емаксе, зависимость есть. rls конечно то еще дерьмо, но щито поделаешь.
Жабоподелие тоже кривое-косое. И не менее тормозное чем студия на проектах больше привет_мир.
Аноним 11/02/19 Пнд 22:15:09 1345996337
>>1345970
Работают через макросы. Если интересно как конкретно поищи в сорсах стандартной либы эти макросы.
Аноним 11/02/19 Пнд 22:15:43 1345998338
Аноним 11/02/19 Пнд 22:17:04 1345999339
>>1345970
Ну или почитай доку:
https://doc.rust-lang.org/std/cmp/trait.PartialEq.html
This trait can be used with #[derive]. When derived on structs, two instances are equal if all fields are equal, and not equal if any fields are not equal. When derived on enums, each variant is equal to itself and not equal to the other variants.

>>1345996-кун

Аноним 11/02/19 Пнд 22:23:39 1346003340
Аноним 11/02/19 Пнд 23:09:21 1346059341
04.gif (1077Кб, 1000x833)
1000x833
>>1345976
Ну а чего ты ожидал? Может у C++ есть такие рич-веб-фрейворки с темплейтами и прочей хуйнёй? Скажи спасибо что хотя бы уже
>If your service primarily provides an API to be consumed by other computers, requires little external services and you are happy with writing most SQL yourself, then Yes, You Can!
Кстати, а что с этим всем у goвноедов? У них есть аналог Джанго/Фласка?
Аноним 11/02/19 Пнд 23:11:02 1346063342
Аноним 11/02/19 Пнд 23:12:35 1346066343
Аноним 11/02/19 Пнд 23:15:11 1346069344
>>1346066
Я вот проверяю что я актуальные доки читаю - и ты проверяй.
Аноним 11/02/19 Пнд 23:19:58 1346073345
Аноним 11/02/19 Пнд 23:21:07 1346075346
>>1346073
Ссылка хорошая, одобряю, но тому анону не совсем подходит.
Аноним 12/02/19 Втр 16:29:45 1346368347
есть какая-нибудь практическая польза от возврата экземпляра типа Self? ну, не думаю, что это все ради "мне впадлу писать название типа, давайте засахарим"
Аноним 12/02/19 Втр 16:40:16 1346375348
fgsds.png (5Кб, 307x210)
307x210
Аноним 12/02/19 Втр 16:50:28 1346379349
>>1346375
ну замени -> Self на -> Mamkoo, нихуя не изменится

разве что в конструкциях типа impl<T: Govno> Pahom for T { }, но я не уверен, что там не будет подводных камней
Аноним 12/02/19 Втр 16:51:03 1346380350
>>1346375
>>1346379
я, падажи. я лупоглазый не увидел трэйт
Аноним 12/02/19 Втр 17:00:25 1346385351
Аноним 12/02/19 Втр 17:06:25 1346391352
После понятного пистона код на расте смотреть просто невозможно. Вы долго привыкали к нему после перехода с других динамических языков?
Аноним 12/02/19 Втр 17:27:14 1346400353
>>1346391
на любой другой неинтерпретируемый язык тебе переходить было бы также тяжело)
Аноним 12/02/19 Втр 17:54:20 1346414354
>>1345976
>>1346059
Зачем в вебе эти поделия когда есть суперразвитый зрелый с кучей либ Rails? Для кого важен перформенс - Elixir/Phoenix.
Зачем?
Аноним 12/02/19 Втр 21:26:59 1346506355
>>1346414
остается что-ли криптовалюты пилить на расте?
мимо
Аноним 12/02/19 Втр 23:07:32 1346550356
Я так понял из крестов больше перфоманса можно выжать, чем из раста.
Аноним 12/02/19 Втр 23:49:42 1346562357
>>1346550
>>1346550
Хуй поймёшь, зависит от конкретной задачи и читов. В целом по тем игрушечным бенчмаркам,что я видел разницы почти нет.
Аноним 12/02/19 Втр 23:56:25 1346565358
rgergaergafefew
Аноним 13/02/19 Срд 10:53:46 1346717359
>>1346506
Я тоже мимо. Просто хочу разобраться.
Аноним 13/02/19 Срд 11:16:47 1346736360
>>1346550
Чтобы "выжимать" перформанс, в любом случае нужен ассемблер. Но даже это 3% кода. Для всего остального единственные важные свойства - отсутствие рантайма и GC. На плюсах у тебя тупо не будет времени оптимизировать свой код, потому что ты будешь отлавливать баг UB. А USB не станет работать быстрее потому что ты экономишь 10 тактов на проверке границ, когда делаешь системный вызов.
Аноним 13/02/19 Срд 11:35:00 1346743361
>>1346414
Популярные веб-фреймворки спиздили кучу фич у рельс, настолько, что затраты на изучение нового языка перестает быть столь выгодным. А поскольку есть уже множество готовых погромистов на пыхе\пистоне, то легче выучить один фреймворк.
Ну и еще устоявшееся мнение, что рельсы уже все, а руби это фреймворк одного языка
Аноним 13/02/19 Срд 12:25:36 1346763362
0.jpeg (105Кб, 1200x900)
1200x900
>>1346743
Мне кажется что рельсы достигли такого уровня, что дальше развиваться особо некуда уже в рамках их предметной области (блогов за 15 минут кек). Поэтому и "всё".
Сам сейчас подумываю с рельсов на Элексир/Феникс попробовать перейти, т.к. другая парадигма, на порядки лучший перформанс - это открывает новую предметную область. Плюс эта платформа используется в продашкене какое-то время, уже проверена.
Но зачем кому-то еще один веб-фреймворк на Расте? Потому что ты фанбой Раста? Быть фанбоем одного языка в 2019 не вижу никакого смысла. Объясните, чего я не догоняю?
Аноним 13/02/19 Срд 12:35:55 1346767363
>>1346763
При этом Руби - реально классный язык, работа с которым приносит удовольствие.
Аноним 13/02/19 Срд 14:48:55 1346854364
>>1346763
Веб-фреймворки делают под все языки, даже под С. Хуле ты тут спрашиваешь? Иди спроси у авторов этих фреймворков.
Аноним 13/02/19 Срд 15:28:37 1346871365
>>1346854
Авторам фреймворков может быть тупо по-фану, или фанбои своих языков. Я хочу спросить у людей, которые делают выбор между фреймворками. Свой выбор я описал.
Аноним 13/02/19 Срд 15:41:19 1346880366
>>1346767
Два чаю, он офигенный. Просто пишу на нём на работе и радуюсь жизни. Единственное плохое только то, что эти ощущения приходится совмещать с кучей легаси на пхп и версткой.
Аноним 13/02/19 Срд 15:54:50 1346888367
>>1346880
Хуй знает что там офигенного. Интеллисенса из-за дигамикодрисневости нет, какие там методы у объекта - хуй поймет, лезь в документацию.
Аноним 13/02/19 Срд 16:06:05 1346898368
>>1346888
как и любойе языкговно без статических типов
Аноним 13/02/19 Срд 16:08:04 1346899369
>>1346888
Т.к. в хорошем коде (а в Руби мире культ хорошего кода) у объекта не бывает много открытых методов, то их можно все держать в голове, а лишь изредка залезать в доку меня напрягает.
С другой стороны, получаешь мощное метапрограммирование (отдельный лайк за простую реализацию DCI), отсутствие тонн бойлерплейта, красивый DSL для тестирования, консистентность, выразительность и изящность.
Я бы уже и рад перейти на что-то другое для смены обстановки, но Руби так хорош.
Аноним 13/02/19 Срд 16:17:51 1346908370
>>1346899
То есть апишку любой новой библиотеки нужно сначала выучить как стишок, чтобы держать в голове? Такое себе удовольствие.
Аноним 13/02/19 Срд 17:00:14 1346931371
>>1346908
Ну ты ж не будешь по интелисенсу изучать новую библиотеку. Если это библиотека API какого-то сервиса, ты изучешь раз, напишешь враппер с двумя-тремя публичными методами и больше не думаешь о деталях реализации.
Можешь привести свой контрпример, аж интересно.
Аноним 13/02/19 Срд 17:37:47 1346954372
Аноним 13/02/19 Срд 17:45:10 1346957373
>>1346931
Ну падажжи, каждый написанный тобой враппер ты должен в голове держать?
А интеллисенс очень облегчает использование новой библиотеки, с ним в доках ты читаешь о принципах и основных объектах, детали же тебе подсказывает интеллисенс прям во время написания кода.
Аноним 13/02/19 Срд 17:48:14 1346960374
>>1346767
Какие языки кроме Руби ты пробовал?
Аноним 13/02/19 Срд 17:51:47 1346964375
>>1346957
Почему каждый, только те с которыми работаешь вот сейчас.
Я не спорю что интелисенс удобен, но это разумная плата за метапрограммирование кмк.
Если работаешь с объектами, у которых 100500 методов, необходимость интелисенса повышается. Если в ходу single responsibility principle, и программирование - это по сути композиция, то понижается.
Аноним 13/02/19 Срд 17:56:58 1346966376
>>1346964
А какая разница, выучить 20 методов у одного класса или по 5 методов у 4 классов?
Аноним 13/02/19 Срд 18:15:20 1346981377
>>1346899
> в Руби мире культ хорошего кода
Как-то (в ~2009, охуеть) прикручивал к тикетовке (типа багрепортилка для дежурных админов на хостинге) жаббер-бота, чтобы на мессаги оперативно реагировать. Это был единственный мой опыт на руби и оно даже работало. Дак я там такого наговнякал, страшно вспомнить.
Хорошо, что в Руби мирке никто про это не узнал, а то вломили бы пизды - мама не горюй.
Аноним 13/02/19 Срд 18:18:23 1346982378
vscode-solargra[...].gif (661Кб, 600x400)
600x400
>>1346966
Я не говорю выучить, я говорю держать в голове. Не работая с конкретной кодовой базой, ты эти 20 методов забудешь через какое-то время. Когда я переключаюсь на задачу из другой области проекта, я стараюсь из своей памяти выгрузить инфу по прошлой задаче, которая сейчас мне не нужна.
Разница в том, что во втором случае информация структурирована, и воспринимается легче. Это одна из причин, по которой ООП > процедурного.
Кстати, для Руби есть IDE RubyMine с автокомплитом, не знаю насколько умным, и только что загуглил - экстеншен для VS Code, пикрелейтед.
Но Ruby это не PHP, где надо постоянно вспоминать в каком порядке аргументы в array_search, а в каком в strpos. В Ruby действует Principle of Least Surprise.
Аноним 13/02/19 Срд 18:29:50 1346995379
Хотел перекатиться на Раст, но думаю, ну нахуй. Вернусь ка я к Си и Си++.
Аноним 13/02/19 Срд 18:36:37 1346998380
>>1346995
Держи в курсе. не держи
Аноним 13/02/19 Срд 18:43:47 1347003381
>>1346998
Держу, а то тред мертв.
Аноним 13/02/19 Срд 19:38:00 1347050382
Раст отсасывает у джавы по перформансу во всех задачах.
Аноним 13/02/19 Срд 20:25:57 1347081383
14916626096380.jpg (46Кб, 390x470)
390x470
Аноним 14/02/19 Чтв 10:35:01 1347347384
>>1347050
особенно в задаче "выжри всю память на хелло ворлд"
Аноним 14/02/19 Чтв 22:26:38 1347733385
требования в растовакансии:
>Multithreading and Asynchronous concepts
в растбуке не нашел чего-то, отдаленно напоминающее асинхронность (в понятиях .NET, nodejs, etc.). это копипаста не очень умной хрюши писанины не очень умного челебоса, или какое-то приблизительное подобие асинхронности в rs все-таки есть?
Аноним 14/02/19 Чтв 22:31:49 1347737386
>>1347733
Корутины - это всего лишь приятный сахарок для асинхронности. В том же node.js (да и в js вообще) и .NET асинхронный код можно писать и на промисах (в .NET они имеются тасками) или коллбеках.
Аноним 15/02/19 Птн 02:10:21 1347815387
>>1347733
В растбуке есть про Send и Sync, про Arc<T>, мьютексы, треды и каналы, но в вакансии может имеется в виду в целом. Может там тебя на собесе про STM cпросят. Я чёт охуел с того, что треды не напоминают тебе об асинхронности и мультитрединге. Выросло, блять, поколение, не нюхавшее pthread.h.
Аноним 15/02/19 Птн 10:55:31 1347941388
>>1347815
в моем понимании асинхронность - это не держать тред ожидающим ответа от какого-то не очень быстрого источника информации (жосский диск, БД, сеть, etc.), а суметь сделегировать ему какой-то кусок другого многопоточного кода (или убить нахуй). ну, это идея в .NET такая, как минимум

Arc я не трогал, а про Send/Sync читал по-диагонали. я не говорю, что в буке нет такого, а то, что я - дуанне нашел. но есть повод потеребить главы заново
Аноним 15/02/19 Птн 14:08:28 1348092389
>>1347941
Есть либы, в этом году введут async/await как часть языка.
Аноним 16/02/19 Суб 08:41:46 1348640390
Аноним 19/02/19 Втр 19:18:03 1350974391
Аноны, а давайте посчитаемся, кого сколько раз отфутболили по растовакансиям. Меня вот пока 1 из 1.
Аноним 19/02/19 Втр 21:27:53 1351046392
>>1350974
все обозримые вакансии - криптохуй инженер
пробоваться на такое чисто ради получения представления о релевантных знаниях
Аноним 20/02/19 Срд 04:33:15 1351179393
>>1351046
Да не, меня тут с веб-хуйни отфутболили. Не хотелось бы раскрывать подробности, тк. наверняка в треде я не один такой. Ещё выясним, что ухлёстывали за одной сучкой, и подерёмся.
Аноним 20/02/19 Срд 13:10:21 1351291394
Аноним 22/02/19 Птн 20:01:43 1352738395
Что пописать на расте, если у меня под рукой нет микроконтроллера? Покидайте идей, где можно применить многопоток. Все упражнения из шапки треда уже выполнил. Мимо гофер из соседнего треда хочет вкатиться в раст.
Аноним 22/02/19 Птн 20:45:31 1352760396
Аноним 22/02/19 Птн 20:46:32 1352761397
>>1352738
Возьми какую-нить шнягу, которую писал ранее для себя/бабушки/лулзов и перепиши на расте.
Алсо, всё то же, что пишется на го, пишется и на расте - они конкуренты, тащемта, что бы там не говорили.
Аноним 22/02/19 Птн 21:02:56 1352768398
>>1352738
Коммить@пуллреквесть
Аноним 23/02/19 Суб 10:51:32 1352944399
>>1352738
> Мимо гофер из соседнего треда хочет вкатиться в раст.
Подожди пару месяцев пока они асинхронные функции хотя бы в ночнушке допилят. Иначе после ГОвна будет больно без корутин.
Аноним 24/02/19 Вск 18:18:43 1354143400
image.png (844Кб, 1052x622)
1052x622
>>1327089 (OP)
Если я интырпрайз программист, пишу на Котлине, чтобы не умереть с голоду КРУД к СУБД, но для себя хочу более быстрый и нативный хобби-язык (Котлин-нейтив очевидно не взлетит) в 2019 мне стоит смотреть на современные плюсы или раст? Других вариантов у меня нет, прально? (исключаем Хаскель и голанго-парашу)
Аноним 24/02/19 Вск 19:27:29 1354223401
>>1354143
дай бог, раст пригодится где-нибудь еще кроме блокчейнов
ибо в данный момент широкого пула применений для него нет
Аноним 24/02/19 Вск 23:54:08 1354477402
>>1354143
Из этих двух стульев в твоей ситуации явно раст.
Аноним 26/02/19 Втр 16:37:03 1355760403
Растаны, кто в саблайме пишет? Как его пропердолить, чтобы линтер с clippy был и автокомплит? RustEnhanced если checked на clippy поменять говорит "failed" и не выводит в лог никаких ошибок, хотя сам клиппи нормально работает. Anaconda_rust просто нихуя не делает, хотя я всю нужную ей муть поставил, сорцы тоже, пути добавил.
Аноним 26/02/19 Втр 16:43:12 1355763404
Аноним 26/02/19 Втр 17:06:16 1355783405
Аноним 26/02/19 Втр 17:56:26 1355820406
>>1355760
>Как его пропердолить
установить emacs
Аноним 26/02/19 Втр 22:35:51 1355965407
В расте не запилили for..else? Гуглю и вижу только бугуртящих неосиляторов этой божественной конструкции из пайтона. Нет, скажите, лишнюю переменную заводить, потом её изменять, а потом после цикла проверять действительно проще и удобней?
Аноним 26/02/19 Втр 22:47:35 1355968408
>>1355965
> водить, потом её изменять, а потом после цикла проверять действительно про
Явное лучше неявного.
Аноним 26/02/19 Втр 23:04:21 1355985409
Аноним 27/02/19 Срд 07:57:53 1356107410
>>1355965
>for..else
https://github.com/rust-lang/rfcs/issues/961
пообсуждали и отказались. Нельзя притащить в язык весь существующий в мире синтаксический сахарок, не притащив вместе с ним косяки, присущие уже содержащим его языкам. То, что есть сейчас, уже очень сахарно, по сравнению с сями/плюсами, уж точно.
Аноним 28/02/19 Чтв 18:38:36 1356735411
Поясните как преобразовывать принято числовые типы друг в друга? Вот u32 -> f64: f64::from(chislou) или chislou as f64? А наоборот f64 в u32?
Аноним 28/02/19 Чтв 19:00:41 1356749412
Аноним 28/02/19 Чтв 19:04:38 1356755413
>>1356749
Почему не сделали единообразно? Зачем для int->float рекомендуют from, а для float->int - as?
Аноним 28/02/19 Чтв 19:07:26 1356757414
Аноним 28/02/19 Чтв 19:13:03 1356763415
>>1356755
Потому что from задуман так, чтобы ничего не проебалось.
Аноним 28/02/19 Чтв 19:17:42 1356765416
Аноним 01/03/19 Птн 10:06:20 1357075417
Аноним 01/03/19 Птн 19:09:45 1357320418
>>1357075
Не завезли. Вот этот RFC https://github.com/rust-lang/rfcs/pull/2342 выглядит как самое близкое к этому. Да, там не про if в const fn, но кажется, что если этот RFC примут, то и в const fn завезут быстро.
Аноним 04/03/19 Пнд 18:52:10 1359104419
Посоны, че по тулингу? Как качество код комплита в сранении с джавой?
Аноним 04/03/19 Пнд 20:08:09 1359173420
>>1359104
В vscode без указания типов не всегда комплитится, больше ничего не могу сказать.

мимо-написал-хеллоуворлд-на-расте
Аноним 04/03/19 Пнд 20:17:51 1359179421
>>1359104
По сравнению с джавой очевидно он хуже, но в отличии от джавы писать на расте без иде вполне себе можно.
https://areweideyet.com/
Аноним 04/03/19 Пнд 20:24:33 1359183422
27367AA2-28C0-4[...].jpeg (129Кб, 790x660)
790x660
>>1355965
Видел в расте метки для циклов, можно for else имитировать ими.
Аноним 04/03/19 Пнд 20:35:47 1359195423
>>1359183
Может хотя бы ты юзкейс покажешь?
Аноним 04/03/19 Пнд 20:48:00 1359200424
image.png (95Кб, 527x254)
527x254
>>1359195
Когда лень создавать отдельную функцию, в которой можно из цикла просто вернуть найденное значение, а после цикла выполнить что-нибудь или вернуть дефолтное значение.
Или вот нагрепал код, где это используется, но тут определенно не хватает меток для циклов, чтобы выйти из вложенного.
Аноним 04/03/19 Пнд 20:51:38 1359202425
>>1359200
В расте подобное не пишут, потому что чаще всего у тебя будет нормальный функциональный код с итераторами, а не процедурная параша.
Аноним 04/03/19 Пнд 20:59:32 1359206426
>>1359202
Ну, лично мне for else даром не нужен, я бы и из питона его убрал.
Аноним 04/03/19 Пнд 21:00:43 1359207427
>>1359206
Объясни что на скрине происходит. Без типов решительно невозможно разобраться.
Что такое `aliases & d.keys()`? и какой тип у key?
Аноним 04/03/19 Пнд 21:11:32 1359213428
>>1359207
>какой тип у key?
я мимо, но какая разница? я так понял, дело обстоит с ассоциированным списком. чем бы тот key не был
Аноним 04/03/19 Пнд 21:13:55 1359215429
>>1359213
>с ассоциированным списком
если в питоне объект, как и в жс, - словарь "строка/объект"
Аноним 04/03/19 Пнд 21:16:49 1359217430
>>1359207
aliases_map это словарь, где у каждого ключа (str) есть синонимы (set of str), например:
{"id": {"identifier", "sid"}}

Функция принимает словарь d, который может выглядеть как {"sid": value} и как {"identifier": value}, и возвращает {"id": str(value)}. Попутно вытаскивая первое значение, если value является списком, а также проверяет, чтобы все ключи из aliases_map были на месте.

> aliases & d.keys()
Это пересечение aliases и d.keys(), то есть {"sid", "identifier"} & {"sid"} вернет {"sid"}.
Аноним 04/03/19 Пнд 22:29:33 1359249431
Аноним 04/03/19 Пнд 22:32:33 1359252432
Аноним 04/03/19 Пнд 22:44:36 1359264433
>>1359200
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=2d460eb8bb303b44da87582da7287210

Что-то типа того. Сам пример не скомпилится в песочнице, потому что maplit недоступен %могли бы и добавить, конечно%, а мне лень переписывать.

Сначала думал сделать через HashSet::intersection как в пиздоне, но это настолько катастрофически неэффективно и неявно, что плюнул и сделал по простому.
Аноним 05/03/19 Втр 12:48:59 1359495434
image.png (55Кб, 761x344)
761x344
>>1359264
>думал сделать через HashSet::intersection как в пиздоне, но это настолько катастрофически неэффективно
Внезапно нашлось такое:
https://stackoverflow.com/q/35439376/521590

В одном из ответов рекомендуют заменить хэш функцию, это помогает, но все равно медленнее твоего варианта.
Аноним 05/03/19 Втр 12:52:57 1359497435
>>1359495
Я вариант с пересечение даже не пробовал писать, потому что I WILL NEVER ALLOCATE
Аноним 07/03/19 Чтв 12:14:30 1360602436
Что это означает [server]? Бывает еще такое #[derive(Deserialize)]. Пример кода:

[server]
ip = "127.0.0.1"
port = "30080"
tls = false

[log]
actix_web = "debug"
webapp = "trace"

[postgres]
host = "127.0.0.1"
username = "username"
password = "password"
database = "database"
Аноним 07/03/19 Чтв 12:15:32 1360603437
Аноним 07/03/19 Чтв 12:26:26 1360607438
Аноним 07/03/19 Чтв 12:34:36 1360609439
Посмотрел https://learnxinyminutes.com/docs/rust/ и немного удивлен. В нем реально так мало синтаксиса или не все описано? Для сравнения Эрланг, в котором реально очень мало синтаксиса https://learnxinyminutes.com/docs/erlang/ чуть меньше текста + большая часть комментарии.
Аноним 07/03/19 Чтв 12:45:37 1360611440
>>1360609
Много чего не описано. Впрочем, для ознакомления остальное совершенно не к чему.
Аноним 07/03/19 Чтв 12:49:05 1360612441
>>1360602
>derive
синтаксис наследования
Аноним 07/03/19 Чтв 12:59:09 1360613442
Аноним 07/03/19 Чтв 13:05:35 1360617443
>>1360612
Не пизди. Это процедурные макросы. Никакого наследования в расте нет. Они вообще могут делать почти всё что угодно.

Конкретно макрос Deserialize из Serde [1], добавляет трейты для десериализации объекта.

[1]: https://github.com/serde-rs/serde
Аноним 07/03/19 Чтв 13:08:11 1360619444
>>1360617
>Никакого наследования в расте нет
impl T for S {
}

только в случае с [derive] итоговое поведение определяется тем самым макросом. используя impl for реализацию выдумывает писарь
Аноним 07/03/19 Чтв 13:26:27 1360625445
>>1360619
Трейтам в расте для полноценного наследования не хватает как минимум двух вещей:
1) Полей в трейте. Проче говоря, сейчас все треты stateless.
2) Возможность вызова родительского метода при имплементации трейта. Проще говоря раст не создаёт vtable для методов трейтов. https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=59bde35749b208dc8d3f8a7829a26304
Аноним 07/03/19 Чтв 14:21:06 1360640446
>>1327089 (OP)
Бждад как красиво на второй шебм. Что за либа?
Аноним 07/03/19 Чтв 14:21:46 1360641447
Аноним 07/03/19 Чтв 14:49:59 1360653448
>>1360625
естественно, я не говорю о строго ОО-шном наследовании
это наиболее полно (как по мне) объясняющий термин. я вообще не в курсе, если у impl какое-то определение. сам растбук говорит что-то вроде
> to define implementations on types
Аноним 07/03/19 Чтв 16:28:06 1360683449
Аноним 07/03/19 Чтв 16:35:09 1360687450
Аноним 07/03/19 Чтв 17:30:41 1360704451
>>1360687
Не думал что на дваче можно встретить опытного лиспера. Есть ощущение что тут одни школьники и тролли.
Аноним 07/03/19 Чтв 17:54:03 1360708452
>>1360687
~Lisp, C++, Go, Clojure
это все рофлянопроекты, или ты реально во всем этом на уровне?
Аноним 07/03/19 Чтв 23:38:05 1360803453
>>1360641
Бля, а у меня как раз на той неделе появилась идея запилить консосоле-клиент для скроллинга нулевой. Ну Татрикс как всегда, блин.
Аноним 08/03/19 Птн 00:07:46 1360811454
photo2019-01-10[...].jpg (126Кб, 1280x960)
1280x960
>>1360708
На емакс-лиспе кучу всего писал. На го две кучи (мне конечно стыдно, но что поделаешь). На кложуре в основном всякие недоделки и на отправка всякого на синт через овертон. Общелисп какое-то время ковырял, даже по работе написал пару вещей, ну и для своих проектов. У нас общелисп сейчас на текущей работе прекрасно в проде крутится, хотя писал его не я. Ну и опенсурсный проект на общелиспе стал для меня билетом за границу, так что я не жалуюсь.
Аноним 08/03/19 Птн 00:16:31 1360813455
>>1360811
надеюсь ты жирный девственник -^_^-
Аноним 08/03/19 Птн 00:18:40 1360814456
>>1360813
Не, я уже 10 лет как женат, а ребенок говорит по норвежски лучше меня.
Аноним 08/03/19 Птн 00:26:29 1360816457
>>1360814
надеюсь твоего ребенка выебут и зарежут муслимы, а твоя жена сгниет от рака :P
так и будет
да да
Аноним 08/03/19 Птн 00:29:41 1360817458
>>1360816
>>1360813
Анон, не заплачь только. Сходи водки выпей, подрочи, вебм-тред с бурятками полистай - глядишь и отпустит.
Аноним 08/03/19 Птн 09:35:37 1360871459
>>1360811
кучу раз хотел вкатиться в лисп, ради прикола изучить кложур. другие языки тоже хотел подрочить. но нахуй этим всем заниматься, если практически всю эту мичпуху вокруг я не применю. а закордон мне неинтересен
раст хоть более-менее начал взлетать. хоть он меня вдохновил на чуть более глубокое изучение, чем первая страница интродакшна
Аноним 08/03/19 Птн 13:31:25 1360949460
Аноним 08/03/19 Птн 19:17:43 1361120461
Сап экспертам в треде,
есть микросервис на джаве который запрашивает один сайт, парсит респонс, делает небольшие вычисления и кидает месседж в redis pub-sub, другой сервис принимает. В худшем случае всё это занимает ~100ms. И задержка не в сети, а именно в парсинге респонса (парсинг HTML-a через jsoup) и вычислениях до того как я отправляю месседж в редис.

Скажите, есть ли смысл переписать тот сервис на Rust?
Аноним 08/03/19 Птн 19:58:59 1361143462
>>1361120
Не знаю на счет раста, но знаю что перл парсит текст быстрее си или на одном уровне.
Аноним 08/03/19 Птн 20:11:48 1361146463
>>1361120
Есть. Когда попробуешь serde на вкус, все остальное будет казаться недоразумением.
Аноним 08/03/19 Птн 20:19:45 1361148464
>>1361146
Кстати serde довольно таки тормознутый. JSON на 60 Мб serde парсит секунд 10-20, на питоне же меньше секунды.
Аноним 08/03/19 Птн 20:32:01 1361149465
>>1361146
> все остальное будет казаться недоразумением
Сомневаюсь что rust может предложить что-то лучшее, чем aeson в хаскелле или circe в скале.
Аноним 08/03/19 Птн 21:02:50 1361155466
>>1361120
>парсинг HTML-a
>парсит респонс
При чем здесь html?
Аноним 08/03/19 Птн 21:24:14 1361156467
>>1361146
Окей, я уже попробовал serde, но так сходу сделать что-то работающее не получилось, пришлось все таки "the book" читать. Прошел пока половину, вот задумался стоит ли инвестиция времени того, может сильно быстрее и не будет, поэтому и вопрос.

>>1361143
Да наверное си быстрее будет, но раз уже такое дело решил новый модный язык попробовать

>>1361155
Ну надо вытащить данные из HTML-a, апи там нету, поэтому так. Или я не понял твой вопрос.
Аноним 08/03/19 Птн 21:26:46 1361157468
А что на расте написать можно? Сам занимаюсь мобилкой; на иосе и на ведройде пишу.

борду смогу написать на нем?
Аноним 08/03/19 Птн 22:15:07 1361174469
Аноним 08/03/19 Птн 23:17:04 1361191470
>>1361157
Хочется из гранатомета по воробьям пострелять?
Аноним 08/03/19 Птн 23:22:14 1361192471
>>1361157
На расте ничего не пишут. Язык говно же.
Аноним 09/03/19 Суб 04:44:37 1361269472
Аноним 09/03/19 Суб 09:16:02 1361306473
>>1361269
графоний есть адекватный для rust?
не в смысле пердолинг на уровне pubg, а хотя бы на уровне формоприложения с каким-нибудь простейшим 2д
Аноним 09/03/19 Суб 09:48:07 1361317474
Аноним 09/03/19 Суб 15:31:29 1361408475
>>1361317
>arewegameyet
не удосужившись даже пролистнуть страницу, я посчитал, что это описание движка для гейдева. сункс
Аноним 10/03/19 Вск 09:47:32 1361821476
>>1361317
Почитал - нихуя не понял как отрисовка происходит.
Аноним 10/03/19 Вск 10:15:52 1361826477
Аноним 10/03/19 Вск 17:03:22 1362014478
А что, в vs code все автокомплиты, линтеры и прочая ебала нормально работает?
Аноним 10/03/19 Вск 17:12:13 1362024479
>>1362014
интеллисенс работает через член
например, у меня не подсвечивает бОльшую часть методов из стандартных библиотек и внешних модулей. что-то вроде
vec!(1, 2, 3).pu
не заавтокомплитит
а так да
Аноним 10/03/19 Вск 17:38:59 1362045480
>>1362024
Двачую, почти ничего не автокомплитит, а для новичка как я было бы неплохо все подсвечивать как в джаве
Аноним 10/03/19 Вск 18:34:05 1362085481
>>1362024
Ну клиппи хоть работает в редакторе? А то каждый раз в консоль за ним лезть. В саблайме сколько ни ебался, так и не понял, почему не работает.
Аноним 10/03/19 Вск 21:02:17 1362178482
>>1361826
Нет, в смысле конечка какая opengl/directx
Аноним 10/03/19 Вск 21:17:39 1362187483
Аноним 10/03/19 Вск 22:32:08 1362246484
Аноним 10/03/19 Вск 23:34:20 1362271485
>>1362246
Что за ебанина эти турбобиты-хуиты? Как с них качать безрегистрацииисмс блджад?
Аноним 11/03/19 Пнд 00:19:00 1362295486
>>1362271
Хз, берешь и качаешь. Могу закинуть куда-нибудь поудобнее, предлагай.
Аноним 11/03/19 Пнд 08:08:57 1362371487
Аноним 11/03/19 Пнд 11:23:58 1362410488
Аноним 11/03/19 Пнд 14:06:44 1362443489
>>1362271
dropmefiles dot com/4aClP
мимо другой анон
Аноним 11/03/19 Пнд 16:33:22 1362483490
Аноним 12/03/19 Втр 08:17:59 1362856491
Там GOспода уже перекатили тред про лучший язык в мире. Догоняйте. В шапку следущего треда можно добавить новость от now.
> Starting today, we’re making it possible for you to deploy serverless Rust applications to Now with our official Builder,​ @now/rust.
Теперь можно деплоить ваши невероятно быстрые программы на Rust в виде lambda-функций.
https://zeit.co/blog/introducing-now-rust
Аноним 12/03/19 Втр 12:19:04 1362919492
>>1327089 (OP)
Котаны, а есть нескучный синтаксис для раста без точек с запятой?

Ну типа как ризон для окамла, только наоборот (и для раста).
Аноним 12/03/19 Втр 14:11:08 1362961493
>>1362919
Не взлетит по двум причинам.

Первая: точка с запятой превращает expression в statement (то бишь подавляет возвращаемое значение).
Например этот код скомпилируется
fn asd() {
20;
}
а вот этот нет:
fn asd() {
20
}
потмоу что компилятор будет жаловаться, что функция должна возвратить '()' (пустой тип), а ты пытаешься возвратить '{integer}'.

Вторая: макросы. Для поддержки этого диалекта раста придётся переделывать все макросы во всех крейтах, ибо они на входе будут ожидать валидный растосинтаксис (а из-за первой причины тебе придётся грамматику раста кардинально переделывать, чтобы убрать точки с запятой).
Аноним 12/03/19 Втр 14:51:35 1362986494
>>1362024
Idea + rust plugin вполне предоставляет навигацию по библиотечному коду. Подсветка работает хорошо. На первый взгляд все как для джавы
Аноним 12/03/19 Втр 16:57:58 1363043495
>>1362961
Чет ты аутизм какой-то выкатил. Я спрашиваю про компилирующийся в раст язык с нескучным синтаксисом, а ты какую-то дичь пишешь, извини.
Аноним 12/03/19 Втр 17:26:19 1363055496
>>1363043
> Я спрашиваю про компилирующийся в раст язык с нескучным синтаксисом
До такой хуйни из жаваскриптомирка ещё никто не додумался. Будешь первым. Были те, которым точки с запятой пиздец как мешают кодить, но их методично посылали нахуй.
Аноним 12/03/19 Втр 17:37:52 1363059497
>>1363055
>До такой хуйни из жаваскриптомирка ещё никто не додумался.
Почему? Я вроде несколько растоязыков видел, но в основном они слишком сильно меняли семантику (по крайней мере вариация на тему "динамический раст" точно была)
Аноним 12/03/19 Втр 17:53:53 1363068498
>>1363055
Точки с запятой ебанутое решение, сделали бы как в свифте. И явный return лучше.
Аноним 12/03/19 Втр 18:21:20 1363075499
я обосрался
Аноним 12/03/19 Втр 18:26:22 1363079500
>>1363059
> Почему?
Потому что в отличии от остальных подобных языков о совместимости с 50% крейтов можно забыть, ибо макросы. Т.е. по сути ты теряешь экосистему раста, а значит и смысл строить новый язык поверх него.

Хотя тот же котлин, например, компилируется напрямую в байт-код, а не в жаву, хотя и имеет совместимость с жавой.
Аноним 12/03/19 Втр 21:01:40 1363152501
>>1363079
>Потому что в отличии от остальных подобных языков о совместимости с 50% крейтов можно забыть, ибо макросы.
Ты опять какую-то хуйню несешь.
Аноним 12/03/19 Втр 21:15:39 1363156502
>>1363152
Это ты хуйню несёшь, говна кусок. Тебе что нужно? Встраиваемый в раст язык у которого своя собственная стандартная библиотека, для которого ты просто делаешь некоторые АПИ, как например встраивают язык Lua или JavaScript? Или язык который сможет вызывать растовские функции и компилируется вместе с ним в один бинарник (как например сделали с Rust2015 и Rust2018 - по сути два языка, которые поддерживаются одним компилятором и могут спокойно взаимодействовать друг с другом)? Если второе, то тебе нужна стандартная библиотека раста и возможность использовать его крейты? Если да, то для этого нужна совместимость на уровне ABI (чтоб можно было вызывать эти самые функции) и совместимость синтаксиса, чтобы процедурные макросы могла нормально работать (а они получают и выплёвывают синтаксическое дерево).
Аноним 13/03/19 Срд 00:10:36 1363235503
>>1363059
Лучше притащить ссылку что именно ты там видел.
Если это что-то вроде http://www.piston.rs/dyon-tutorial/ то это просто отдельный язык и он не транспайлится/компилируется в раст.
Аноним 13/03/19 Срд 03:17:29 1363265504
Библио Глобус.webm (7156Кб, 360x360, 00:03:02)
360x360
>>1362919
Научись понимать и принимать непривычный для себя синтаксис.
Если ты не тупой, и если каждая мелочь синтаксаса обоснована, дизайн языка целостный, как в расте (а не легаси и наслоения протухающих костылей как в плюсах и js) - то ты без проблем свыкнешься с непривычным поначалу для тебя синтаксисом.
Аноним 13/03/19 Срд 07:39:37 1363282505
>>1363265
>в расте нет либ, где там вертят на хую всякую логику да ещё и без документации
Аноним 13/03/19 Срд 14:58:13 1363438506
15363384867080.png (197Кб, 799x395)
799x395
Пора бы перекатить, да?
Предложения по обновлению шапки, картинки или что нибудь-еще?
Аноним 14/03/19 Чтв 18:49:53 1364315507
article.png (44Кб, 833x811)
833x811
s1200.png (44Кб, 1000x1000)
1000x1000
mMe5bkU.jpeg.png (59Кб, 610x446)
610x446
Сап растаны.

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

Итак. Наверное ленивый не слышал про новенький язык системного уровня. Решил и я потыкать Rust. За плечами императивная жавка, славная Scala, немного хаскель. (ну и тыкал всякий хлам типа питона, жса).

Краткие отрывки из описаний, статей - создают крайне положительное впечатление. Решил обмазаться. Обмазаться под винду, т.к. на домашней пекарне она, для игрулек.
Скачал компилятор и тут понеслась.
Он мне говорит скачай ебалу Visual Studio билд хуилд.
Ладно. Скачал-поставил. Компилятор говорит "нееее. не поставил". Ладно. Я упорный. Пошёл перечитывать растосайт.
Да говорят скачай ебалу и поставь галочку на с++. Какой С++? Я же поставил с++ билд тул. Вот же он. Ладно пошёл форумы курить. Ага там ещё есть С++ в списке. Ну ахуеть теперь.

Это вы ребята проебались конечно с гет стартед и инсталлом. Стартовать не очень приятно было. Ну ладно. Вроде хелоу ворлд завёлся.

Расчехлил растбук. Приятно написано. Вербозно конечно, но зато ничего не упущено.

Решил обмазаться ИДЕ. Поделями жидбрейнс я сыт по горло. Решил попробовать что-нибудь другое. Поставил VS Code. Давай накатывать плагинчики. Плагинчики говорят накати ещё lldb. А ещё накати питончика - ты же хочешь дебажить? Погорел, успокоился и накатил.

VSCode конечно лажа какая-то. Какой-то непонятный интерфейс. Ну ладно пока сойдёт. Подсветочка есть, билд сервер краснит, дока подтягивается. (оценил к слову локальную доку, собираемую из терминала. Кайф) Реквестирую советы какую ИДЕ ещё заценить.

Написал вот guess_game. Всё понятно. Вот он паттерн матчинг, вот типы, божественная иммутабельность, АДТ (result же это адт?). Всё как я люблю. Многое очень похоже на скалу. Всё удобно, всё радует. Да конечно опять точки с запятой ставить, но ладно уж.

В общем не смотря на рейдж на старте, пока всё идёт довольно весело и интересно.

Куча вопросов к вам, бывалым. Всё конечно узнаю из растбука, но мне нетерпится. Что по тайп-классам? Я так понял тут так же через трейты это реализовано. Но в скалке ещё implicit учавствует в их образовании. А как тут? Что по функциональной парадигме? Вики говорит, среди прочего, это функциональный язык. Что по referential transparency? println! говорит о том, что не завезли FFI инкапсулированного в какую-то IO монаду. Хотя в скала так же, но у нас это допилено функциональными либами. Как вообще сообщество смотрит на уклон в сторону ФП?
Аноним 15/03/19 Птн 00:41:23 1364531508
14658221976520.jpg (49Кб, 300x898)
300x898
Аноним 15/03/19 Птн 00:42:19 1364533509
Аноним 15/03/19 Птн 00:44:12 1364534510
Аноним 15/03/19 Птн 11:46:01 1364646511
20190315-4e496.png (36Кб, 937x199)
937x199
>>1364315
>ФП
ну вот я как-то так проверяю наличие файла в дире. Вроде достаточно функционально. Или что ты там имел в виду?
Аноним 15/03/19 Птн 15:54:36 1364751512
>>1364646
> что ты там имел в виду?
Это он скалой объебошился. Они там все такие.
Аноним 15/03/19 Птн 17:18:12 1364797513
>>1364646
вот этот верно говорит -> >>1364751. Ну почти. Не все на самом деле. Есть любители обмазываться императивщиной и сайд-эффектами. Но я из тех что объебошился, да.

Ну я так понимаю - так выглядят лямбды. Функции как first class values хз как это по-русски сказать это конечно шаг в сторону ФП, но я про монадки, аппликативы и прочий теоркат. Соответственно и про higher kinded types. Да чтоб с частичным применением. Ну и есть ли карирование?
Аноним 15/03/19 Птн 17:34:24 1364806514
>>1364797
>карирование
https://rosettacode.org/wiki/Currying#Rust - что нагуглилось
монадки вроде прикручиваются сторонним трейтом + дефолтный Option
Большинство перекатчиков на раст из мира императивщины, поэтому лучше ты сам нагугли и поясни, как оно обстоит в расте и чем отличается от скалы/хацкеля.
Аноним 15/03/19 Птн 21:06:23 1364948515
>>1364806
спасибо, анончик. по мере изучения разберусь с вопросом и напишу
Аноним 17/03/19 Вск 07:59:53 1365865516
Аноны, а у всех навигация к макросу в vscode не работает или только у меня? В идее норм, "go to -> implementation" и приехали, а тут облом.
Аноним 17/03/19 Вск 10:00:27 1365885517
>>1365865
навигация ко всему, что не является кодом данной либы, работает через хуй (никак)
Аноним 17/03/19 Вск 15:49:11 1366058518
>>1365885
В емаксе переход в функции крейтов и стандартной либы через rls работает через раз. Макросы не работают от слова совсем.
Аноним 19/03/19 Втр 23:44:11 1367300519
Аноним 19/03/19 Втр 23:48:39 1367303520
>>1367300
> все
Даже макросы сделали?
Аноним 19/03/19 Втр 23:58:40 1367312521
>>1367303
Сделали, но не полностью. Иногда макросы отваливаются. Например, если лазить по исходникам других либ. А иногда не отваливаются
Аноним 20/03/19 Срд 22:27:46 1367808522
Capture.PNG (70Кб, 946x710)
946x710
Capture1.PNG (21Кб, 639x253)
639x253
Че за нах?
Всё по растбуку 2018 который последний.
Аноним 20/03/19 Срд 22:34:17 1367812523
>>1367808
так тестовые функции только в скоупе модуля обьявлять можно
вроде бы как было
Аноним 20/03/19 Срд 22:37:43 1367814524
Capture.PNG (77Кб, 757x788)
757x788
>>1367812
Тут вот норм тогда че они нерабочий пример пихают-то а...
Аноним 20/03/19 Срд 22:48:57 1367820525
Screenshot2019-[...].png (68Кб, 591x714)
591x714
>>1367814
хз

да и у тебя там ворнинг, а не ошибка, к тому же
Аноним 20/03/19 Срд 22:54:57 1367828526
>>1367820
Ворнинг но тест не стартуется. Видно же что 0 раннинг
Аноним 20/03/19 Срд 23:00:19 1367829527
Аноним 20/03/19 Срд 23:07:52 1367831528
>>1367829
Спасибо, когда вытаскивал всё за мейн то оно ныло на нот фаунд из зис скоуп. Вообще странно что они пихают этот код в растбук наверна где-то пропустил объяснения в стиле "не повторяйте дома"
Аноним 22/03/19 Птн 19:07:03 1368548529
>>1367808
Ты filters_by_size внутрь main запихал. Юзал бы rustfmt сразу увидел что во что вложено.
Аноним 23/03/19 Суб 17:50:22 1368908530
а общий вопрос про блокчейны итт-релейтед?
Аноним 24/03/19 Вск 10:55:21 1369223531
Где почитать про эти ваши референсы, борровинги? Не понимаю нихуя. Что ни напишу, компилятор кидается в меня хуями и грит что-нибудь вроде "cannot move out of borrowed content" и "cannot assign to immutable reference". Ну или если нигде нет, объясните хоть, что к чему, на примере указателей и ссылок в плюсах
Аноним 24/03/19 Вск 11:26:59 1369236532
Смотрите, аноны, как не надо делать: David Wang - пидор китаёзский
https://github.com/wangds/libbayer
1. run_demosaic, который ни хуя не возвращает полезного, весь результат кадётся в заданный буфер. Но может выкинуть Err. Сука, я полдня убил, пока не обратил внимание на note от конпелятора и не сделал unwrap, которого даже нет в примере.
2. Оказывается, размерность результата должна быть равна размерности равки, ну охуеть. А смысл тогда задавать её самому, если она очевидно выводится?

Бля, ну что ему стоило создать буфер нужного размера самому и вернуть? Так он и сделал бы unwrap необходимым, и избавил юзера от лишних действий по выделению буфера заведомо известного размера. А так какая-то хуйня получилась, ей б-гу. И эта вот хуйня, единственное, что сейчас есть на расте для дебайерезации, rawloader её не умеет.
Аноним 24/03/19 Вск 11:31:52 1369240533
>>1369236
Хороший повод написать свою либу.
>>1369223
В растбуке.
Аноним 24/03/19 Вск 11:50:36 1369246534
>>1369236
>Бля, ну что ему стоило создать буфер нужного размера самому и вернуть?

Если тебе нужно будет обработать 1000000 картинок, то выделение памяти отожрет заметную часть перформанса. Можно придумать что-то более элегантное, но это не случай "потому что могу".
Аноним 24/03/19 Вск 12:05:40 1369252535
>>1369246
Ты о том, что можно задать один раз буфер под все 1000000 и потом нарезать слайсами? Вариант, конеш. Но unwrap() в пример он мог бы добавить, как и самостоятельно вывести размерность буфера из размерности равки (раз уж ему так сложно самому сделать сдвиг вправо на разность бит).
Аноним 24/03/19 Вск 13:57:47 1369292536
>>1369240
>В растбуке.
Читал поностью. Нет там ни фига про все эти хитрости. Да и код примеров там слишком примитивный.
Аноним 24/03/19 Вск 14:01:39 1369295537
>>1369292
Programming Rust почитай или просто задавай конкретные вопросы или приводи примеры кода.
Аноним 24/03/19 Вск 19:58:14 1369497538
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Топ тредов
Избранное