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

Ответить в тред Ответить в тред
Check this out!
Rust #17 /rust/ Аноним 26/07/21 Пнд 21:42:16 21078441
image.png 2258Кб, 1600x900
1600x900
image.png 154Кб, 3617x1808
3617x1808
image.png 116Кб, 885x558
885x558
image.png 50Кб, 1268x985
1268x985
Rust — невероятно быстрый язык для системного программирования без segfault'ов и с гарантиями потокобезопасности.

ИТТ мы можем объяснить базовые и продвинутые концепции языка, и программирования в целом, поможем вкатывающимся, подскажем что выбрать для веба, игр или, прости Абу, блокчейна.
https://www.rust-lang.org/

Обязательно для прочтения: https://doc.rust-lang.ru/book/

Вместо шапки: https://gist.github.com/TatriX/183c816f1346d418f969c4576c2b9b41

Ресурсы на русском: https://rust-lang.ru/

Предыдущий тред: >>2017017 (OP)

Аноним 26/07/21 Пнд 21:45:13 21078492
image.png 406Кб, 1406x702
1406x702
Аноним 26/07/21 Пнд 22:43:51 21079053
Это хелло ворлд на расте, покажите мне на go.
fn main() {
println!("Hello, world!");
}
Аноним 26/07/21 Пнд 22:50:50 21079134
>>2107905
import "fmt"

func main() {
fmt.Println("Hello World!")
}
Аноним 27/07/21 Втр 10:49:03 21081685
Аноним 27/07/21 Втр 10:53:44 21081756
Аноним 27/07/21 Втр 11:00:51 21081847
>>2107844 (OP)
Стоит брать раст как второй язык, чтобы в перспективе пилить на нем игры и утилиты под линукс? Не хочу остаться говнокодером одного языка (жава). Сложно учить раст без университетского образования?
Аноним 27/07/21 Втр 12:01:34 21082178
Чо щас современного по биндингам для ноды? Пользуюсь neon, может лучче чего-то завезли.
Аноним 27/07/21 Втр 12:03:17 21082219
>>2108184
А на чем игры то пилить? Либы для геймдева какие то хуевые и не все у меня завелись и я в итоге терь игры на winapi пишу хули еще делать нахуй
Аноним 27/07/21 Втр 12:29:30 210824510
>>2108221
Разве еще не появился свой юнити/анриал для раста? Блин, а я надеялся
Аноним 27/07/21 Втр 12:36:26 210825811
>>2108245
Чтобы что? FFI в помощь.
Аноним 27/07/21 Втр 13:44:47 210832812
>>2108184
Геймдев, как это не грустно, это плюсы или шарп, к сожалению
В расте пока что ничего адеватного нету

но если собираешься только для себя что то пилить, без перспектив устройств на работу в геймдев, то почему бы и не раст
Аноним 27/07/21 Втр 13:53:14 210833213
>>2108328
Не, хуйня, игры на чем угодно можно пилить, я и на lua, lisp делал, не говоря уже про с++ начиная с sdl,sfml,sigil заканчивая обычным winapi, который и под раст есть. А движки с интерфейсом типа юнити и годот - для дегенератов и школьников.
Аноним 27/07/21 Втр 13:58:29 210834214
>>2108332
Повторюсь, если хочешь пет проектики всякие пилить, можешь хоть на хаскеле писать игры
Но если собираешься искать работу/пилить что то востребованное то выбор из инструментов и языков становится сильно ограничен
Аноним 27/07/21 Втр 14:00:17 210834415
>>2108342
Пиздец щас бы искать работу в геймдеве) Зарабатывать на играх можно и самому, если ты конечно не дегенерат пилющий ебаные платформеры.
Аноним 27/07/21 Втр 14:00:55 210834516
>>2108344
> Зарабатывать на играх можно и самому
Расскажешь по подробнее?)
Аноним 27/07/21 Втр 14:06:29 210835517
>>2108345
Хуй знает че с вами не так, мы с челом норм так заработали на геймдеве с помощью стима в свои времена, щас уже хуй забили на разработку и прост игры издаем, доход к слову нихуевый.
Аноним 27/07/21 Втр 14:08:29 210835918
>>2108355
Ну так расскажи просто какой стек использовался, что примерно за игра, и сколько челов в команде?
Ну и время вашего успеха
Аноним 27/07/21 Втр 14:21:58 210836919
>>2108359
Вдвоем вкатывались как школяры с юнити разумеется, потом разные яп изучали и мимоходом на них игры и писали. Игр много, а основной доход в стиме с дроча людей на ачивки был, ну и с махинаций типа продажи ключей. Успех постепенный, не сразу же поймешь как в стиме все устроено. Но новичкам щас легче обратиться к издателям чтоб не ебать себе мозг и получать свои проценты, но там уже опционально.
Аноним 27/07/21 Втр 15:16:13 210840820
>>2108221
> я в итоге терь игры на winapi пишу
Бля, помоги плиз в этой дрисне разобраться.

Я пытаюсь заюзать CreateProcessWithTokenW в паре с функцией LogonUserA

Запускаю функцию LogonUserA

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

Судя по докам мелкософта
https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-logonusera
это какой-то PHANDLE, но PHANDLE не гуглится в растовских доках к биндингам.
https://microsoft.github.io/windows-docs-rs/doc/bindings/Windows/Win32/Security/struct.LOGON32_LOGON.html?search=PHANDLE

Как этот токен по человечески получить?
Аноним 27/07/21 Втр 15:46:28 210843721
image.png 5Кб, 492x106
492x106
>>2108408
Тип объявлен в WinNT. h следующим образом:
typedef HANDLE PHANDLE;

Или LPHANDLE
Этот тип объявляется в Виндеф. h следующим образом:
typedef HANDLE
LPHANDLE;
Аноним 27/07/21 Втр 15:49:00 210844022
>>2108408
use winapi::um::winnt::PHANDLE;
У меня получилось хз как у тебя.
Аноним 27/07/21 Втр 17:21:38 210854223
>>2108408
Это любимая фишка долбоёбов из сишки или крестов давать указателям свои имена. Это просто `*mut HANDLE`
Аноним 27/07/21 Втр 23:27:20 210909124
Аноним 28/07/21 Срд 00:49:34 210912925
>>2109091
Смотрю видео и кажется влюбляюсь с первого взгляда.
мимовкатышь в джаву
Аноним 28/07/21 Срд 02:50:02 210914426
хочешь написать бэк для микроблога
@
ставишь rocket, крейты для маркдауна, работы с бд
@
папка с зависимостями весит буквально 1 гб
@
ты не написал и строчки кода
@
учитывая, что у тебя раст тянет какую-то c++ хуйню, чтобы тупо запуститься
@
нода
@
дохуя зависимостей
@
папка проекта 20 мб
@
идите нахуй
Аноним 28/07/21 Срд 03:21:18 210914627
Привет. Есть ли книги для изучения Rust с 0 (вообще без знаний)?
Аноним 28/07/21 Срд 03:32:10 210914828
>>2109146
С утра на облако залью.
Аноним 28/07/21 Срд 03:40:23 210914929
Аноним 28/07/21 Срд 06:44:05 210919730
>>2109144
Велком ту виндовс 10
Аноним 28/07/21 Срд 09:46:48 210923731
Аноним 28/07/21 Срд 11:35:18 210931132
Аноним 28/07/21 Срд 12:14:11 210937033
Аноним 28/07/21 Срд 12:26:40 210939434
>>2109237
>Куда уж проще
Ну не знаю, если бы мне сказали, что третье практическое задание в книге, это написание многопоточного сервера, то я бы не считал эту книгу простой.
Аноним 28/07/21 Срд 12:46:30 210942135
>>2109394
Оно не третье, а последнее.
Аноним 28/07/21 Срд 13:07:59 210943936
>>2109394
Так блять пропусти это задание и книга станет простой. Пиздец у зумеров проблемы, я хуею.
Аноним 28/07/21 Срд 13:57:19 210947437
>>2108437
>>2108542
Всё-равно ничего не понял. Как этот хендл создать-то?

>>2108440
Мы видимо разные биндинги юзаем.
Аноним 28/07/21 Срд 15:36:55 210964838
Снимок экрана о[...].png 592Кб, 1920x1080
1920x1080
Здравствуйте. Как выучить Rust с нуля (знаний касательно программирования и языков нет вообще)? Клабник Стив книга "Программирование на Rust" "Если вы в программировании абсолютный новичок, то для начала прочтите введение в программирование". В книге этого "введения" нет. Как учить язык если книг для обучения с нуля нет? Ребят ну это какой то треш.
Аноним 28/07/21 Срд 15:39:34 210965339
1627475999327.jpeg 63Кб, 604x476
604x476
>>2109648
> введение в программирование
Зис
Аноним 28/07/21 Срд 15:41:05 210965840
>>2109394
> это написание многопоточного сервера
Вангую там написание сервера уровня "взяли готовую библиотеку @ добавили 2.5 функции для обработки запросов". Никто с нуля сервер писать не будет - для этого наверное одной книги не хватит.
Аноним 28/07/21 Срд 16:01:19 210970641
>>2109648
Просто берёшь и читаешь это
https://doc.rust-lang.ru/book/
Параллельно начинаешь кодить мелкие консольные программы.

Когда почувствуешь, что тебя заебало писать хелоуворлды и перекидывать файлы из директории в директорию, попутно их переименовывая - придумываешь идею для проги, думаешь как это реализовать, гуглишь фреймворки, спрашиваешь в этом треде, Далее начинаешь писать программу, используя и изучая эти фреймворки (Знание языка в вакууме само по себе совершенно бесполезно. Нужно знать определённые фреймворки (В расте ни называются крейты))

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

После написания пары программ, ты почувствуешь что твой код - полное, не логичное говно с кучей костылей там, где они совершенно не нужны. Открываешь какую-нибудь книгу по проектированию программ, изучаешь шаблоны проектирования, читаешь про алгоритмы, читаешь базис программирования, погружаешься в низкоуровневые особенности языка - как он работает со стеком и хипом, как в памяти хранятся разные типы, какие регистры для каких функций используются, много экспериментируешь, пытаясь понять - что и как НА САМОМ ДЕЛЕ работает вплоть до SysCall-ов/WinAPI

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

Подравляю ты мидл
А
Аноним 28/07/21 Срд 16:06:41 210971142
>>2109706
Хотя не, мидл это многовато.
Повыше джуна, но для мидла маловато.
Аноним 28/07/21 Срд 16:25:47 210974743
>>2109706
Это невозможно потому что книга что ты скидываешь не дает достаточных знаний для этого.
Аноним 28/07/21 Срд 16:25:53 210974944
Аноним 28/07/21 Срд 16:29:53 210976045
>>2109747
Для чего? Что конкретно не понятно?
Аноним 28/07/21 Срд 16:38:00 210977646
>>2109747
Ты сделал первый проект, описаный в книге? Там где игра "Угадай число"?
Какую именно программу ты хочешь написать?
Показывай свои попытки это сделать.
Аноним 28/07/21 Срд 16:38:41 210977847
>>2109760
Наверно он увидел страшные слова при разборе хеллоуворлда - функция и параметры. Без описаний на месте что это такое и ретировался.
Не понимает что это потом объяснять будут.
Аноним 28/07/21 Срд 16:40:20 210978048
>>2109760
Для обучения с нуля.
Аноним 28/07/21 Срд 16:49:04 210980049
Откровенно говоря в книге нет описания что такое переменная.
Там не рассказывают про "Ящичек" в котором хранятся данные.
Аноним 28/07/21 Срд 16:50:42 210980250
>>2109780
Ты троллишь так или что?
Мы тут вообще-то серьёзные дяди. Бородатые айтишники. Секунда нашего времени стоит 300к.

Не надо с нами тут шутки шутить
Аноним 28/07/21 Срд 16:51:59 210980351
Аноним 28/07/21 Срд 17:00:58 210982052
>>2109800
Переменная в программировании это то же самое что и в математике.
Только в математике они называются одной буквой (x, y и т.д.)
А в информатике букв в названии переменной может быть сколько хочешь.

Все переменные хранятся в оперативной памяти компьютера.
Ты можешь объявить компьютеру переменную и тогда он выделит в памяти небольшой участок специально под неё (Несколько битов). В расте за это отвечает команда let
let peremennaya;
Ты можешь этой переменной присвоить значение. То есть, поместить в тот небольшой участок памяти, который пека тебе выделил, какое-то значение.

Например команда:
let peremennaya = 2;
Выделит на плашке оперативной памяти участок и поместит туда значение 00000010
(Нули и единички потому, что всё в компе хранится в двоичном виде)
Аноним 28/07/21 Срд 17:05:32 210982953
>>2109820
>>2109800
А потом ты можешь получить это значение, когда оно тебе будет нужно
Например можешь написать let vtorayaPeremennaya = peremennaya + 10
И тогда во второй переменной у тебя будет 12

Можешь вызвать println!(peremennaya) и компьютер в командной строке выведет тебе двойку
Аноним 28/07/21 Срд 17:06:40 210983554
>>2109820
Ты же не будешь ему теперь всю книгу так объяснять. Когда сравниваешь с матаном необходимо еще делать упор на то, что знак `=` не то же самое что в математике. Новичков это часто сбивает с толку.
Аноним 28/07/21 Срд 17:08:23 210983955
>>2109835
Самые тупые вопросы поясню. Дальше пусть сам гуглит
Аноним 28/07/21 Срд 17:13:36 210984956
>>2109835
>с матаном необходимо еще делать упор на то, что знак `=` не то же самое что в математике
А в нормальных языках то же самое.
Аноним 28/07/21 Срд 17:19:32 210985657
>>2109849
Они не нормальные, они особенные.

Как и ученые - тоже не нормальные люди. Вот Вася, сосед который щас курит у подъезда, вот он нормальный.
Аноним 28/07/21 Срд 18:55:47 211001158
>>2109856
Математика - лучший язык для строго выражения отношений абстрактных объектов, а так же их свойств. Если язык программирования стремиться к тому чтобы быть максимально выразительным и точным, он должен быть ближе к языку математики.
Аноним 28/07/21 Срд 19:10:49 211003759
>>2110011
Борщехлеб, спок. Тред любителей хаскеля на пару тредов ниже.утонул
Аноним 28/07/21 Срд 19:14:05 211004760
>называть кого-то борщехлёбом в растотреде
Аноним 28/07/21 Срд 19:31:14 211008361
>>2110011
А можно просто решать поставленные бизнесом задачи максимально эффективно.
Аноним 28/07/21 Срд 19:31:19 211008462
>>2109421
Так их там всего три!
Аноним 28/07/21 Срд 19:45:49 211010063
Открываем компанию "Пидрильный клуб любителей NodeJS-модулей и системы владения". Даем рекламу в кодерский журнал: мол у нас есть такой ЯП для внедрения в сервера. Ну, дескать делает то, что не может ни одного другое устройство, последний прорыв в ИТ, быстрый и безопасный код гарантирован. Основы этого ЯП изучаются по официальной документации за неделю вместе с hello-world репой на гитхабе. Для разработчика это херня за такую кучу удовольствия. Но репозитории они называют прилично, что-то типа "Hello Word на Rust: быстром и безопасном убийце C++". По репозиторию с каждого разработчика. А мы в Mozilla пилим статьи и говорим, какой у нас популярный язык программирования. А запутка вот в чем: мы возвращаем им Result<>'ы назад с формулировкой "Извините, убить плюсы не получилось" от компании "Пидрильный клуб любителей NodeJS-модулей и системы владения". И тогда посмотрите, сколько человек удалят репы - не единая душа, кому охота, чтобы их друзья знали, что в свободное от создания репозиториев время они занимаются хуйней.
28/07/21 Срд 19:54:25 211011164
Не нужен
Аноним 28/07/21 Срд 20:00:48 211011865
>>2110111
Ваше мнение очень важно для нас, спасибо, что уделили время.
Аноним 28/07/21 Срд 20:02:53 211011966
>>2110111
Сам-то чьих будешь?
Аноним 28/07/21 Срд 20:16:33 211012867
>>2110111
Раст это будущее фронтенда
Аноним 28/07/21 Срд 20:22:30 211013468
>>2110128
Обосрал штаны с этого
Аноним 28/07/21 Срд 20:24:51 211013769
>>2109820
Иногда не в оперативке. Вообще, при изучении языка привязываться надо только к абстрактной машине, потому что потом тебя ждут сюрпризы, если привязался к x86 или другой зардваре.
Аноним 28/07/21 Срд 20:26:16 211013970
>>2110137
Так в абстрактной машине же переменные лежат в линейной адрессуемой памяти
Аноним 28/07/21 Срд 20:27:12 211014171
>>2110137
Точнее, вообще никогда не в оперативке, в оперативку оно улетает только когда ты сожрёшь весь кэш проца или при контекст свиче.
Аноним 28/07/21 Срд 20:28:01 211014372
>>2109648
Смотри, анон.
Начинай всё с книги Beginning Rust: From Novice to Professional (автор Carlo Milanesi). Затем, если всё ещё хочется читать, наворачивай Programming Rust от издательства O'Reilly. Параллельно ковыряй Rustling course с оф. сайта и переходи на Rust by example там же.
Аноним 28/07/21 Срд 20:29:02 211014473
>>2110139
Ну так и надо говорить, что лежит в по адресу с названием переменной, и достать из этого адреса значение можно по тому же самому названию.

Правда, потом при объяснении variable shadowing начнётся лютый пиздец в голове у пацана, но это уже будет не твоя проблема.
Аноним 28/07/21 Срд 20:29:23 211014574
>>2109706
Давно крейты в Расте фреймворками стали?
Аноним 28/07/21 Срд 20:34:34 211015175
>>2110128
Друг, а вот если серьёзно, без затралливания абсолютного нуба (да ещё и в возрасте), какие у ржавого перспективы в вебе и какие есть фреймворки для этого дела? Спрашиваю не для вката в айти, но из любопытства.
Аноним 28/07/21 Срд 20:39:37 211015676
>>2110137
>>2110141
Как это не в оперативке когда на стеке, который часть оперативки?
stack/heap/static - же
Аноним 28/07/21 Срд 20:44:18 211016077
1627494256978.png 216Кб, 800x600
800x600
>>2110100
Зачем вы сюда лезете

>>2110151
Wasm - yew
Бэк - actix или rocket
Аноним 28/07/21 Срд 20:45:19 211016178
Аноним 28/07/21 Срд 20:48:57 211016479
>>2110161
Если честно ни в какой из этих двух не тыкал
Знаю лишь что yew сейчас самый популярный, ну и сам на нем писал пару петов, очень понравился
Аноним 29/07/21 Чтв 00:08:45 211031780
>>2109658
Ещё как будет, в Книге используются только стдшные структуры для работы с Tcp, всё остальное пишется ручками. Но сервер очень простой, в таком впринципе не может быть ничего сложного.
Аноним 29/07/21 Чтв 06:03:06 211036381
>>2110145
По привычке их так называю
Аноним 29/07/21 Чтв 08:00:21 211037682
изображение.png 10Кб, 1517x196
1517x196
изображение.png 7Кб, 1297x132
1297x132
изображение.png 8Кб, 1301x174
1301x174
изображение.png 5Кб, 1024x117
1024x117
Всё-равно не могу разобраться этим грёбаным хендлом в winapi
Как мне объявить этот хендл и как мне его использовать в функции, чтобы это дерьмо заработало?

Я уже всё перепробовал
let hToken : *mut HANDLE
let hToken : mut HANDLE
let hToken : &mut HANDLE
let mut hToken : HANDLE

В самой функции тоже все возможные вариации со ссылками, с указателями, с волшебным словом mut и без него перепробовал.
Эта курва никак не компилируется
Аноним 29/07/21 Чтв 08:04:16 211037883
В примерах к этому крейту тоже нихрена нет
https://github.com/microsoft/windows-samples-rs
Всякое простейшее говно показывают как делать, а базовые вещи (Сука дефолтные типы!) игнорируют. Какого хрена?
Аноним 29/07/21 Чтв 08:13:19 211037984
Аноним 29/07/21 Чтв 08:16:02 211038185
Аноним 29/07/21 Чтв 08:43:24 211039186
16274758166910.png 592Кб, 1920x1080
1920x1080
Здравствуйте. Как выучить Rust с нуля (знаний касательно программирования и языков нет вообще)? Клабник Стив книга "Программирование на Rust" "Если вы в программировании абсолютный новичок, то для начала прочтите введение в программирование". В книге этого "введения" нет. Как учить язык если книг для обучения с нуля нет? Ребят ну это какой то треш. /
Аноним 29/07/21 Чтв 08:44:13 211039287
изображение.png 29Кб, 1594x520
1594x520
Аноним 29/07/21 Чтв 08:47:47 211039688
>>2110392
Зыёздочка используется для разыменования. Для взятия ссылки используется & (раст автоматом преобразует ссылку в указатель).
Аноним 29/07/21 Чтв 08:49:11 211039889
>>2110392
Хоть бы описание на MSDN прочитал внимательно.
>phToken
>A pointer to a handle variable that receives a handle to a token that represents the specified user.
Аноним 29/07/21 Чтв 08:49:27 211039990
Аноним 29/07/21 Чтв 08:49:56 211040091
изображение.png 27Кб, 1622x472
1622x472
>>2110396
Я и со звёздочкой и с амперсандом пробовал.
Аноним 29/07/21 Чтв 08:50:47 211040392
>>2110398
Сорян, это я был невнимателен. Вижу ты передаешь переменную.
Аноним 29/07/21 Чтв 08:51:54 211040493
>>2110400
Надо брать не простую ссылку, а мутабельную: &mut XXX. Ты бы хоть ошибки компилятора читал, что ли.
Аноним 29/07/21 Чтв 09:05:17 211041394
изображение.png 35Кб, 1707x535
1707x535
>>2110404
Первые примерно 500 попыток я читал ошибки компилятора и пытался их логически осмыслить.
Но потом стал тупо перебором пробовать
Аноним 29/07/21 Чтв 09:40:15 211042795
.jpg 78Кб, 495x450
495x450
>>2110413
>------ help: consider changing this to be mutable: `mut hToken`
Аноним 29/07/21 Чтв 09:57:14 211043196
>>2108369
>Игр много, а основной доход в стиме с дроча людей на ачивки был, ну и с махинаций типа продажи ключей.
Ну ахуеть, сделал игру для дропа говна и теперь говоришь, что можно нормально игры писать на чем угодно
Аноним 29/07/21 Чтв 11:00:41 211046697
>>2110413
Я смотрю, у тебя ещё не появился борроу чекер в голове. Ничего, скоро появится.
Аноним 29/07/21 Чтв 11:02:13 211046898
>>2110427
>>2110466
Да объясните вы нормально - что надо сделать. Я не понимаю что эта фигня от меня хочетс
Аноним 29/07/21 Чтв 11:07:09 211047099
Аноним 29/07/21 Чтв 11:22:06 2110478100
>>2110468
>Троллить двачи в 2021, когда средний возраст борды около 30-ти.
Аноним 29/07/21 Чтв 11:51:45 2110493101
>>2110470
Спасибо. Вроде получилось.
Аноним 29/07/21 Чтв 11:56:48 2110494102
>>2110478
Я не троль. Я просто тупой.
Аноним 29/07/21 Чтв 12:49:29 2110525103
>>2110493
Блять, а как пофиксил то? Че вы объяснить нормально то не можете просто пиздец. Неужели помогло let mut htoken и &mut htoken ? Просто охуеть бля.
Аноним 29/07/21 Чтв 12:51:13 2110527104
>>2110525
Наугад натыкал, что компилятор перестал ругаться. В первый раз что ли видишь таких?
Аноним 29/07/21 Чтв 14:32:48 2110699105
>>2110527
Чо за компилятор, нормально объяснить можешь?
Аноним 29/07/21 Чтв 14:33:50 2110701106
>>2110699
Сформулируй нормально, может, объясню.
Аноним 29/07/21 Чтв 15:10:53 2110758107
>>2110699
Компилятор это такая фигня, которая компилирует программу
Аноним 29/07/21 Чтв 15:14:25 2110763108
>>2110758
Компилятор это и есть программа.
Аноним 29/07/21 Чтв 15:15:17 2110765109
Может, в шапку книготы всякой ещё указать? Про фуллстак, вебассембли, через2дгеигори - что-то из разных областей применения.
Аноним 29/07/21 Чтв 15:23:24 2110776110
>>2110765
Там уже есть единственная нужная книга.
Аноним 29/07/21 Чтв 15:27:44 2110781111
>>2110763
Да, но она ведь компилирует программу?
Аноним 29/07/21 Чтв 15:29:42 2110784112
>>2110765
А какой смысл таких книг?
Ну если ты какие то из них прочтёшь, можешь свои отзывы оставить, мбы в шапку добавить?
Аноним 29/07/21 Чтв 15:35:06 2110794113
>>2110765
Блядь, да нахуй они нужны? Ты если программировать на расте хочешь научится, то пиши на нем, а не книжки бля читай охуеть. Ты если плавать захочешь научится, тоже пойдешь книжки читать, а не идти плавать? Какие же зумеры дегенераты просто пиздец.
Аноним 29/07/21 Чтв 17:39:19 2110972114
>>2109829
компютер пошлёт тебя нахуй за отсутствие форматной строки
Аноним 29/07/21 Чтв 17:46:43 2110979115
>>2110972
>форматной строки
Судя по гуглу это что-то из 1С
Аноним 29/07/21 Чтв 17:47:52 2110981116
>>2110979
Иногда лучше жевать чем писать.
Аноним 29/07/21 Чтв 19:12:24 2111070117
>>2110981
Иногда лучше загуглить, как называется тот или иной термин на русском языке, чем писать кальку с английского.
Аноним 29/07/21 Чтв 19:13:01 2111071118
>>2111070
а лучше тупо написать на английском
Аноним 29/07/21 Чтв 19:22:55 2111079119
>>2107905

func main() {
println("Hello World!")
}
Аноним 29/07/21 Чтв 19:26:17 2111084120
IMG202107291926[...].jpg 136Кб, 1080x522
1080x522
Аноним 29/07/21 Чтв 19:29:44 2111088121
>>2111084
Лол, помнится, как ровные пасаны обоссывали дельфистов за их огроменные 300к формочки.
Аноним 29/07/21 Чтв 19:32:02 2111090122
Аноним 29/07/21 Чтв 19:39:35 2111100123
>>2111088
Ахахахаа бляяя ну ты вспомнил хахаха сделал мой вечер. Даа было время было эх
Аноним 29/07/21 Чтв 20:59:16 2111160124
>>2111084
Прошел rust performance book и все равно 1,4 мб екзешник.
Аноним 29/07/21 Чтв 21:02:07 2111163125
>>2111160
Хотя, после "strip -s" - 250 кб. Непонятно почему cargo build --relese не стрипает символы.
Аноним 29/07/21 Чтв 21:12:02 2111188126
Аноним 29/07/21 Чтв 21:21:17 2111202127
>>2111163
Я например даже на релизных билдах не стрипаю символы, чтобы при возникновении некоторых ошибок и всех паник захватывать читаемые стектрейсы. Конечно можно конечному юзеру отправлять бинарники без символов, а символы хранить отдельно на сервере и потом уже сопоставлять адреса функций и находить их названия, но это слишком геморройно для моих небольших программ (это уже надо делать полноценную инфраструктуру с крэш-репортерами и телеметрией).
Аноним 30/07/21 Птн 01:21:36 2111444128
>>2110160
Обязательно посмотри Smithy для фронта. В сети о нём отзываются только в положительном ключе.
Аноним 30/07/21 Птн 19:59:42 2112375129
Как вкатиться в язык если знаний вообще нет и ты просто кассир из пятерочки?
Аноним 30/07/21 Птн 20:02:54 2112376130
>>2112375
Начни с более простого, например си.
Аноним 30/07/21 Птн 20:12:56 2112378131
>>2112376
То есть ты предлагаешь учить столетний сложнейший язык чей мануал занимает более 500 страниц, а потом чисто по твоим предположениям я смогу выучить раст? Это так не работает дружок. Если раст нельзя выучить с нуля значит он тыква.
Аноним 30/07/21 Птн 20:15:14 2112382132
>>2112378
>си
>сложнейший
Там есть-то три операции и скобочки, которые на математике не проходили. Справишься.
Аноним 30/07/21 Птн 20:15:53 2112383133
>>2112382
>Там есть-то три операции, которые на математике не проходили, и скобочки.
fix
Аноним 30/07/21 Птн 20:19:24 2112388134
Аноним 30/07/21 Птн 20:20:11 2112391135
>>2112388
Но ты же не такой, ты-то справишься!
Аноним 30/07/21 Птн 20:40:43 2112406136
>>2112375
Столярова прочитай. Как бы его не срали в закрепе, книгу он написал объективно неплохую.
Как минимум, мощную базу он дает.
Аноним 30/07/21 Птн 20:47:29 2112413137
>>2112375
Ты что, вакансию на rust нашел? А ну покеж.. Не верю
Аноним 30/07/21 Птн 21:26:52 2112451138
Аноним 30/07/21 Птн 21:33:32 2112462139
>>2112451
Давно в Сан-Франциско открыли Пятёрочку?
Аноним 31/07/21 Суб 08:12:35 2112646140
>>2112462
Работы полно, супер много удаленной. Открой сайты с вакансями и сам посмотри. Лень скринить.
Аноним 31/07/21 Суб 10:57:25 2112717141
Аноним 31/07/21 Суб 11:05:05 2112727142
>>2112646
>Работы полно
Джунов только вайлдберис набирал (ДС2) и то хз есть сейчас вакансии, остаются варики только с удаленкой наверное.
Аноним 31/07/21 Суб 11:30:31 2112754143
>>2112375
>если знаний вообще нет
Меня все время тянет на какую то экзотическую ебалу, в онлайн игрушках постоянно выбирал ебанутые классы, и потом дико страдал. Уже поковырял джаву, жс, но продолжаю заходить в тредик раста и пугать себя, что не смогу вкатится.
Аноним 31/07/21 Суб 11:50:19 2112779144
Как думаете, есть ли смысл вкатываться в нативную разработку на C/C++/Rust? Я студент, закончил 2 курс, поэтому мамкины борщи еще могу есть какое-то время. Стоит ли вкатываться в плюсы, если я хочу заниматься какой-нибудь графикой или хайлоадом с распределенными системами? Есть ли в этом вообще смысл или лучше пойти какой-нибудь го изучить и спокойно в вебе работать?
Аноним 31/07/21 Суб 18:20:37 2113206145
>>2112378
си самый простой язык
Аноним 31/07/21 Суб 20:50:50 2113332146
У вас там начальники в твиттерах заявляют, что системное программирование - это всегда о политике. И какой-то перец до кучи заявил, что использование С и С++ ущемляет права человека.
Аноним 31/07/21 Суб 21:07:34 2113352147
>>2113332
> С и С++ ущемляет права человека.
Всё правильно сказал. Быдлу ниприятно?
Аноним 31/07/21 Суб 21:38:44 2113378148
Аноним 31/07/21 Суб 21:43:52 2113382149
>>2113378
В Си сложно только то, что тебе велосипеды изобретать надо всегда, потому что в стандартной библиотеке нихуя нет.
А так, все 3.5 конструкции языка учатся за 1-2 вечера.
Аноним 31/07/21 Суб 21:52:49 2113389150
Аноним 01/08/21 Вск 21:14:39 2114213151
>>2109144
cargo run
Blocking waiting for file lock on package cache
Updating crates.io index
Blocking waiting for file lock on package cache
Blocking waiting for file lock on package cache
Compiling proc-macro2 v1.0.28
Compiling unicode-xid v0.2.2
Compiling syn v1.0.74
Compiling cfg-if v1.0.0
Compiling winapi v0.3.9
Compiling autocfg v1.0.1
Compiling winapi-build v0.1.1
Compiling memchr v2.4.0
Compiling proc-macro-hack v0.5.19
Compiling futures-core v0.3.16
Compiling log v0.4.14
Compiling version_check v0.9.3
Compiling lazy_static v1.4.0
Compiling slab v0.4.3
Compiling futures-sink v0.3.16
Compiling winapi v0.2.8
Compiling cfg-if v0.1.10
Compiling futures-channel v0.3.16
Compiling proc-macro-nested v0.1.7
Compiling libc v0.2.98
Compiling pin-project-lite v0.2.7
Compiling futures-task v0.3.16
Compiling iovec v0.1.4
Compiling pin-project-lite v0.1.12
Compiling pin-utils v0.1.0
Compiling futures-io v0.3.16
Compiling bytes v0.5.6
Compiling smallvec v1.6.1
Compiling pin-project-internal v0.4.28
Compiling scopeguard v1.1.0
Compiling bitflags v1.2.1
Compiling convert_case v0.4.0
Compiling getrandom v0.1.16
Compiling matches v0.1.8
Compiling percent-encoding v2.1.0
Compiling tinyvec_macros v0.1.0
Compiling itoa v0.4.7
Compiling typenum v1.13.0
Compiling serde_derive v1.0.127
Compiling copyless v0.1.5
Compiling unicode-segmentation v1.8.0
Compiling bytes v1.0.1
Compiling ppv-lite86 v0.2.10
Compiling serde v1.0.127
Compiling either v1.6.1
Compiling async-trait v0.1.51
Compiling ryu v1.0.5
Compiling match_cfg v0.1.0
Compiling ipconfig v0.2.2
Compiling fnv v1.0.7
Compiling const_fn v0.4.8
Compiling cc v1.0.69
Compiling crc32fast v1.2.1
Compiling linked-hash-map v0.5.4
Compiling widestring v0.4.3
Compiling quick-error v1.2.3
Compiling serde_json v1.0.66
Compiling regex-syntax v0.6.25
Compiling encoding_rs v0.8.28
Compiling hashbrown v0.11.2
Compiling httparse v1.4.1
Compiling adler v1.0.2
Compiling opaque-debug v0.3.0
Compiling byteorder v1.4.3
Compiling cpufeatures v0.1.5
Compiling base64 v0.13.0
Compiling language-tags v0.2.2
Compiling mime v0.3.16
Compiling mio-uds v0.6.8
Compiling instant v0.1.10
Compiling futures-macro v0.3.16
Compiling futures-util v0.3.16
Compiling indexmap v1.7.0
Compiling miniz_oxide v0.4.4
Compiling kernel32-sys v0.2.2
Compiling ws2_32-sys v0.2.1
Compiling tracing-core v0.1.18
Compiling standback v0.2.17
Compiling generic-array v0.14.4
Compiling time v0.2.27
Compiling cookie v0.14.4
Compiling lock_api v0.4.4
Compiling unicode-bidi v0.3.5
Compiling form_urlencoded v1.0.1
Compiling tinyvec v1.3.1
Compiling heck v0.3.3
Compiling bytestring v1.0.0
Compiling http v0.2.4
Compiling lru-cache v0.1.2
Compiling brotli-sys v0.3.2
Compiling fxhash v0.2.1
Compiling unicode-normalization v0.1.19
Compiling quote v1.0.9
Compiling aho-corasick v0.7.18
Compiling tracing v0.1.26
Compiling net2 v0.2.37
Compiling parking_lot_core v0.8.3
Compiling socket2 v0.3.19
Compiling winreg v0.6.2
Compiling hostname v0.3.1
Compiling num_cpus v1.13.0
Compiling rand_core v0.5.1
Compiling idna v0.2.3
Compiling regex v1.5.4
Compiling flate2 v1.0.20
Compiling miow v0.2.2
Compiling parking_lot v0.11.1
Compiling resolv-conf v0.7.0
Compiling threadpool v1.8.1
Compiling rand_chacha v0.2.2
Compiling block-buffer v0.9.0
Compiling digest v0.9.0
Compiling url v2.2.2
Compiling mio v0.6.23
Compiling brotli2 v0.3.2
Compiling rand v0.7.3
Compiling sha-1 v0.9.7
Compiling tokio v0.2.25
Compiling derive_more v0.99.16
Compiling actix-macros v0.1.3
Compiling thiserror-impl v1.0.26
Compiling pin-project-internal v1.0.8
Compiling enum-as-inner v0.3.3
Compiling time-macros-impl v0.1.2
Compiling actix-web-codegen v0.4.0
Compiling tokio-util v0.3.1
Compiling pin-project v0.4.28
Compiling thiserror v1.0.26
Compiling actix-threadpool v0.3.3
Compiling pin-project v1.0.8
Compiling time-macros v0.1.1
Compiling actix-codec v0.3.0
Compiling tracing-futures v0.2.5
Compiling actix-service v1.0.6
Compiling actix-rt v1.1.1
Compiling futures v0.3.16
Compiling h2 v0.2.7
Compiling trust-dns-proto v0.19.7
Compiling actix-utils v2.0.0
Compiling trust-dns-resolver v0.19.7
Compiling actix-server v1.0.4
Compiling actix-tls v2.0.0
Compiling serde_urlencoded v0.7.0
Compiling actix-router v0.2.7
Compiling actix-testing v1.0.1
Compiling actix-connect v2.0.0
Compiling actix-http v2.2.0
Compiling awc v2.0.3
Compiling actix-web v3.3.2
Compiling actixtest v0.1.0

ВОТ БЛЯТЬ ОБЪЯСНИТЕ КАКОГО ХУЯ У МЕНЯ ОДНА ЗАВИСИМОСТЬ ТЯНЕТ ЕЩЕ КАКУЮ-ТО ХУЙНЮ НА 1 ГИГАБАЙТ СУКА? НАХУЯ МНЕ 1 ГБ КАКОГО-ТО ГОВНА, ЧТОБЫ СКОМПИЛИТЬ 13 СТРОЧЕК КОДА?
Аноним 01/08/21 Вск 21:18:19 2114216152
1627841898755.jpg 7Кб, 236x238
236x238
>>2114213
> бэк
> откуда зависимости, 13 строчек же всего!!
Аноним 01/08/21 Вск 22:09:46 2114255153
> Обязательно для прочтения: https://doc.rust-lang.ru/book/
Почему там так пропагандируется идея применения четырёх пробелов вместо табуляции?
Аноним 01/08/21 Вск 23:40:28 2114344154
>>2114255
Просто унификация. Не нравится — допиливай rustfmt.toml под себя.
Вообще, пробелы намного лучше таба хотя бы потому что они во всех IDE одинаково показываются, а минусов относительно немного (там вроде бы только проблемы слабовидящих человеков с четыре чара vs один чар).
Аноним 01/08/21 Вск 23:44:15 2114351155
>>2114213
>юзать актикс
>удивляться зависимостям

Открой какой-нибудь web-проект на C, где все пишут свои рандомы/таймеры/остальную хуету, а потом подумай, хочешь ли ты писать это говно руками каждый раз, или ты хочешь писать 13 строчек на расте.
Аноним 02/08/21 Пнд 00:16:39 2114379156
>>2114213
Будто на Го или Питон не также.

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

Но ты можешь всегда сам написать свой actix с минимум кода конечно же, правда времени у тебя займёт это...Можешь вообще сокеты открывать и "HTTP GET \r\n" запросы кидать аки лоулвл господин
Аноним 02/08/21 Пнд 00:51:02 2114410157
Растаны, растономикон читать? Или это как сильмаррилион — для инициированных?
Аноним 02/08/21 Пнд 01:49:20 2114460158
>>2114255
Удивительно кривой перевод у книги. Читай в оригинале.
Аноним 02/08/21 Пнд 01:51:25 2114463159
>>2114410
Если уже кодишь на ржавом спокойно и уверенно, читай. Если нуб дофига - рано ещё, потом успеешь потрогать.
Аноним 02/08/21 Пнд 03:38:38 2114480160
>>2114463
А что почитать вторым?
Аноним 02/08/21 Пнд 04:10:21 2114484161
>>2114480
Из официальных - Rust by example, чтобы чуток отполировать выученное. А дальше - в свободное плавание в том направлении, что больше интересует.
Если ты ещё целиком The Book не прочитал, попробуй Programming Rust (2-е издание).

Вообще, книжки - это славно, но лучше с гитхаба настреляй всяких прожектов из интересующей сферы и копайся на здоровье.
Аноним 02/08/21 Пнд 04:12:50 2114485162
>>2114480
>>2111188
Чекни ещё вот это. Там много ссылок на всякое.
Аноним 02/08/21 Пнд 04:35:28 2114491163
>>2114485
>Там много ссылок на всякое.
Да, я уже пару коротких прочитал оттуда. Просто было интересно, есть ли консенсус по второй книге, как есть по первой.
Аноним 02/08/21 Пнд 23:22:37 2115329164
Как идиоматически инициализировать статик в начале рантайма, если нужно no_std, а спинлоки == антипаттерн? При этом дело происходит в библиотеке. Делаю демку на васме, нужна таблица синусов.
Аноним 03/08/21 Втр 03:38:14 2115383165
>>2115329
Не смог придумать, бабахнул static mut и инициализировал отдельной функцией из js.
Аноним 03/08/21 Втр 03:38:45 2115384166
>>2115383
>отдельной функцией из js.
отдельным вызовом
Аноним 03/08/21 Втр 03:40:43 2115385167
Даёт ли ваш язык возможность дебажить тот ужас, который обычно происходит в макросах?
Аноним 03/08/21 Втр 03:48:55 2115386168
image.png 42Кб, 436x359
436x359
>>2115385
Да. Но обычно проще и удобнее написать функцию.
Аноним 03/08/21 Втр 03:51:59 2115387169
>>2115386
Может он имел в виду дебажить в том смысле, что через отладчик заходить внутрь макроса и построчно его выполнять (как это можно делать с функциями)?
Аноним 03/08/21 Втр 03:54:13 2115388170
>>2115387
Нет. Просто в Си, если в макросе случилась какая-то проблема, ты об этом уже никогда и не узнаешь, и мне хотелось узнать, есть ли похожая проблема в расте.
Аноним 03/08/21 Втр 03:54:37 2115389171
>>2115387
Так вон же он построчно его экспандит, нет? Как ещё надо-то, просто чтобы строчки помедленнее появлялись?
Аноним 03/08/21 Втр 03:56:05 2115390172
>>2115388
Ну в расте ты тоже не узнаешь, если макрос раскрылся в какую-нибудь хуйню. Раст только проверяет, что макрос успешно раскрылся и что подставленный код проходит все проверки компилятора (синтаксические борроу-чекер и т.п.), а вот от логических ошибок ты не защищён.
Аноним 03/08/21 Втр 03:58:03 2115391173
>>2115390
>Ну в расте ты тоже не узнаешь, если макрос раскрылся в какую-нибудь хуйню.
Можно прочитать, во что он раскрылся. Я картинку для кого кинул?
Аноним 03/08/21 Втр 03:58:40 2115392174
>>2115389
Я про то, когда ты запускаешь программу в отладчике там есть такая функция, как построчное выполнение. Т.е. после каждой строки отладчик приостанавливает выполнение и ты можешь посмотреть как изменились локальные переменные. В обычных функциях можно при подобном построчном выполнении заходить внутрь функций и построчно выполнять уже их. Вот я и интересуюсь, есть ли такая фича с макросами?
Аноним 03/08/21 Втр 04:00:16 2115393175
>>2115391
С процедурными макросами такое скорее всего не сработает. Хотя я знаю, что есть команда для карго, чтобы раскрыть все макросы, но там исходники превращаются в нечитаемый пиздец.
Аноним 03/08/21 Втр 04:05:31 2115394176
>>2115392
Локальные переменные никак не меняются, пока раскрываются макросы. Программа ещё работать не начинала даже. Как построчно меняются сами макросы можно посмотреть, выглядит это как на скриншоте выше.

>>2115393
>но там исходники превращаются в нечитаемый пиздец.
Да, все println! придётся убирать пока, чтобы конечный продукт своих макросов посмотреть. Над выборочным раскрытием или игнором работают.


Макросы сильные, но их вовсе не обязательно использовать же. Тут не си, вполне можносделать функцию, которая посчитается при компиляции.
Аноним 03/08/21 Втр 04:08:01 2115395177
>>2115394
> Локальные переменные никак не меняются, пока раскрываются макросы.
Ты совсем читать не умеешь? Я про отладку программы после компиляции. Чтобы вместо вызова huinya!(...) отлаживать реальный код, который подставился вместо неё. Насколько я знаю, ни одна IDE в расте такого не умеет.
Аноним 03/08/21 Втр 04:09:12 2115396178
>>2115395
Ты знаешь, что такое макрос?
Аноним 03/08/21 Втр 04:09:58 2115397179
>>2115396
А ты знаешь что такое отладка? У меня такое чувство что отладка у тебя ограничена ошибками компилятора.
Аноним 03/08/21 Втр 04:11:59 2115398180
>>2115395
> Чтобы вместо вызова huinya!(...) отлаживать реальный код, который подставился вместо неё.
В смысле в дебаггере? Там и нет макросов же. там только реальный код и есть. Покажи скриншот, чего ты хочешь, если тебя мой скриншот не устроил?
Аноним 03/08/21 Втр 04:32:08 2115401181
.png 314Кб, 2423x1723
2423x1723
>>2115398
Пикрил отладка. Сейчас никак невозможно отладить вызов huinya!(2), хотя раст анализер и может рекурсивно раскрыть его в отдельном окне (но для отладки он не доступен. Более сложные макросы раст-анализер даже раскрывать не может. Я бы хотел чтобы можно было отлаживать раскрытый вариант (как в окошке [EXPANSION].rs) вместо простого вызова макроса без пердолинга с ручным раскрытием и копипастом.
Аноним 03/08/21 Втр 04:42:29 2115402182
>>2115401
Ладно, я совершенно не понимаю идею того, что ты пытаешься добиться. Я думал, что ты хочешь отладить кодогенерацию, то есть чтобы макрос генерировал нужный текст. А ты о чём-то совсем другом. Возможно, поэтому такого и нет — никто пока такого не хотел.

Ты где-то в других местах встречал, чтобы работало, как тебе надо?
Аноним 03/08/21 Втр 04:46:45 2115403183
>>2115402
> Ладно, я совершенно не понимаю идею того, что ты пытаешься добиться.
Потому что видимо никогда не писал сложные программ. С отладкой в расте вообще всё очень плохо. Даже без макросов претти-принтеры (когда переменная печатается в списке слева в читаемом виде) довольно убогие.
> Ты где-то в других местах встречал, чтобы работало, как тебе надо?
В тех языках, что я активно использую (жява, котлин, жс/тс) макросов как бы и нет. Но невозможность отлаживать сами внутренности макросов довольно отталкивает, потому что если автор макроса насрал себе в штаны или если ты макрос неправильно используешься, то готовься к длительным поискам, что же там сломалось.
Аноним 03/08/21 Втр 04:49:54 2115404184
>>2115403
>В тех языках, что я активно использую (жява, котлин, жс/тс) макросов как бы и нет.
Так не пользуйся ими, никто ж не заставляет! Или ты println! дебажить планировал?
Аноним 03/08/21 Втр 04:50:44 2115405185
>>2115404
Такое чувство что я разговариваю с GPT-3. Ты совсем не понимаешь о чём я говорю?
Аноним 03/08/21 Втр 13:58:06 2115712186
>>2115383
static mut — это дорога в ад:
https://blog.kodewerx.org/2021/07/mutable-statics-have-scary-superpowers.html

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

>Потому что видимо никогда не писал сложные программ
Мы пишем сложные программы, просто у нас в расте нормальная система типов и runtime с GC не срут за нас где не надо, поэтому доверия к коду больше, принтов под отладку обычно хватает. А если не хватает принтов, то есть всякие трейсинги.

>если автор макроса насрал себе в штаны или если ты макрос неправильно используешься, то готовься к длительным поискам, что же там сломалось
Просто разверни макрос `cargo-expand`, потом подставь свои типы, а потом смотри реальную ошибку. Но у большинства публичных макросов нормальная документация.
Аноним 03/08/21 Втр 15:16:24 2115784187
>>2115712
>static mut — это дорога в ад:
Я знаю, но у меня есть несколько позиций:
1. Я выполняю все контракты борроу чекера, просто компилятор об этом не знает
2. Это библиотека, то есть у меня нет мейна, чтобы каким-нибудь безопасным паттерном инициализировать её локально, и потом использовать
3. Спин локи — ещё большая дорога в ад. Там даже внимательное прочтение и проверка тебе может не помочь
Аноним 03/08/21 Втр 15:36:39 2115811188
>>2115784
>выполняю все контракты борроу чекера, просто компилятор об этом не знает

Так просто пиздани

struct Yoba<T>(UnsafeCell<T>);
unsafe impl<T: Sync> Sync for Yoba<T>

зачем тебе static mut
Аноним 03/08/21 Втр 16:02:31 2115840189
>>2115811
>UnsafeCell
no_std

>Sync
Оно не sync. Там васм однопотомчный, поэтому я могу сказать, что выполняю.

Вот минимальный рабочий код с игрушечным использованием синусов
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=a4d39b09c2c35d37b5a83ef3bb9e5dd6

Это в 384 байта компилируется, треть из которых — f32 лукап на 600 позиций (можно ограничить, но я стараюсь быть универсальным здесь)
Аноним 03/08/21 Втр 17:16:48 2115909190
Аноним 03/08/21 Втр 19:16:32 2116007191
>>2115909
Нет, всё равно не могу придумать, как мне это поможет. Это библиотека, в которой одна функция (go()) вызывается снова и снова для каждого кадра. Мне нужен статик, чтобы инициализировать и хранить лукап табличку за её пределами.
Мне не нужен mut, если бы я мог инициализировать в начале программы и оставить, но я такого способа без спинлоков не нашёл.
Аноним 03/08/21 Втр 19:44:33 2116026192
IMG202108031600[...].jpg 137Кб, 1080x798
1080x798
Чтобы вытащить строку из V4 или V6 мне нужно пропустить переменную через match, да?
Аноним 03/08/21 Втр 20:00:34 2116036193
>>2116026
Там ниже есть же. Хоть главу дочитай.
Аноним 04/08/21 Срд 16:58:28 2116966194
Аноним 05/08/21 Чтв 10:00:23 2117524195
>>2107844 (OP)
Какие преимущества кроме производительности есть у Раста против Haskell, F# on .NET, OCaml, etc? Вчера попалось интервью Стива Клабника, члена кор тим Раста. Его внешний вид и повадки наводят на мысли, что Раст очередное поделие всяких извращенцев-педерастов из Калифорнии. Для меня это маркер идиотской идеи и реализации. Последние десятилетия ничего хорошего этими людьми создано не было. Да и что хорошего может создать безумный человек. Те кто продвигают менять пол однозначно безумны. Если кто не знает, все эти извращения пошли из Калифорнии.

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

Взглянув на Haskell я пришел к выводу, что это наиболее привлекательный на данный момент язык. Его создают настоящие ученые. В него не пихают все подряд. У него богатейшая и современнейшая экосистема. Он великолепно спроектирован. Он изящен и лаконичен. Он мощный и практичный. Хотел окунуться в Раст и сравнить, но после интервью Клабника не хочется. Он просто школьник против кор разработчиков Хаскела. К тому же похож на адепта ЛГБТ.

Есть еще великолепный .NET 5. Благо в нем есть F#, что почти тот же Haskell. Экосистема .NET 5 или .NET Core действительно хороша, даже сказал бы превосходна. C# конечно ужасен.
Аноним 05/08/21 Чтв 10:01:47 2117526196
>>2116026
Что это за книга или курс? Дай ссылку пожалуйста.
Аноним 05/08/21 Чтв 10:03:26 2117527197
1628147005294.jpg 6Кб, 112x76
112x76
Аноним 05/08/21 Чтв 10:06:06 2117532198
1628094192618.jpg 108Кб, 1024x1024
1024x1024
Аноним 05/08/21 Чтв 10:14:01 2117544199
>>2117527
>>2117532
По существу есть что сказать? Я задал вопрос, ответить вам видимо нечем. Какие преимущества кроме производительности есть у Раста против Haskell, F# on .NET, OCaml, etc?
Аноним 05/08/21 Чтв 10:33:36 2117553200
>>2117544
1. Производительность.
2. Мутабельность.
3. Ансейф не приходится писать на сях.
4. У нас exhaustiveness паттерн матчинга проверяется компилятором, а не автоматическое ДНО как в хачкеле.

Гаты скоро должны быть, так что чуть большая часть возможностей хачкельской системы типов скоро заедет в раст.
Аноним 05/08/21 Чтв 11:32:03 2117602201
>>2117544
программистам на С/С++ раст понять проще, и именно в эту нишу раст и целится. Есть документация, тестирование "из коробки".
Аноним 05/08/21 Чтв 11:32:20 2117603202
>>2117544
Раст конпелируется в нативные модули для ноды. А вот это все твоё перечисленное?
Аноним 05/08/21 Чтв 11:42:23 2117613203
>>2117602
Это. Популярность раста обусловлена си-лайк синтаксисом. Языки с теми же целями, но с другим синтаксисом либо сдохли, либо о них никто не знает, что примерно тоже самое.
>>2117544
У тебя в посте функциональные языки, а раст ближе к императивопараше, они не сравнимы.
Аноним 05/08/21 Чтв 11:56:32 2117622204
>>2117553
>Мутабельность.
>Ансейф не приходится писать на сях.
>У нас exhaustiveness паттерн матчинга проверяется компилятором, а не автоматическое ДНО как в хачкеле.
Ни одного аргумента в пользу Раста.

>>2117603
>Раст конпелируется в нативные модули для ноды.
И что? Языки, которые я перечислил, имеют великолепные экосистемы, на них писать удобнее чем на ноде. Есть в ноде что то подобное ASP.NET Core, WebSharper, Ocsigen? Это модерновые веб-фреймворки, с их помощью можно писать веб даже без JS. Они богаче, они удобнее, они производительнее.

>>2117602
>программистам на С/С++ раст понять проще, и именно в эту нишу раст и целится
Это я уже понял. Но он и позиционируется как язык для веб. А веб писать на низком уровне не очень удобно. Может есть какие то крутые сервера и фреймворки о которых я не знаю, которые позволяют удобно писать веб.

>>2117613
>У тебя в посте функциональные языки, а раст ближе к императивопараше, они не сравнимы.
Ну почему же. На Расте можно писать в ФП парадигме.
Аноним 05/08/21 Чтв 12:01:40 2117628205
>>2117622
>Ни одного аргумента в пользу Раста.
Окей, у раста нет никаких плюсов по сравнению с хачкелем, не пиши на расте.
Удачи жить в своём шизомире, а я пойду дальше писать на моём классном most loved lang.
Аноним 05/08/21 Чтв 12:22:32 2117646206
Ммм, там гаты скоро подвезут: https://www.reddit.com/r/rust/comments/ox9re0/the_push_for_gats_stabilization/

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

А вот когда добавят TAIT (там тоже вроде минимальную версию готовят к тестировании и стабилизации), то можно будет скрывать структуры прям как в моей любимой жявке - функции внутри трейтов вместо реальных структур будут отдавать opaque-структуры о которых известно только то, что они имплементируют определённый трейт/трейты. Сейчас такое можно либо с использованием умных указателей, либо только в свободных функциях:
fn foo() -> impl Bar {...}
Аноним 05/08/21 Чтв 13:08:28 2117675207
>>2117526
Rust Book это, она даже в шапке есть.
Аноним 05/08/21 Чтв 19:55:09 2118194208
Аноны как вкатиться в блокчейн ? С чего начать вообще ?
Аноним 05/08/21 Чтв 20:09:47 2118230209
Аноним 05/08/21 Чтв 20:11:30 2118233210
Есть ли в расте способ на стадии компиляции выполнить проверку статического значения и вывалить ошибку в одном из случаев?

Вот пример с попеннета на С++:
[code]template<int N>
concept power_of_two = (N & (N-1)) == 0;

template<int N = 256>
auto fft(/.../) requires power_of_two<N> {
cout << "Doing fast Fourier transform by " << N << " samples." << endl;
//...
}
[/code]
Аноним 05/08/21 Чтв 20:44:03 2118276211
>>2118233
Нашел уже сам. Таким макросом:
macro_rules! const_assert {
($x:expr $(,)?) => {
const _: [(); 0 - !{ const ASSERT: bool = $x; ASSERT } as usize] = [];
};
}
Аноним 06/08/21 Птн 00:48:39 2118472212
Анон, если ты совсем-совсем зелень в программировании (или вообще понятия об этом деле не имеешь), но хочешь учить раст, не начинай с The Book. Сначала посмотри Beginning Rust From Novice To Professional Карло Миланези.
Аноним 06/08/21 Птн 02:12:21 2118490213
>>2118472
Чем там заканчивается? После книжки стоит почитать?
Аноним 06/08/21 Птн 04:51:59 2118507214
Как мне отследить, что где-то там, в отдельной функции, я уже дропнул &mut на глобальный статик? Я могу что-то сделать, когда всю переменную дропаю через Drop trait, могу что-то сделать, когда заимствую через BorrowMut trait, а как мне что-то сделать, когда я дропаю &mut?

Пробовал
impl<T> Drop for &mut MyStruct<T>
но прилетает
error[E0120]: the `Drop` trait may only be implemented for structs, enums, and unions
Аноним 06/08/21 Птн 06:32:33 2118524215
>>2118507
Для этого функция может принимать не чистую ссылку, а генерик для конвертации в умный указатель, который и будет вести подсчёт ссылок. Например так: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=5374b9b5bccd7d6743282fb8e9601756

В моём варианте есть два способа передачи ссылок: (1) foo_1 использует impl трейты для автоматической ковертации ссылки в умный указатель, (2) foo_2 использует генерики. По сути оба способа одинаковы и выбор определённого вкусовщина (однако в первом способе невозможно будет указать точный тип ссылки, которая будет передаваться в функцию, но в этом случае оно и не нужен).

Плюс как ты видишь я вынес непосредственно работу с ссылкой в отдельную функцию real_foo. Это довольно важно, потому что как foo_1, так и foo_2 будут заинлайнены из-за того что используют генерики и если функция у тебя большая код от этого может сильно распухнуть. Потому весь код для работы со ссылкой лучше выносить в отдельную функцию, а в функциях с генериками по-минимуму проводить конвертацию аргументов в нужный вид.
Аноним 06/08/21 Птн 06:42:09 2118525216
>>2118524
Да, общий смысл я понял,и уже нашёл lock_api, теперь пытаюсь понять, как им пользоваться.

Спасибо за подсказки, но у меня, к сожалению, мейна нет и функции не могут принимать аргументы, а есть только статики, которыми я и ворочаю. Поэтому не так просто это всё организовать.
Аноним 06/08/21 Птн 06:45:39 2118527217
>>2118525
Я мейн использовал чисто чтобы показать результат работы при запуске программы. Смысл в том, чтобы вместо чистых ссылок функции принимали impl Into<MyPointer<'a, u32>>. Тогда функции спокойно продолжать принимать ссылки, но внутри функции ты их просто так использовать не сможешь и тебе сначала придётся конвертировать ссылку в умный указатель и потом оттуда уже и получить ссылку. Прикол умного указателя в том, что для него уже можно определить трейт Дроп, а значит и можно отследить когда он станет не нужным.
Аноним 06/08/21 Птн 06:49:20 2118528218
>>2118527
>рикол умного указателя в том, что для него уже можно определить трейт Дроп, а значит и можно отследить когда он станет не нужным.
Да, это я понял из документации lock_api. Кто-нибудь пользовался им? Есть примеры кода?
Аноним 06/08/21 Птн 20:21:15 2119490219
Как в main.rs импортировать demo_func.rs ?
Аноним 06/08/21 Птн 20:51:38 2119514220
>>2119490
"mod demo_func" в main.rs (в модуле должны быть экспорты через ключевое слово "pub")
Можно было и растбук почитать.
06/08/21 Птн 21:42:28 2119542221
>>2118490
Главный герой, умиротворенный своим вечным страданием, очищается и уходит в кресты. Его лучший друг становится врагом и умирает от передоза системой владения, все второстепенные персонажи также погибают.

Не думаю, что тут есть пространство для сиквела.
Аноним 07/08/21 Суб 04:09:17 2119757222
>>2118528
>Кто-нибудь пользовался им? Есть примеры кода?
Я разобрался. Пример вот
https://play.rust-lang.org/?version=stable&mode=release&edition=2018&gist=862fb7dd034f6aaf29b705e421489a43
(продолжение предыдущего, размер увеличился до 500 байт, но всё ещё терпимо)

Можете теперь спрашивать меня свои ответы.

Проблема была в использовании одих и тех же названий в разных местах в разных значениях.
Аноним 07/08/21 Суб 15:20:58 2120031223
>>2107844 (OP)
Пока вы пишите о расте в браузере, я на js пишу форму, в которой вы пишите о расте.

Кто вы без меня?
Аноним 07/08/21 Суб 15:24:55 2120040224
>>2120031
Разве формы должны быть не на html+css?
Аноним 07/08/21 Суб 15:45:12 2120062225
>>2120031
Пока ты занимаешься макакингом в браузере, умные люди на C/C++ пишут браузеры и операционные системы. Кто ты без них?
Аноним 07/08/21 Суб 22:41:23 2120511226
>>2120062
Rust сделали, чтоб было удобнее макакить.
Аноним 07/08/21 Суб 23:11:08 2120551227
>>2120511
Не очень удобно как-то.
Аноним 07/08/21 Суб 23:54:29 2120585228
>>2120551
Менее удобно, зато более быстро. Вот такой баланс.
Аноним 08/08/21 Вск 15:27:04 2121029229
2.jpg 124Кб, 1804x1300
1804x1300
1.jpg 69Кб, 1292x458
1292x458
https://github.com/ajour/ajour

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

Посмотрев Cargo.toml я так и не понял какую GUI библиотеку он использует? Есть 2 версии дефолт и опенГЛ почему-то.
Аноним 08/08/21 Вск 15:41:05 2121044230
>>2121029
> Посмотрев Cargo.toml я так и не понял какую GUI библиотеку он использует?
iced же.
Аноним 09/08/21 Пнд 06:48:57 2121586231
16284598105370.png 306Кб, 2004x586
2004x586
Аноним 09/08/21 Пнд 08:01:24 2121599232
Научите меня обрабатывать ошибки, а то достало вот это
>expected slice `[u8]`, found enum `std::result::Result`
Аноним 09/08/21 Пнд 08:03:21 2121600233
Аноним 09/08/21 Пнд 08:07:47 2121604234
>>2121600
Ну вот какая-то процедура файла возвращает
>std::result::Result<&[u8], std::io::Error>
Я не могу понять как мне обработать возвращаемое чтобы получить &[u8]. Я делаю так
> let mut buf = reader.fill_buf();
пытаюсь что-то сделать с буфером и получаю
mismatched types

expected slice `[u8]`, found enum `std::result::Result`

note: expected mutable reference `&mut [u8]`
found mutable reference `&mut std::result::Result<&[u8], std::io::Error>`rustc(E0308)
Аноним 09/08/21 Пнд 08:15:19 2121606235
>>2121604
>Result<&[u8], std::io::Error>
Это такая штука, которая возвращает либо Ok(&[u8]), либо Err(std::io::Error), соответственно, тебе надо достать значение из Ok(_). Это можно сделать несколькими способами. Можно сделать
let mut buf = match reader.fill_buf() {
Ok(val) => val,
Err(_) => panic!,
}
Можно сделать if let.

Самый простой, но хрупкий, который стоит только во время разработки применять, а потом поменять, это просто добавить .unwrap()
let mut buf = reader.fill_buf().unwrap() ;

У него есть улучшения, например unwrap_or(), unwrap_or_else(), expect(), про них отдельно можешь почитать.
Аноним 09/08/21 Пнд 08:23:44 2121612236
>>2121606
>let mut buf = match reader.fill_buf() {
>Ok(val) => val,
>Err(_) => panic!,
>}
Так можно обрабатывать всё, что возвращает какой-то результат и какую-то ошибку?

И вот это
>Ok(val) => val,
не совсем понятно откуда берётся val. Если Ok(val), то mut buf будет &[u8] ?
Аноним 09/08/21 Пнд 08:29:22 2121613237
>>2121612
>Так можно обрабатывать всё, что возвращает какой-то результат или какую-то ошибку?
Так можно обрабатывать вообще всё, что возвращает какой-то из нескольких вариантов (так называемые enum)


>не совсем понятно откуда берётся val.
Отсюда же и берётся.
Ok(здесь ты пишешь произвольное имя переменной) => здесь это имя можно использовать

>Если Ok(val), то mut buf будет &[u8] ?
Если внутри Ok(_) было &[u8], то будет &[u8].
Аноним 09/08/21 Пнд 08:29:42 2121614238
Я правильно делаю?
fn file_size(path: &std::path::Path) -> u64 {
let x = match path.metadata() {
Ok(val) => val,
Err(_) => panic!(),
};
return x.len();
}
Аноним 09/08/21 Пнд 08:30:32 2121616239
>>2121613
Вроде понял, спасибо.
Аноним 09/08/21 Пнд 08:32:24 2121617240
>>2121614
Или можно так?

fn file_size(path: &std::path::Path) -> u64 {
let x = match path.metadata() {
Ok(val) => val.len(),
Err(_) => panic!(),
};
return x;
}
Аноним 09/08/21 Пнд 08:57:03 2121626241
>>2121617
И последнее усилие

fn file_size(path: &std::path::Path) -> u64 {
match path.metadata() {
Ok(val) => val.len(),
Err(_) => panic!(),
};
}
Аноним 09/08/21 Пнд 09:35:07 2121652242
>>2121626
Явное лучше неявного.
Аноним 09/08/21 Пнд 09:51:20 2121663243
Попытка писать что-либо без чтения растбука - просто тупо трата своего времени.
>>2121626
Если ты используешь panic!, то почему бы сразу unwrap не писать. Проще же.

Но правильный способ - это проброс ошибки дальше, чтобы вызывающий код решал бросать ему панику или вывести ошибку и продолжить работу программы.
Типо такого https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=f6d314249cdaf35cb85b319165ca1f55
Аноним 09/08/21 Пнд 09:53:17 2121666244
Аноним 09/08/21 Пнд 10:11:20 2121687245
>>2121652
Ты просто пока что не привык к синтаксису, мне вот такой код вполне явный
Аноним 09/08/21 Пнд 11:42:24 2121764246
Не пойму как закрыть файл. Прочитал в буфер, теперь хочу его закрыть чтобы снова открыть на запись, но не вижу как его закрыть.
Аноним 09/08/21 Пнд 11:47:04 2121774247
>>2121626
почему бы не использовать unwrap()?
Аноним 09/08/21 Пнд 11:47:36 2121776248
И заодно, поясните вот это
> let mut f = File::open("foo.txt")?;
то же самое что
>let mut f = File::open("foo.txt").unwrap();
или нет?
Аноним 09/08/21 Пнд 12:15:06 2121824249
>>2121776
В первом случае ты заставляешь код, вызывающий эту функцию обработать ошибку, а во втором просто указываешь, что ошибка фатальна и обрабатывать её не нужно, а лучше завершить работу потока/программы (хотя отловить её таки можно).
Аноним 09/08/21 Пнд 12:19:11 2121828250
>>2121824
то есть знак вопроса это
>Ok(val) => val,
>Err(err) => err
?
Сложный, блин, синтаксис у раста.
Аноним 09/08/21 Пнд 12:21:33 2121831251
>>2121828
Только вместо Err(err) => err, там Err(err) => err.into(), чтобы автоматом преобразовывать между разными типами ошибок. И в скором времени вопрос будет раскрываться по-другому, используя специальный трейт: https://github.com/rust-lang/rust/issues/84277
Аноним 09/08/21 Пнд 12:24:17 2121834252
>>2121831
А если быть ещё точнее,
> Err(err) => return Err(err.into())
Аноним 09/08/21 Пнд 12:26:59 2121836253
Аноним 09/08/21 Пнд 12:29:42 2121840254
>>2121764
Он сам закроется после выхода из скоупа.
Если сильно надо, то drop(file)
Аноним 09/08/21 Пнд 13:41:58 2121936255
>>2121840
На реддите читал что drop(file) не срабатывает. Ссылку уже не найду, но она на первой странице гугла была.
Аноним 09/08/21 Пнд 13:47:08 2121952256
>>2121936
Дроп аналогичен обычному выходу из скоупа. Т.е. если не сработает дроп, то не сработает и "обычный" способ закрытия файлов.
Аноним 09/08/21 Пнд 13:50:17 2121960257
>>2121952
И как тогда мне прочитать и записать файл в одном скоупе? Читаю так

let file = match File::open(file) {
Ok(v) => v,
Err(_) => return,
};
let mut reader = BufReader::with_capacity(MAX_SIZE, file);
let mut buf = match reader.fill_buf() {
Ok(v) => v.to_vec(),
Err(_) => return,
};
тут делаю реверс буфера и хочу записать его на то же место используя file.seek(SeekFrom::Start(0))
Аноним 09/08/21 Пнд 13:58:15 2121982258
>>2121960
> let reader;
> {
> let file = match File::open(file) {
> Ok(v) => v,
> Err(_) => return,
> };
> reader = BufReader::with_capacity(MAX_SIZE, file);
> }
> let buf = match reader.fill_buf() {
> Ok(v) => v.to_vec(),
> Err(_) => return,
> };
Дальше пиши в свой файл.
Аноним 09/08/21 Пнд 14:00:19 2121984259
>>2121828
Насколько я помню знак вопроса делает ранний возврат из функции ЕСЛИ обнаружил Err. В противном случае просто достает из Ok значение.
Удобно, чтобы самому ошибки не матчить.
Аноним 09/08/21 Пнд 14:03:50 2121992260
>>2121586
Обосрался со Страуструпа
Аноним 09/08/21 Пнд 14:21:29 2122040261
drop(file) работает. Давай ссылку где такую ерунду прочитал, что не работает.
Аноним 09/08/21 Пнд 14:25:00 2122049262
>>2122040
Там по-моему была речь о том, что винда не сразу снимает эксклюзивный доступ после закрытия файла и потому если дропнуть файл открытый с эксклюзивным доступом и сразу же открыть его снова, то будет ошибка доступа.
Аноним 09/08/21 Пнд 15:09:37 2122127263
Аноним 09/08/21 Пнд 15:38:11 2122150264
>>2122127
Здесь ничего такого не написано.

Мне больше нравится объяснение: >>2122049
Хоть я виндой и не пользуюсь, не могу проверить.
Аноним 09/08/21 Пнд 15:41:19 2122153265
Аноним 09/08/21 Пнд 15:52:55 2122177266
.png 83Кб, 799x537
799x537
>>2122150
> не могу проверить.
Я проверил и у меня всё работает. Хотя я тоже помню, что кто-то жаловался на ошибку доступа при быстром открытии/закрытии. Но возможно ФС должна быть нагружена или ещё чего.
Аноним 09/08/21 Пнд 16:04:20 2122195267
Аноним 09/08/21 Пнд 16:05:57 2122196268
>>2122195
VS Code с несколькими плагинами.
Аноним 09/08/21 Пнд 16:09:44 2122202269
>>2122196
А можно подробнее про плагины, которые добавляют типы на манер джетбрейнса.
Аноним 09/08/21 Пнд 16:12:14 2122205270
Аноним 09/08/21 Пнд 16:40:44 2122225271
А вот такой вопрос, допустим я хочу запаниковать если ошибка записи в файл, а если ошибки нет, то идти дальше. Вот так можно делать?

match file.write(buf) {
Ok(_) => (),
Err(err) => panic!({"{}",err),
}

То есть вот эта конструкция
> Ok(_) = > ()
говорит идти дальше по скоупу, правильно?
Аноним 09/08/21 Пнд 16:47:42 2122227272
>>2122225
Она говорит, чтобы при успешной записи match ... возвращал пустой кортеж. Чтобы именно ничего не делать, используются фигурные скобки: Ok(_) => {} (т.е. при успехе выполнить пустой скоуп). Но прикол в том, что скоуп без возвращаемого значения тоже по-умолчанию возвращает пустой кортеж, а потому получается, что эти обе записи абсолютно идентичны.
Аноним 09/08/21 Пнд 16:49:47 2122229273
>>2122227
Ага, логика понятна.
Аноним 09/08/21 Пнд 17:37:26 2122301274
В целом, конечно, прикольный язык, за день изучения я написал нужную мне программу. Хотя на го я бы потратил несколько часов, но мне нравится раст. А вот большое количество неявных вещей наоборот - не нравится.
Аноним 09/08/21 Пнд 17:48:53 2122321275
Аноним 09/08/21 Пнд 18:06:22 2122337276
>>2122301
Надо же как теперь к программированию подходят. Если можешь за час с написать программу на неизвестном языке - значит годно.

С такой логикой предлагаю тебе учить питон и не париться о всех остальных языках.
Аноним 09/08/21 Пнд 18:09:42 2122346277
>>2122301
Пример неявной вещи. Вряд ли ты за день растбук прочитал. "Все что не как в Си, то - неявное" не считается.
Аноним 09/08/21 Пнд 18:10:18 2122347278
>>2122337
На питоне я в основном скриптики всякие пишу. Которые слишком сложны, чтобы ради них пердолиться с башем и подобными языками.
Аноним 09/08/21 Пнд 18:14:09 2122350279
>>2122337
Я пишу на питоне, иногда. Но не везде есть питон, не всегда питон подходит под задачу.
>>2122346
>Пример неявной вещи.
Ну вот например >>2121626
Аноним 09/08/21 Пнд 18:15:06 2122352280
>>2122350
И что там неявного? Синтаксис не точно такой же как в перле?
Аноним 09/08/21 Пнд 18:18:25 2122356281
Аноним 09/08/21 Пнд 18:21:51 2122363282
>>2122356
В питоне тоже считаешь, что есть неявные скобочки? Или неявный main? Неявные ссылки, когда параметры в функции передаёшь?
Всё так?
Аноним 09/08/21 Пнд 18:25:33 2122372283
>>2122363
Про неявные ; забыл
Аноним 09/08/21 Пнд 18:59:32 2122443284
>>2121604
щас бы путать ошибку и exeption code мда...
Аноним 09/08/21 Пнд 19:02:06 2122448285
>>2122356
И хорошо, кложуры удобно писать.
[1, 2, 3].iter().map(|x| x*x).for_each(|x| println!("{}", x));
Аноним 09/08/21 Пнд 19:27:10 2122478286
Где-то читал что for_each не рекомендуют использовать, а почему не помню.
Аноним 09/08/21 Пнд 19:43:37 2122495287
Вместо срача попрошу ещё один ответ. К примеру у го есть билд тэги, типа
>//+build tag_name

и потом go build -tags tag_name

Можно ли сделать так же с cfg? И как передать тэг cargo?
Аноним 09/08/21 Пнд 21:23:43 2122621288
>borrowed value does not live long enough
Как это побороть?
Аноним 09/08/21 Пнд 21:28:43 2122631289
>>2122621
Не выходить из скоупа, где это твоё вэлью инициализировано.
Аноним 09/08/21 Пнд 21:34:57 2122644290
>>2122621
Зависит от того что делаешь. Иногда эта ошибка возникает есть берёшь ссылку на поле структуры и одновременно пытаешься работать с остальной структурой. Пока что в современном расте так делать низзя, но подвижки есть, чтобы разрешить.
Аноним 09/08/21 Пнд 21:36:49 2122649291
>>2122631
Да вроде не выхожу.

for entry in WalkDir::new(".") {
let n = match entry {
Ok(v) => v,
Err(_) => continue,
};
let x = n.path().to_str().unwrap();
out.push(x);
}


|
15 | let x = n.path().to_str().unwrap();
| ^ borrowed value does not live long enough
16 | out.push(x);
| --- borrow later used here
...
22 | }
| - `n` dropped here while still borrowed

Совершенно не понятно почему я не могу эту переменную использовать ниже.
Аноним 09/08/21 Пнд 21:39:45 2122655292
>>2122649
Суть в том, что ты берёшь ссылку на внутренности n и засовываешь в out после чего n уничтожается по завершению итерации цикла. Тут либо в out надо засовывать копию строки, а не ссылку, либо перемещать сам n.
Аноним 09/08/21 Пнд 21:40:16 2122660293
>>2122621
значит бороу чекер не знает не дропается ли значение раньше ссылки на значение, лайфтаймы юзать где возможно че еще или со ссылкми разберись может у тебя нул поинтеры висят после дропов.
Аноним 09/08/21 Пнд 21:49:18 2122681294
>>2122649
Сделай из своего walkdir итератор и натрави на него метод map с кложурами.
Аноним 09/08/21 Пнд 21:50:52 2122684295
>>2122655

for entry in WalkDir::new(".") {
let n = match entry {
Ok(v) => v,
Err(_) => continue,
};
let x = n.path().to_str().clone().unwrap();
out.push(x);
}

то же самое.
>>2122681
Слишком сложно.
Аноним 09/08/21 Пнд 21:55:28 2122693296
>>2122684
> то же самое.
Ты копируешь Option<&str>, а надо копировать внутренности строки: let x = n.path().to_str().unwrap().to_string();
Аноним 09/08/21 Пнд 22:08:56 2122718297
>>2122693
Совершенно не понятно почему так и если я дальше использую x, то всё равно получаю does not live long enough.

for entry in WalkDir::new(".") {
let n = match entry {
Ok(v) => v,
Err(_) => continue,
};
let x = n.path().to_str().unwrap().to_string();
if is_dir(&x) {
out.push(&x); <- тут
}
}
Аноним 09/08/21 Пнд 22:12:36 2122726298
>>2122718
Ты пушишь ссылку на временный объект. Потому и выдаёт тебе ошибку. Объект уничтожается после окончания итерации и ссылка протухает. Потому и надо преобразовывать &str в String (т.е. ссылку на строку в строку, которой владеешь ты) и пушить саму строку в коллекцию.
Аноним 09/08/21 Пнд 22:15:49 2122732299
>>2122718
Пчел, ну рили на итератор посмотри. Мап, фильтор и готово.
Аноним 09/08/21 Пнд 22:16:04 2122734300
>>2122726
Я глупый. Начал что-то подозревать, что ссылка переиспользуется, но тогда бы в коллекции был 1 элемент. Вряд ли вы поняли о чём я
Аноним 09/08/21 Пнд 22:16:25 2122735301
>>2122732
Нет, этого нужно избегать.
Аноним 09/08/21 Пнд 22:17:37 2122739302
>>2122735
Интересно, почему? Опять всяких реддитов начитался?
Аноним 09/08/21 Пнд 22:18:19 2122741303
>>2122739
Потому что сложно для человеко-чтения.
Аноним 09/08/21 Пнд 22:23:37 2122751304
>>2122741
Пфф, я то думал ты расскажешь нам как сложно в растовой функциональщине пробрасывать ошибки наверх итераторов, а ты просто с непривычки читать не можешь.
Аноним 09/08/21 Пнд 22:42:55 2122777305
>>2113389

Бл*, как будто вкатунец после пары хелловорлдов пойдет писать сложный интерпретатор. Ето не так работает. Ты и с богатой std насрешь себе в штаны, если не понимаешь как работают функции из нее.
Аноним 09/08/21 Пнд 22:46:20 2122787306
Аноним 09/08/21 Пнд 22:47:29 2122788307
image.png 101Кб, 511x407
511x407
Аноним 10/08/21 Втр 07:14:34 2122999308
Даун-аутист итт, очень нравится язык, хочу изучить для себя разные приколы на нём (написание бота, который будет срать рандомными фразами, например), без цели в профессию, как хобби.

Так вот, я обломался уже на первой стадии - я не понимаю, как писать сам код, т.е. штука для писания письма (ЯП ранее не трогал, только с питоном баловался, так что извините моё невежество) не открывается. Что делать?
>inb4 выкатываться в другой язык/нахуй
Аноним 10/08/21 Втр 07:15:54 2123000309
>>2122999
Начни с си, там правила проще. На этом фундаменте в раст вкатиться будет гораздо легче.
Аноним 10/08/21 Втр 07:19:42 2123002310
Снимок экрана-2[...].png 963Кб, 1821x982
1821x982
Аноним 10/08/21 Втр 08:15:47 2123025311
>>2122718
Ты создаешь ссылку на месте и кладешь ее в вектор. Она живет только до конца блока. А потом дропается, поскольку она врменный объект (на стеке в границах блока).
Если класть не временные ссылки, а постоянный (в хипе) объект, то все работает:
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=437f4f0d1f11bd9c8a3ddeebfc0cc8b7
Аноним 10/08/21 Втр 08:37:55 2123032312
Снимок экрана-2[...].png 83Кб, 1200x466
1200x466
Это как вообще?
Аноним 10/08/21 Втр 08:39:06 2123033313
Аноним 10/08/21 Втр 08:40:10 2123034314
Аноним 10/08/21 Втр 08:45:06 2123036315
Аноним 10/08/21 Втр 08:47:34 2123037316
>>2123036
>Показывай код
Нечего показывать, просто генерация рандомных байт.
>strace
Нет его на сервере.
Аноним 10/08/21 Втр 08:51:03 2123039317
>>2123037
>Нечего показывать
Значит проблема в коде.
Аноним 10/08/21 Втр 08:52:17 2123040318
>>2123039
Проблема, скорее всего, в старом ядре. Очень ветхая шапка.
Аноним 10/08/21 Втр 10:13:52 2123112319
>>2122478
Ты дурак? Это "for _ in _" никогда не надо использовать, если можно использовать "for_each", а никак не наоборот. Достаточно просто понимать во что рассахаривается "for _ in _" и заимплементить хотя бы один итератор, чтобы понимать почему "for_each" лучше.

>>2122999
Если совсем никак не можешь поставить себе редактор кода, то на старте можно писать и в play.rust-lang.org
Но без IDE писать на расте довольно сложно, так что я бы советовал тебе разобраться с rust-analyzer или IntelliJ.

>>2123032
Просто кто-то стрипнул символы. Или ты думал, что раст тебе бинарь просто по приколу раздувает?
Аноним 10/08/21 Втр 10:19:04 2123114320
>>2123112
> Это "for _ in _" никогда не надо использовать
В его случае без for in не обойтись, если он вместо unwrap будет по-нормальному работать с ошибками.
Аноним 10/08/21 Втр 10:23:48 2123119321
>>2123114
>try_for_each
>fold
>try_fold
>scan

В расте на любой вкус есть эти сраные итераторы.
Аноним 10/08/21 Втр 10:24:16 2123120322
>>2117646
... expected opaque type, found another opaque type
Аноним 10/08/21 Втр 10:56:02 2123156323
Можно ли сделать нечто подобное
#[cfg(version = "pro")]
fn main()
и как потом cargo передать --version=pro?
Аноним 10/08/21 Втр 11:00:05 2123160324
Аноним 10/08/21 Втр 19:58:15 2123792325
Сап, ржавые. Вводные: в программировании полный профан, но зато неплохо знаю математику. Собственно, хочу научиться программировать и в качестве первого языка хотел выбрать раст, но прочитал в интернете такое мнение, что раст слишком сложный для вкатунов. Это правда? Может мне начать с чего попроще, а только потом уже перейти на раст?
Аноним 10/08/21 Втр 19:59:47 2123798326
>>2123792
Попробуй почитать тред. Возможно, такой вопрос уже задавался 5 раз.
Аноним 10/08/21 Втр 20:11:50 2123813327
>>2123792
Если ты хочешь упороться не в программирование, а в математику, то лучше хачкель или пистон.
А если таки в программирование, то да, раст охуенный язык, но он решает конкретные проблемы крестовиков, а не какие-то глобальные проблемы программирования, как Alan lang, например, так что тут лучше не упарываться в раст, а смотреть от задач твоих.
Аноним 10/08/21 Втр 22:40:48 2123949328
Ку, ржавач
Почему Раст до сих пор не вытеснил С++? Почему эти уёбки до сих пор пишут на небезопасном говне и жрут сегфолты и пополняют CVE пачками уязвимостей? Что не так с этим миром? По чесноку, что нужно расту для того, чтобы на него все тотально перешли и писали на нем системный софт? На нём И ТОЛЬКО БЛЯТЬ НА НЁМ???
Аноним 10/08/21 Втр 22:52:15 2123965329
>>2123949
Потому что нельзя так просто взять и переписать. К тому же кроме ошибок памяти есть и другие, которые компилятор раста не отловит. Старый код хоть как-то работает, а новый с нуля писать заебёшься, да и новые ошибки при переписывании могут всплыть. Если раст и внедряют, то таким образом, чтобы он мог менять существующий код частично. Плюс к вышесказанному есть проблема с совместимостью, потому что куча кода написана только для гцц и с ллвм не работает, растового а фронтенда для гцц пока нет.
Аноним 10/08/21 Втр 23:02:25 2123979330
>>2123965
>Потому что нельзя так просто взять и переписать
1. За 20-25 лет можно переписать ВЕСЬ существующий код и на С, и на С++ на чистый Раст.
2. Можно писать новый код для системного софта ТОЛЬКО на Расте, но тем не менее до сих пор большинство этого кода пишется на си и плюсах, какого хуя?? Люди любят жрать говно? Вселенский заговор? Раст объективно лучше плюсов по ВСЕМ параметрам, про си я вообще молчу, это не язык, а окаменелое недоразумение из-под мамонта.
>К тому же кроме ошибок памяти есть и другие, которые компилятор раста не отловит
80% опасных с точки зрения безопасности багов в системном софте связаны с ошибками работы с памятью. Логические баги чрезвычайно редко практически никогда приводят к взлому софта, по крайней мере на системном уровне.
>новые ошибки при переписывании могут всплыть
Смотри предыдущий пункт. Корень всех проблем - ошибки работы с памятью. На расте пишут ОС без unsafe блоков. Более того, при желании на Расте unsafe вообще никогда и нигде можно не использовать, это просто костыль для бывших крестовиков. А если и приспичит, то можно будет все немногочисленные unsafe блоки штудировать десятки раз на наличие багов, ибо если и есть баг в работе с памятью, то он может быть только там, и то если разраб криворучка. Вне unsafe блоков Раст математически не может иметь багов, связанных с памятью, а про логические баги я уже упомянул выше.
>Плюс к вышесказанному есть проблема с совместимостью, потому что куча кода написана только для гцц и с ллвм не работает, растового а фронтенда для гцц пока нет.
Вода камень точит, короче говоря. Очень надеюсь, что через лет 20 мир избавится от юзлесс легаси говна в виде си и плюсов. Раст сделает этот мир лучше и безопаснее.
Аноним 10/08/21 Втр 23:30:48 2123996331
>>2123979
А можно просто нанять норм разраба, который будет писать хороший код на плюсах
10/08/21 Втр 23:31:18 2123998332
>>2123979
Тебе надо — садись и переписывай, тебе никто не запрещает
Аноним 10/08/21 Втр 23:34:10 2124001333
>>2123996
Дополню: тебе с дивана легко рассуждать. Ты вообще имеешь опыт серьезной разработки? Можешь по нормальному расписать чем раст лучше плюсов и почему всем нужно на него переходить? Не просто "всем лучше" или "тебе надо, ты и думай почему он лучше", а по-нормальному.
Аноним 10/08/21 Втр 23:45:57 2124013334
>>2123792
>что раст слишком сложный для вкатунов
ну как кресты, по сравнению с пистоном сложный
Аноним 11/08/21 Срд 07:01:35 2124133335
>>2124001
Тебе ответил другой анон, теперь отвечаю я, который выкатил пару паст выше в поддержку раста.
У меня опыт 6 лет разработки на С++. Это говно ебаное, которое не стоит никакого внимания в 2021 году, когда есть современные языки программирования типа Раста, которые ГАРАНТИРУЮТ memory safety, будучи при этом компилируемым языком без проблем с производительностью. Почему Раст лучше плюсов. Очень просто - Раст имеет всё, что имеют плюсы, но вдобавок Раст безопасен. Причем безопасен и в многопоточности, а это прощай состояния гонки. 90% проектов можно писать без unsafe, даже целые ОС. Если Раст сдвинет плюсы, то количество CVE упадёт в ноль. Неужели все похуй и никто не хочет сделать мир безопаснее?
Аноним 11/08/21 Срд 07:03:05 2124134336
>>2123998
не мне надо, а всему миру надо! Даже майки и гугл начали это понимать и начали писать новый код на Расте. Да что уж там говорить, даже Торвальдс понял какой Раст охуенный и утвердил его использование в разработке модулей ядра для Линукса! Когда уже до остальных дойдет?
Аноним 11/08/21 Срд 14:33:09 2124421337
>>2123949
>>2123979
>>2124133
>>2124134
Не понятно это вайп такой вялый или трал обезумел от голода и пишет больше чем жертвы.
Аноним 11/08/21 Срд 15:26:49 2124478338
>>2124421
Аргументы или пошёл нахуй из треда. Я хотя бы аргументировал свою точку зрения, а ты только безаргументированно пукнул не по делу. И кто из нас тролль в этой ситуации? Явно не я.
Аноним 11/08/21 Срд 16:04:18 2124528339
>>2124478
Все равно я тебе не верю
- не 80% ошибки работы с памятью, а 60.
- полностью не устраняет состояния гонки, а только гонки по данным. Т.е. ты все равно можешь логический дедлок получить.
- ОС без ансейфов не напишешь.
Короче ты слишком жирно написал.
Аноним 11/08/21 Срд 19:37:45 2124817340
>>2124528
> ОС без ансейфов не напишешь.
ос и не будут писать
Аноним 11/08/21 Срд 19:57:05 2124845341
Аноним 11/08/21 Срд 20:25:11 2124866342
>>2124133
>У меня опыт 6 лет разработки на С++
>Раст имеет всё, что имеют плюсы
Детектирую Qt-формошлёпа, который дальше кастрированного ООПа за 6 лет не ушел.
Аноним 11/08/21 Срд 20:42:50 2124880343
>>2124845
как массовая не взлетит, но как образец технологий ойдет
Аноним 11/08/21 Срд 21:28:05 2124928344
image.png 30Кб, 693x329
693x329
>>2124528
Ха!
>не 80% ошибки работы с памятью, а 60.
https://msrc-blog.microsoft.com/2019/07/18/we-need-a-safer-systems-programming-language/
И пикрилейтед. А также взгляни на все CVE, где балл CVSS 7.5 и выше. Из критических уязвимостей критическая == позволяет исполнить произвольный код от лица уязвимого процесса почти 100% - это ошибки работы с памятью.
>полностью не устраняет состояния гонки, а только гонки по данным
Как раз data race и является потенциально опасной ситуацией с точки зрения безопасности. Это единственный эксплуатабельный вид состояния гонки, все остальное - максмум denial of service.
>логический дедлок
совершенно безобидная вещь с точки зрения безопасности, особенно если такой баг есть в программе в пространстве пользователя, которую запускает какой-нибудь форк сервер. В ядре - проблематичнее, но опять же - это только DoS, исполнить произвольный код будет нереально.
>ОС без ансейфов не напишешь.
Чекай Redox OS и попробуй в их кодовой базе нагрепать ансейф блоки, лол. Да даже если и будут ансейф блоки, весь цикл тестирования будет сосредоточен на них, плюс это можно на изи обернуть в безопасные обертки. В случае с сиговном у тебя 100% кодовой базы - это потенциальный UB.
Аноним 11/08/21 Срд 21:28:11 2124929345
>>2124133
Так. Хорошо, но что делать с утекающей памятью в safe коде?
Аноним 11/08/21 Срд 21:38:41 2124937346
>>2124866
Ты попытался меня обосрать, но забыл снять штаны и жидко оподливился себе под хвост :shrugs:

Все последние 6 лет пишу RT embedded софт в индустрии автономных машин не в странах СНГ ясен-красен, а в США и непосредственно принимал участие в разработке кастомной RTOS с кодовой базой 8 миллионов LoC. Как опытный С++ разраб заявляю ещё раз, что в 2021 году есть гораздо более перспективные языки для более продуктивной и безопасной разработки системного софта. И да, это намёк на Раст. Если он не взлетит, я потеряю веру в человечество, потому что не писать на нём в 2021 - это быть ушлым консерватором и похуистом по поводу того, что во всем системном софте в мире имеются куча дыр из-за С/С++ говна, на котором категорически невозможно писать memory-safe код во всех случаях.
Аноним 11/08/21 Срд 21:40:31 2124939347
>>2124929
Утечка памяти безобидна с точки зрения безопасности. Если ты криворукий еблан, то программа просто будет медленно пожирать оперативку, пока не крашнется, но больше ты ничего сделать не сможешь. К исполнению произвольного кода это никак не приведёт.
Аноним 12/08/21 Чтв 19:21:55 2125901348
Как на этой вашей ржавчине писать игори?
Аноним 12/08/21 Чтв 20:14:32 2125930349
Аноним 12/08/21 Чтв 20:26:23 2125941350
1628789182342.jpg 85Кб, 640x640
640x640
>>2125901
Без задней мысли:
- пишешь свой движок
- пишешь свои инструменты для удобной работы
- пишешь игру
Аноним 12/08/21 Чтв 20:31:10 2125950351
А что плохого в использовании ансейфов?
Оссобено если что то низкоуровнево пишешь
Аноним 12/08/21 Чтв 20:39:24 2125960352
>>2125950
Ничего плохого если ты хороший кодер, но у людей сразу триггер из-за названия.
Знаешь про драму вокруг владельца Actix Web? Он часто использовал unsafe и ей захейтили так, что он забросил проект, но щас всё норм, целая драма на ютубе из-за этого.
Он прокоментировал что-то вроде петухоны и джсеры считают, что я недостаточно знаю язык, чтобы использовать unsafe конструкцию

Actix кстати самый быстрый фреймворк на планете, быстрее с и с++

фул => https://www.youtube.com/watch?v=enLUX1TtNyE
Аноним 12/08/21 Чтв 20:50:43 2125974353
>>2124133
Но начинать все равно с си / плюсов надо ? т.к. никто раст не советует новичку + везде опыт плюсов требуют.
Аноним 12/08/21 Чтв 20:53:13 2125976354
>>2125974
Не нужен С\С++, он держится за счёт легаси только. Учи Раст с нуля, если так хочешь.
С\С++ значит можно советовать новичку, а Раст нельзя, да? Тут просто предупреждают что будет сложно, на самом деле Раст изичная хуита, много времени уходит просто на исследование синтаксиса, но нет моментов, что ты остановился и всё.
Аноним 13/08/21 Птн 11:58:18 2126482355
>>2125960
>Он прокоментировал что-то вроде
И таки он был не прав и потом признал это. Там был use after free.
Аноним 13/08/21 Птн 12:01:13 2126486356
>>2125960
>Actix кстати самый быстрый фреймворк на планете
Уже нет.
Аноним 13/08/21 Птн 12:07:54 2126495357
.png 277Кб, 1918x929
1918x929
>>2125960
> но щас всё норм
Щас там все эти ансейфы за которые его хейтили убрали без потери производительности. Правда есть один недостаток у актикса - он не отдаёт память которую забирает для кэшей: https://github.com/actix/actix-web/issues/2075 Не совсем утечка памяти, но всё равно неприятно, что при одном большом запросе актикс сожрёт всю память и не отдаст её.
Аноним 13/08/21 Птн 12:09:22 2126496358
Пацаны, помогите разобраться новчику.

Начал копать раст, наткнулся на оффсайте раста пример с использованием крейта ferris_says. ( как я понимаю, всем известная штука, раз на самой почти первой странице приведен в качестве примера) Этот крейт выводит на стандартный вывод аскии картинку в виде краба, говорящего строку, указанную на вход (условно). Начал смотреть исходник, а там, помимо краба, есть еще отрисованная скрепка. Так вот вопрос: как вывести эту скрепку вместо краба?
Аноним 13/08/21 Птн 12:09:51 2126498359
>>2126495
Правда это касается только веб-сокетов ("утечка" происходит в рамках одного соединения веб-сокета и при его закрытии вся память возвращается), но всё равно неприятно.
Аноним 13/08/21 Птн 12:12:46 2126502360
Аноним 13/08/21 Птн 12:14:33 2126507361
>>2126502
Спасибо, добрый человек!
Аноним 13/08/21 Птн 12:45:49 2126534362
Аноним 13/08/21 Птн 12:47:58 2126535363
>>2126534
Раньше экстерн крейт использовался чтобы указать расту что этот крейт будет использоваться дальше по коду, а затем ты из него импортировал юзом элементы. Сейчас (начиная с 2018 эдишна) экстерн крейт нужен только для импорта некоторых макросов.
Аноним 13/08/21 Птн 12:49:58 2126538364
Аноним 16/08/21 Пнд 01:13:13 2129187365
image.png 23Кб, 343x172
343x172
image.png 106Кб, 638x771
638x771
Читаю в книге про умные указатели. На пике пример вершины графа с Weak ссылкой на родителя. Мотивируют это следующим образом: если родительский узел удаляется, его дочерние узлы также должны быть удалены/если мы удаляем дочерний узел то родительский элемент все равно должен существовать. В следующем примере родителя помещают в скоуп где он дропается, но дочерний узел выживает. Можете подсказать, почему так?
Аноним 16/08/21 Пнд 07:50:07 2129292366
>>2129187
> Можете подсказать, почему так?
В твоём примере должно быть видно, почему. Потому что родительский узел, это не единственная сильная ссылка на дочерний узел. Пока сильные ссылки есть, узел будет жить.
Аноним 16/08/21 Пнд 11:57:31 2129441367
Привет. Как изучать данный язык с 0?
Аноним 16/08/21 Пнд 11:58:12 2129443368
Аноним 16/08/21 Пнд 11:59:06 2129446369
>>2129441
Берешь 0 и с него начинаешь.
Аноним 16/08/21 Пнд 12:03:33 2129451370
>>2129443
Я первый раз в треде.
>>2129446
Книга в шапке не для новичков.
Аноним 16/08/21 Пнд 12:11:01 2129456371
>>2129451
> Книга в шапке не для новичков.
Что вас не устраивает, милорд?
Аноним 16/08/21 Пнд 12:19:22 2129460372
>>2129456
В начале там написано что книга не для новичков и нужна база. Базы нет. Что делать?
Аноним 16/08/21 Пнд 12:31:19 2129467373
>>2129460
Найди книгу, у которой в начале будет написано, что она для новичков.
Потом прочитай эту книгу.
Аноним 16/08/21 Пнд 12:36:56 2129479374
>>2129467
Ясно. Ты тролль обыкновенный который не разбирается в языках. Кинул жалобу. Жди бан на доске.
Аноним 16/08/21 Пнд 12:41:46 2129487375
>>2129479
> РРРРЯЯЯЯЯ ДВАЧ КНИГА ТРЕБУЕТ БАЗЫ У МЕНЯ НЕТ БАЗЫ ПОМОГИ
> Прочитай книгу с базой
> РРРРЯЯЯЯЯ ДВАЧ МЕНЯ ТРОЛЛИТ РЕПОРТ
Аноним 16/08/21 Пнд 12:43:58 2129491376
Аноним 16/08/21 Пнд 12:46:05 2129493377
>>2129441
лучше сначала изучи си, это можно сказать база. дальше можешь все что угодно
Аноним 16/08/21 Пнд 22:03:19 2129959378
>>2107844 (OP)
Если кратко - раст ближе к С++ или к Goвну по "системности"?
Аноним 16/08/21 Пнд 22:08:06 2129963379
>>2129959
В чём выражается системность C++ или Go?
Аноним 16/08/21 Пнд 22:08:53 2129964380
>>2129959
Нет и нет
а на го что то системное пишут?
Аноним 16/08/21 Пнд 22:13:38 2129972381
>>2129963
>>2129964
Ну я имел в виду, что Го это не системный язык, а С++ это дефинишен системного языка. Например в говне нет работы с памятью и тредами напрямую, но при этом язык компилируемый с нативными типами и т.д. Собсна в этом и вопрос.
Аноним 16/08/21 Пнд 22:16:08 2129974382
>>2129972
> работа с памятью и тредами и напрямую
Это в расте есть
хзы правда что это значит
Аноним 16/08/21 Пнд 22:16:33 2129976383
>>2129972
> С++ это дефинишен системного языка
С ума сошёл. У C++ RTTI, в качестве системного языка не подходит.
C - это дефинишен системного языка.
Аноним 16/08/21 Пнд 22:17:17 2129977384
>>2129974
> хзы правда что это значит
Раст, 2к21, итоги
Аноним 16/08/21 Пнд 22:18:19 2129979385
image.png 123Кб, 1104x1132
1104x1132
Аноним 16/08/21 Пнд 22:41:13 2130001386
>>2129977
Хорошо, что значит работа с тредами напрямую?
Аноним 16/08/21 Пнд 22:41:20 2130002387
Разве в плюсах нет всех фишек безопасности из раста? Вроде есть. Так что получается, что c++ просто дает большую гибкость
Аноним 16/08/21 Пнд 22:41:54 2130004388
17/08/21 Втр 00:24:04 2130072389
>>2129979
Тут ещё не исключены вакансии, в которых "знание rust/Haskell/ещё какие-нибудь борщехлёбства будет плюсом"
Аноним 17/08/21 Втр 01:13:10 2130083390
>>2130002
В C++ даже restrict нету, который в C был, а сюда не завезли
Аноним 17/08/21 Втр 09:42:01 2130204391
>>2130083
В стандарте нету, а в компиляторах есть
Аноним 17/08/21 Втр 13:15:39 2130455392
>>2130204
У Visual Studio __restrict, а у clang уже __restrict__
Понимаешь, к чему я клоню?
К тому, что без поддержки стандартом у тебя нет абсолютно никакой гарантии
Аноним 17/08/21 Втр 13:31:57 2130485393
>>2130455
> Понимаешь, к чему я клоню?
Что как обычно придется обвешиваться дефайнами?

ну а что бухтеть, лет через 20 в стандарт введут
Аноним 17/08/21 Втр 15:56:20 2130682394
16274758166910.png 592Кб, 1920x1080
1920x1080
Здравствуйте. Как выучить Rust с нуля (знаний касательно программирования и языков нет вообще)? Клабник Стив книга "Программирование на Rust" "Если вы в программировании абсолютный новичок, то для начала прочтите введение в программирование". В книге этого "введения" нет. Что я должен прочитать? У этого языка нет будущего если он настолько недружелюбен.
Аноним 17/08/21 Втр 16:13:42 2130697395
>>2130682
Зачем тебе раст? Для вкатунов там денег нет.
Аноним 17/08/21 Втр 16:17:22 2130703396
>>2130697
Привет. Художник рисует не потому что он хочет денег. Программирование это творчество. Хочу писать код для себя, но не понимаю как изучать этот новый прогрессивный язык. У него ведь нет будущего с таким подходом.
Аноним 17/08/21 Втр 16:19:25 2130705397
Снимок экрана о[...].png 196Кб, 1920x1080
1920x1080
>>2130697
"Rust Язык, позволяющий каждому
создавать надёжное и эффективное программное обеспечение
Сайт говорит что каждый может создавать надежное и эффективное программное обеспечение на нем. Вот я хочу этим заняться. Только как?
Аноним 17/08/21 Втр 16:20:36 2130708398
>>2130703
Бери да пиши, по ходу действия будешь гуглить общие концепции. Художнику ведь монопенисуально как там на фабрике краски мешают.
Аноним 17/08/21 Втр 16:21:19 2130712399
>>2130705
Без задней мысли, не задумываясь о последствиях.
Аноним 17/08/21 Втр 16:23:33 2130715400
>>2130708
Как писать если я ничего не понимаю в этом языке? Покинь тред. Ты не программист и помочь не можешь.
Аноним 17/08/21 Втр 16:25:38 2130717401
>>2130708
Ты хочешь стать хирургом и оперировать. Сразу разрезать человека и оперировать нельзя - он умрет и ты ничего не понимаешь. Открываешь книгу по хирургии , но что бы ее понять нужна база. Говорят читайте введение в медицину. Что скрывается под этими словами неизвестно. Книг с таким названием нет. Что делать?
Аноним 17/08/21 Втр 16:28:40 2130719402
>>2130715
Ты читать-то пробовал книгу? Там для даунов все расписано что и зачем делать.
>>2130717
> Ты хочешь стать хирургом и оперировать.
Для этого есть аттестация, чтобы отсеять ноускилов. Для погромирования такого нет, потому что цена ошибки минимальна.
Аноним 17/08/21 Втр 16:29:33 2130721403
>>2130682
Как тебе уже выше советовали, начни с СИ. Либо, если ты хочешь научиться программировать, а не писать полнейшую ебень уровня yanderedev, то начни с БАЗЫ(архитектура ЭВМ, ОС, сети и т.д). Все таки rust - это системный язык, поэтому общее понимание этих вещей должно быть. Чтобы тебе пол жизни не читать труды Танненбаума и прочих великих людей, в качестве БАЗЫ я предлагаю тебе трехтомник Столярова. Это очень своеобразный персонаж, его есть за что критиковать(за его высказывания о современном вебе многие его вообще шизом считают), НО в своей области он разбирается очень хорошо и может чему-то научить. Пусть сайт тебя не пугает: http://www.stolyarov.info/books/programming_intro/e2
После освоения БАЗЫ можешь смело перейти на раст и писать свои проекты. Ну а если тебе вообще похуй, что ты делаешь, то послушай анонов выше и начинай говнокодить уже сейчас.
Аноним 17/08/21 Втр 16:32:16 2130726404
>>2130721
Ты не программист. Столярова и я загуглить смог. Вот я знаю русский. Хочу выучить английский, но для этого мне нужно учить персидский? Это бред.
Аноним 17/08/21 Втр 16:35:18 2130731405
>>2130719
Пробовал. Ее невозможно читать. Я ничего не понимаю и кидал скрины с нее что нужна база.
Аноним 17/08/21 Втр 16:35:57 2130733406
>>2130726
Все, пошел на хуй, зеленый. Зарепортил выблядка. Очень жаль потраченного времени на такого сына шлюхи.
Аноним 17/08/21 Втр 16:39:49 2130738407
Аноним 17/08/21 Втр 16:46:42 2130742408
>>2130726
Ты неправильно аналогию поставил. Си - это как раз английский в мире программирования.
В твоём случае ты знаешь русский и тебе нужно выучить персидский. Да, для этого хоть и не необходимо не ебу, есть ли учебники по персидскому на русском, но желательно сначала выучить английский.
Аноним 17/08/21 Втр 16:49:52 2130747409
>>2130733
Покинь тред. Ты не программист, а лишь тролль.
>>2130742
Нет правильно. Си старый как говно мамонта язык, небезопасный и устаревший. Там процедурное программирование дядя, а в расте ооп. Тут 2 варианта. Учить сразу с++ и кодить на нем забивая попутно на раст либо по нормальному выучить раст с нуля.
Аноним 17/08/21 Втр 16:51:06 2130750410
image 99Кб, 300x256
300x256
Аноним 17/08/21 Втр 16:56:58 2130753411
>>2130747
>Си старый как говно мамонта язык, небезопасный и устаревший.
Ох, откуда же вы такие беретесь?
Аноним 17/08/21 Втр 18:23:24 2130867412
image.png 123Кб, 1104x1132
1104x1132
>>2107844 (OP)
А зачем нужен язык, на котором нельзя писать за деньги? Или вы тут просто как хобби балуетесь им?
Аноним 17/08/21 Втр 18:29:30 2130873413
>>2130753
Ну пройми же, детям важно чтобы было ак-ту-аль-но. Мода есть мода.

>>2130867
Нужны деньги - иди в бизнес. Здесь люди обеспеченные сидят и проблемами нищуков не интересуются.
Аноним 17/08/21 Втр 21:55:53 2131110414
image.png 2597Кб, 1200x811
1200x811
image.png 2446Кб, 1920x1080
1920x1080
>>2130867
Впервые создан современный язык, на котором ты можешь написать все. Представь, больше нет потребности в выборе того или иного языка, мол, "сегодня я пишу на питоне, а завтра под эту задачу выберу го, а на выходные я буду настраивать гарбейдж каллектор в жабе!!!". Ты только представь, тебе не надо больше писать на кривом го эти бесконечные ерорки! Не надо выравнивать копипасты со стековерфлоу в питоне! Тебе не надо пролистывать сотни тысяч полупустых классов на джаве, чтобы добраться до бизнеслогики. Блин, тебе даже не нужно переписывать калбэки в промисы, а потом в асинки на жопоскрипте!!! Тебе не нужно бороться с GIL, тебе не нужно просить друга установить сраную жабо-питоно-нода-машину, чтобы он посмотрел твою хеллоувордик!

ВСЕ!!! Закончилась эпоха кустарных языков в ИТ, да здравствует промышленная АЙТИ революция!!!!

Вот скажи, нафиг тебе какая-то оплата, когда ты находишься в грандиозном историческом моменте времени и можешь прикоснуться к великому первым??
Аноним 18/08/21 Срд 01:50:51 2131274415
>>2130747
ФУ БЛЯТЬ ФУ НАХУЙ КАКОЕ ООП, У НАС НЕТ ООП, УНЕСИ ЕГО ОТСЮДА НАХУЙ
Аноним 18/08/21 Срд 02:28:03 2131279416
>>2131274
Можно до определённой степени имитировать трейтами. Но да без аналога абстрактных классов ООП уровня жяв, с++ и подобных языков реализовать не получится.
Аноним 18/08/21 Срд 03:17:36 2131288417
>>2131274
> нет ООП
А нахой тогда этот раст ваш нужен? Лучше уж в го пойти тогда, пиздец бумеры бесятся итт
Аноним 18/08/21 Срд 03:24:20 2131289418
>>2131288
В го тоже нет абстрактных классов. Так что в модно-молодёжных языках полноценного ооп нету.
Аноним 18/08/21 Срд 06:21:12 2131303419
>>2131288
В кокотлине тоже по дефолту все классы финальные. ООП на практике провалилось. Сейчас в мире джавы даже принят такой процедурный подход, когда у тебя есть тонкие данные и рядом сервисы, которые не имеют состояния (что это, как не структуры и набор функций).
Аноним 18/08/21 Срд 10:44:51 2131441420
>>2131303
Хз, ООП сектанты все еще продолжают клепать "идиоматичное" ооп на джаве и шарпах, по крайней мере на моем опыте. Старую собаку новым трюкам не обучить.
Аноним 18/08/21 Срд 11:14:02 2131450421
>>2131441
Хз как во всей джаве. Уверен что мобильная разработка там тоже дров подкинула. Но там где я варился везде насаждалось идея "анемичных данных".
https://www.martinfowler.com/bliki/AnemicDomainModel.html

И да, люди на серьезных щах обсуждали плюсы этого подхода (даже не понимая, что заново открыли процедурное программирование, только в рамках ООП).
Аноним 18/08/21 Срд 14:30:49 2131743422
>>2131450
Вот так Матрица и появилась.
Аноним 18/08/21 Срд 20:24:08 2132144423
image.png 455Кб, 900x900
900x900
Что-то меня модули прям разочаровали. Сначала нефига не понял (читая Раст Бук). Потом пошел в инет и вроде как понял, но офигел от такого сколько надо бойлеплейта писать в */mod.rs.
Просто вот вечная какая-то беда с языками. Читаешь, читаешь все логично и правильно и потом бац! И какашка! Огромная, мерзкая вонючая какаха!
Ну как так, зачем?? Открыл сорцы и действительно пишут этот бойлерплейт с mod и use.
Аноним 18/08/21 Срд 20:25:44 2132147424
Аноним 18/08/21 Срд 20:35:31 2132151425
Аноним 18/08/21 Срд 20:37:05 2132154426
>>2132147
Видимо он хочет чтобы pub работал как pub(crate), модуль импортировался не при помощи mod abcd; в коде, а по факту существования файла и по-умолчанию модуль экспортировал весь pub-контент из подмодулей. Тогда действительно ничего кроме импортов писать не надо.
Аноним 18/08/21 Срд 20:40:45 2132156427
>>2132154
> по-умолчанию модуль экспортировал весь pub-контент из подмодулей
Хотя впрочем оно и сейчас так работает. Реэкспорт делают чтобы вместо use foo::bar::baz::huinya; писать что-то вроде use foo::huinya;
Аноним 18/08/21 Срд 20:51:37 2132161428
>>2132147
Да обычные импорты по пути
/src/dir1/dir2/sub_module.rs
/src/sub_file.rs

use ProjectName::dir1::dir2::sub_module::SomeScruct
use ProjectName::sub_file::some_function

если имя пакета совпадает из зависимостями, сделать конструкцию типа
use Path as PathOther
use PathOther::Rnd::get_num


Сделать все что в текущей папке доступно всем локально (на уровне пакета), а то что выше через pub. Получиться что папка пакета будет представлять нечто типа API с публичным набором, а все кишки внутри спрятаны (через свой pub).
Ну или вообще не париться и отказаться от этого каскада, на просто на месте помечать pub.
Аноним 18/08/21 Срд 20:54:51 2132162429
>>2132151
Неее недостаточно сложно и запутанно, нельзя.
Аноним 18/08/21 Срд 21:08:38 2132174430
>>2132161
Наоборот пытались отвязаться от структуры файловой системы, а ты обратно хочешь папки и файлы.
Аноним 18/08/21 Срд 21:09:52 2132176431
>>2132174
> а ты обратно хочешь папки и файлы
Не, ну хорошо же зделоли.
Аноним 18/08/21 Срд 21:25:48 2132196432
>>2132174
Зачем?? Чтобы можно было работать только с "правильной" ide, а сам пути не мог найти? Все равно так или иначе упирается в пути и их используют. Что там победили то?
Аноним 18/08/21 Срд 21:29:52 2132200433
>>2132176
Зачем ты подпукиваешь? Это же анонимный форум, твою лизоблюдство не оценят.
Аноним 19/08/21 Чтв 00:30:25 2132328434
>>2132144
С растом всегда так. Сначала смотришь - вроде и синтаксис хороший, и завезли красивые "функциональные" (сорт оф) фичи. И типа безопасный язык. И нет бумерского ооп говна из цпп. А начинаешь копать глубже - борроу чекер вставляет колеса там, где оно совсем не нужно. Куча бойлерплейта с лайфтаймами и трейтами. Неинтуитивная система модулей и не тривиальная сложность в имплементации простейших структур данных, таких как графы и связанные списки (с zero overhead, то есть без cell и тем более refcell). Идея с борроу чекером отличная, но имплементация оставляет желать лучшего, потому что на текущий момент он защищает только от самых тривиальных проблем.
Аноним 19/08/21 Чтв 00:38:30 2132335435
>>2132328
> борроу чекер вставляет колеса там, где оно совсем не нужно.
Самый крупный недостаток из современного борроу чекера исправят в 2021 эдишне: https://github.com/rust-lang/rust/issues/88126 Правда ценой увеличения размера некоторых замыканий.
В остальном вкусовщина. Те же "простейшие структуры данных" в реальном коде ты никогда не пишешь.
Аноним 19/08/21 Чтв 06:56:19 2132430436
>>2132196
>Зачем?
Как минимум потому что файловой системы может вообще не быть. Или чтобы можно было менять логистику проекта независимо от логики, когда большой mod{} просто перемещаешь в отдельный файл, ничего не меняя в коде. Потом делаешь его отдельной директорией, а содержимое перемещаешь в mod.rs. Независимость внутренней структуры программы от внешней структуры исходных кодов — это хорошо, или ты не согласен?
Конкретно можешь почитать в обсуждениях rfc. Там всегда первый аргумент "подумайте о новичках!", как "подумайте о детях!", что я нахожу забавным.

>а сам пути не мог найти?
Покажи пример, где ты не смог путь найти?

>Все равно так или иначе упирается в пути и их используют. Что там победили то?
Например, можно все .rs запихать в один файл тупым рекурсивным скриптом, который просто содержимое всех файлов оборачивает в mod <название>{} и оно будет работать без изменений.



Если тебе прям очень хочется, то есть
#[path = "foo.rs"] mod c;
директива
https://doc.rust-lang.org/reference/items/modules.html#the-path-attribute
Но, конечно, после такого тупым скриптом не обойтись.


>>2132200
Если ты решил, что это я себе двачую, то ты ошибся. Я так понял, он вообще твою позицию поддерживает.
Аноним 19/08/21 Чтв 07:53:24 2132443437
>>2132328
>и не тривиальная сложность в имплементации простейших структур данных, таких как графы и связанные списки (с zero overhead, то есть без cell и тем более refcell)
Если ты знаешь как тривиально и безопасно имплементировать с zero overhead простейшие структуры данных в других языках, то просто пишешь unsafe{} и имплементируешь их. "Умные" инструменты раста могут не всё, это никакой не сюрприз, поэтому тебе и предоставлены глупые инструменты, при работе с которыми умным придётся быть тебе.
Аноним 19/08/21 Чтв 09:25:14 2132477438
>>2132430
Я открыл сорцы на гитхабе и увидел тонну бойлерплейта в mods.rs.
Самое смешное, что это нечто похожее на импорты в питоне. Я даже по началу испугался что есть циклический импорт (но вроде сказали что нет).

Проблема всего этого было не васянстве такой системы, а в том, что нормально это нигде не написано. Мол "mod" описывает модуль, а если без тела он !!!!импортирует. И это я смог узнать только прочитав статью от человека, который тоже на этом месте запнулся.

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

>Например, можно все .rs запихать в один файл тупым рекурсивным скриптом
Зачем? Это демонстрация из серии "смотри как могу" или что? Все что я видел на гитхабе, все это завязано на путях. Да и как бы хер бы с этими путями, самый шлак это писанина в mod.rs
Аноним 19/08/21 Чтв 09:36:46 2132488439
>>2132328
У меня уже тоже стала закрадываться идея о некой "сырости" раста. Я думал весь хейт был связан с бородатыми плюсовиками, которые бояться за свои места и не хотят переучиваться. Но в реале чет не все так радужно.

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

Попробую, конечно, осилить доку. Но чувствую что будут ждать какой-нибудь выпук от МС, который на фоне проб и ошибок раста выплюнет годноту. Что, что, а МС умеет дизайнить языки

Аноним 19/08/21 Чтв 09:49:21 2132520440
1) Мне вот без хейта интересно как решается проблема с одинаковыми именами пакето и крейтов
use Some::something::
use Some::other::

Ну, типа в жабе есть приписки к доменам, а тут как это победили?

2) Есть ли возможность подключить одну и ту же библиотеку разных версий? То еще васянство, знаю, но все же. Мало ли я там постепенно переписываю часть кода под новую версию либы
Аноним 19/08/21 Чтв 10:13:06 2132567441
>>2132443
> просто пишешь ансейф
Чо-то нихуя не просто
Аноним 19/08/21 Чтв 10:26:51 2132583442
>>2132477
Друг, ну, ты не понял, хорошо. Но ты уверен, что если ты не понял, то это надо поменять? Ты так ко всему подходишь?


>>2132520
>Мне вот без хейта интересно как решается проблема с одинаковыми именами пакето и крейтов
Не бывает крейтов с одинаковыми именами, индекс crates.io глобальный. Если ты свой крейт назвал так же, как существующий, то придётся переименовать. Такое вот решение, со своими преимуществами и недостатками.
Аноним 19/08/21 Чтв 10:54:45 2132623443
>>2132583
>Друг, ну, ты не понял, хорошо. Но ты уверен, что если ты не понял, то это надо поменять? Ты так ко всему подходишь?
Понимаешь, от системного языка я чаще жду что-то типа "мы сделали так, потому что по другому не смогли и вот тебе причина, живи с этим...". В любом случае ты осознаешь что ты на системном языке и ты готовишься к неизбежному бойлерплейту и так, потому что знаешь такова цена отсутствия абстракций. И тут блин, ты видишь, что просто копируют не самую лучшую модель пакетов из питона. Ты осознаешь, что люди просто не старались, они создали бойлерплейт на ровном месте, в таком языке, где этому большая цена.
Я не люблю художников, мне не надо красиво, мне надо удобно.

>Не бывает крейтов с одинаковыми именами
То есть, я не могу сделать себе локальное хранилище своих крейтов? Мне надо будет свой код всегда публиковать? Очень интересное решение, на моей работе всем бы это "понравилось", мы любим хранить свой код на внешних серверах публично (рили опять васянство??).
Аноним 19/08/21 Чтв 11:03:19 2132638444
> ну раз системный язык то все должно быть продумано
Это с чего вдруг такой тезис появился
Другим языкам дозволено менее продуманными быть?
Аноним 19/08/21 Чтв 11:10:33 2132649445
>>2132623
> не смогу сделать локальное хранилище своих крейтов
А что тебе может помешать сделать это?

мимо вкатыш студентота ничего не понимающая
Аноним 19/08/21 Чтв 11:11:51 2132653446
>>2132623
>Понимаешь, от системного языка я чаще жду что-то типа "мы сделали так, потому что по другому не смогли и вот тебе причина, живи с этим...".
Весь процесс принятия решений открытый и решения расписаны в rfc. Что тебе ещё не хватает? Ссылки? Вот ссылка
https://github.com/rust-lang/rfcs
Все решения с 2014 года там.

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


>То есть, я не могу сделать себе локальное хранилище своих крейтов? Мне надо будет свой код всегда публиковать?
Где ты это прочитал? Я там такого не писал.
Аноним 19/08/21 Чтв 11:30:17 2132683447
>>2132638
Там же тебе и ответ расписали. Попробую по-медленней:
-Системный язык более подвержен бойлерплейту за счет отсутствия многих абстракций.
-Значит системный ЯП более чувствителен к плохому дизайну. То есть, нет возможности навернуть абстракцию, которая за некую стоимость ресурсов пофиксила бы что-то.

Например плохой дизайн засунуть сырой поток байт и потом назвать это строкой (как в го и вроде в расте так же). Теперь всегда чтобы работать с позициями юникода нужно будет переводить в руны (нормальную последовательность из юникод элементов), что не бесплатно.
Аноним 19/08/21 Чтв 11:33:27 2132685448
>>2132653
>Где ты это прочитал? Я там такого не писал.
Это вопрос, лол. Это вопрос на основе твоего утверждения. Добро пожаловать в азы диалога.
Аноним 19/08/21 Чтв 11:37:27 2132694449
>>2132685
Хорошо, перефразирую.
>Это вопрос на основе твоего утверждения.
Как на основе моего утверждения у тебя появился этот вопрос? Для меня это non sequitur
https://www.thefreedictionary.com/Non+sequitor
Аноним 19/08/21 Чтв 11:37:54 2132696450
>>2132649
Не знаю, дядя не может нам объяснить как построено решения конфликтов имен в расте.
Сначала он говорит что надо как-то завязаться сайт, но потом вроде как и не надо (несет невнятную фигню).
Вероятно дядя сам не знает и уже просто маневрирует.
Аноним 19/08/21 Чтв 11:42:54 2132704451
>>2132683
Когда же хоть кто-нибудь уже изобретет препроцессор, чтобы не повторять код. А то бедным программистам не под силу читать много букв, а сделать препроцессор сами для своей задачи у них лапки. Как это они что ли код должны будут писать, а не просто вызвать стандартные функции?
Мимо
Аноним 19/08/21 Чтв 11:44:32 2132709452
>>2132683
Так можно же спокойно с аски работать
b"" и все, напрямую с байтиками работаешь
Аноним 19/08/21 Чтв 11:51:13 2132719453
>>2132683
Это мир гуманитарных-программистов. Они экономят на строках, но потом выплевывают "хеллоу ворд" в 2-4 мегабайта. Это безумие уже не остановить.
Аноним 19/08/21 Чтв 12:54:59 2132789454
[joke_mode]
Сейчас пацаны из Имперского Колледжа Лондона запилят Verona, так что всем кто участвовал в эксперименте раста, отдельное спасибо, все свободны.
Аноним 19/08/21 Чтв 14:56:42 2132915455
>>2132789
>verona
самое худшее, что можно придумать. вместо запила новых языков с новыми концепциями и улучшения старых. будут переизобретать одни и те же. микрософт дропнул уже дохуя интересных исследовательских языков, почему он не дропнет эту пародию на раст. действительно, вместо работы над растом будут пилить недораст.
>эксперименте раста
раст это не экспериментальный язык
Аноним 19/08/21 Чтв 15:26:46 2132950456
Аноним 19/08/21 Чтв 15:42:20 2132966457
Аноним 19/08/21 Чтв 16:20:02 2133010458
>>2132915
Вообще-то там исследование и конкретно исследуют улучшенную концепцию раста (множественное владение) в условиях конкаренси (ну еще что-то там из языка пони и циклона) и вроде с интеропом С++.

Хочу ли я лично чтобы это переросло в новый язык программирования - конечно. Что в этом плохого, когда есть несколько концепций? Тем более умные люди из МС умеют дизайнить языки.

Ну и у МС есть ресурсы чтобы такое делать. Искренне уже надоело, когда сейчас чуть ли не каждый высирает очередные поделие. Типа на те, пилите дальше сами, "мы шмогли" (и то где-то половину синтаксиса, а остальное просто нагадили в торопях)!
Аноним 19/08/21 Чтв 16:21:02 2133012459
>>2132950
Да, будешь мне оформлять mod.rs в каждом каталоге, пока я пишу код.
Аноним 19/08/21 Чтв 18:22:29 2133166460
Накидайте картинок для переката.
мимоОП
Аноним 19/08/21 Чтв 18:33:33 2133177461
>>2133010
Да, почитал о нём. На раст он кстати не похож, но довольно интересно там даже есть анонимные? конструкторы
>value: (iso & Value) | (None & imm);
и variadics
>length[T...](x: T...): USize
>>2133010
только экспериментальные наработки мс мало где используются, кроме F* который заюзали для mitls и всё.
>очередные поделие
В этом и был поинт, всё чаще выходят языки типа vale, vlang, hare, etc, которые вроде не предлагают безопасность, но пытаются копировать раст, не понимая сути безопасности раста.
Аноним 19/08/21 Чтв 18:36:27 2133178462
Сап, аноны. Собирал, значит, alacritty из исходников раста, а он мне под конец компиляции выдал
LLVM ERROR: out of memory.
Хули теперь делать?
Аноним 19/08/21 Чтв 18:42:07 2133185463
>>2133178
Обновлять пекарню, очевидно же. Ну или хотя бы просто добавить памяти. Можно ещё попробовать увеличить свап, но будут тормоза.
Аноним 19/08/21 Чтв 18:45:12 2133190464
Аноним 19/08/21 Чтв 18:46:37 2133193465
>>2133185
>Обновлять пекарню, очевидно же. Ну или хотя бы просто добавить памяти.
Неужели 16гигабайтов ОЗУ для компиляции эмулятора терминала в 2021 году мало?
Аноним 19/08/21 Чтв 18:48:05 2133195466
>>2133193
Там 32гигов уже для компиляции хрома мало. Особенно если используешь какой-нибудь LTO (который можешь попробовать выключить, у раста по-умолчанию включена лайт-версия - thinLTO).
Аноним 19/08/21 Чтв 18:50:43 2133200467
>>2133178
UPD: Проблему с памятью решил, поигравшись с настройками системы. Теперь новая хуйня появилась
fatal runtime error: Rust cannot catch foreign exceptions thread
Аноним 19/08/21 Чтв 18:54:38 2133207468
>>2133200
>Rust cannot catch foreign exceptions thread
АГА! Значит у кого-то в расте исключения есть, да? Как скачать премиум версию раста?
Аноним 19/08/21 Чтв 18:54:48 2133208469
>>2133195
>Там 32гигов уже для компиляции хрома мало.
ИТ, 2021. Итоги.
Я вроде бы не хром собираю... Пиздец, почему так быстро требования к железу растут?
Аноним 19/08/21 Чтв 18:58:09 2133212470
rust.jpg 60Кб, 760x383
760x383
buildtolast.png 2132Кб, 1500x882
1500x882
flat,750x,075,f[...].jpg 77Кб, 750x1000
750x1000
Аноним 19/08/21 Чтв 18:58:28 2133213471
>>2133207
Вообще есть. Если при компиляции включить unwind их даже в рантайме ловить можно: https://doc.rust-lang.org/std/panic/fn.catch_unwind.html

А у того явно какие-то проблемы с FFI в библиотеке и скорее всего С++ код бросает эксепшон, который пробирается через FFI в растокод.
Аноним 19/08/21 Чтв 18:59:04 2133214472
1629388771383.jpeg 29Кб, 400x384
400x384
Аноним 19/08/21 Чтв 19:00:15 2133215473
>>2133212
Спасибо, анон.
Сейчас буду шапку переделывать и ближе к ночи перекачу.
Аноним 19/08/21 Чтв 19:00:48 2133216474
>виртуалка
>archlinux x86_64
>1GB RAM 1 processor
>swap 2GB
как нехуй делать собрал alacritty
а вот попробуйте собрать агду
Аноним 19/08/21 Чтв 19:03:31 2133218475
image.png 618Кб, 900x900
900x900
>>2133195
>Там 32гигов уже для компиляции хрома мало
Серьезно чтобы скомпилить эмулятор консоли надо больше 16гигов??

мимо
В 2004 перешел в программирование, потому что пека не тянула игры, в 2021 ушел в игры, потому что пека не тянет компиляцию
Аноним 19/08/21 Чтв 19:04:51 2133221476
>>2133218
и это еще не предел
дальше хуже
Аноним 19/08/21 Чтв 19:05:21 2133222477
>>2133216
Вот смотри, я алакрити на опенке собираю. Алгоритм действий, примерно, такой: git clone github/foobar-project.git => cd foobar-project => cargo build --release.
Под конец проблема с glutin и линковкой.
Аноним 19/08/21 Чтв 19:05:39 2133223478
>>2132789
Чисто вот с позиции "а что, а вдруг", как считаешь, какая основная парадигма может быть у Вероны? Навернут побольше функционалочки, если даже Святой Кармак за неё топит?
Аноним 19/08/21 Чтв 19:07:24 2133228479
>>2133215
Если уж с программированием у меня не задаётся вообще, то хоть треды помогу перекатывать, лул.
Аноним 19/08/21 Чтв 19:24:21 2133248480
>>2133223
Я навернул только ту инфу, которая была общедоступна (не осилю я сорцы). Вероятно хотят упростить раст и скрестить с конкурентностью (не удивлюсь что пытаются под копот убрать как в го асинки).

Когда инженера комментировали раст, они там так сказали, мол в целом раст их устраивает. И в таком ответе можно уловить две нотки.

1) Раст имеет "фатальный недостаток" (читай на лурке), то есть, он принадлежит не им! И вот сейчас они что-то пилят, но это что-то должно выйти с какими-то плюшками, которые подкупят нового обывателя (нельзя просто сделать второй раст).

2) Либо раст хорош, но имеет какие-то нюансы, которые правда не устраивают инженеров, но идея их зацепила и типа пилят исследуют как сделать лучше.

А еще я нарыл какую-то инфу про новый язык НЕ структурного программирования "bosque". Не удивлюсь если мы увидим новый "раст" в новой парадигме кодинга, да еще в стиле тайпскрипта (как bosque).
Аноним 19/08/21 Чтв 19:30:08 2133256481
>>2133248
Экосистема .Net - не плюшка?
Аноним 19/08/21 Чтв 19:48:03 2133277482
>>2133256
Плюшка в технических возможностях языка.
Мое имхо - исследуют как сделать проще владение, рассчитанного на среднего программиста и исследуют возможность как спрятать конкаренси под капот (это делает его использование проще некуда).

Возможно результат исследование будет таким, что и раст себе на вооружение возьмет. Или ничего не получиться.
Аноним 19/08/21 Чтв 20:34:30 2133342483
Посоветуйте интересный туториал.
Аноним 19/08/21 Чтв 20:38:49 2133350484
Аноним 19/08/21 Чтв 20:41:26 2133353485
>>2131110
хуя маняфантазии у шизоида
таблетки закончились?
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов