Rust — невероятно быстрый язык для системного программирования без segfault'ов и с гарантиями потокобезопасности. https://www.rust-lang.org/ru-RU/https://doc.rust-lang.org/book/https://rustbyexample.com/https://github.com/rust-unofficial/awesome-rustСтарый тред тонет тут >>1062380 (OP)
>>1154517 (OP)Вкокотился :3
>>1153414Japaric запилил rust embedded working groupЯ пока светодиодами безопасно мигаю на stm32f3discovery с помощью его rtfm, но пробую завернуть lwip в раст и мигать диодами по http/ethernet на nucleo767zi
Ну вот при чем тут крабы, когда язык назван в честь семейства мерзотных грибов
Rust (англ. rust — ржавчина, произносится [rʌst] — раст) — мультипарадигмальный компилируемый язык программирования общего назначения, спонсируемый Mozilla Research, сочетающий парадигмы функционального и процедурного программирования с объектной системой, основанной на типажах, и с управлением памятью через понятие «владения» (систему аффинных типов[en][5], позволяющую обходиться без сборки мусора). Объектно-ориентированное программирование как таковое языком не поддерживается, но язык позволяет реализовать большинство понятий ООП при помощи других абстракций[6].Ключевые особенности языка: безопасность, скорость и параллелизм. Rust пригоден для системного программирования, в частности — рассматривается как перспективный язык для разработки ядер операционных систем[5]. Rust сопоставим по скорости и возможностям с C++, однако даёт большую безопасность при работе с памятью, что обеспечивается механизмами ограничения. Rust также направлен на достижение «абстракции с нулевой стоимостью»[7].После нескольких лет активной разработки первая стабильная версия (1.0) вышла 15 мая 2015 года, после чего новые версии выходят раз в 6 недель[8]. Для версий языка, вышедших после 1.0, заявлена обратная совместимость[9].Язык отчасти берёт своё название от грибов семейства ржавчинные (англ. rust fungi)[10].
>>1154947
Новый маскот треда?
>>1154949Напомнило прыщи у меня на лобке, после того как шлюху выебал
Меня вот напрягает, что там у них пидоры в этой команде коре девелоперов блин, и эти лесбиянки, и нигеры. Вот эта тема вас не напрягает?
>>1156338Нет, я же не гомофоб и не расист.
>>1156338Чем тебя это напрягает? А если у них в кор-тиме старый жирный мужлан который бухает и пиздит жену и детей, но при этом он охуенный кодер. Это тебя бы напрягло?
>>1156338то ли дело c++ комьюнити: на той же конференции cppcon НИ одной бабы, НИ одного негра, только белые полноватые очкарики и чутка азиатовхе хе
>>1156359Скоро с++ запретят, я гарантирую это. Учите раст, глупцы! Спасайте свои полноватые белые задницы!
о у вас и тредик свой, спрошу и тут пожалуй>writeln!()как вы с этим живете анончики?
>>1156359Неправда, бабы там есть. Одын, два, может даже тры баба. Просто трудно в С++ бабам вкатиться. Зато и политкорректного дерьма пока ещё не наблюдается.
>>1156346>Чем тебя это напрягает?Тем, что пидары больше ебней в жопу занимаются, чем предметной областью. Так как это дело происходит в Сан-Франциско, где либе/пиде-растия и рассовые квоты заменяют здравый смысл, то нормальным людям там делать нечего.
>>1156484Отлично живём. Это лучше, чем макросы неотличимые от функций.
>>1154517 (OP)Эй Растач. Есть телега по сабжу? И если нет, то какого хера ещё никто не запилил?
>>1156484В чем проблема-то?>>1156539Ой все. Жирный.>>1156761Тебе че мало irc/gitter?
>>1156761rustlang_ru
>>1156827нефти тебе
>>1154517 (OP)https://news.ycombinator.com/item?id=16585120tldr:https://sqlite.org/whyc.html>1. C Is Best>C was and continues to be the best language for implementing a software library like SQLite.https://sqlite.org/testing.html>SQLite library consists of approximately 125.4 KSLOC of C code.>the project has 730 times as much test code and test scripts - 91616.0 KSLOC.
>>1156537> Просто трудно в С++ бабам вкатитьсяче несет>>1156686>writeln()выглядит ужасно и неотличимо, да?>>1156805лол, этот даже не замечает
>>1156842И че?
>>1157022>выглядит ужасно и неотличимо, да?Ээ, ты походу не понимаешь, что такое макросы. Иди растбук читай. writeln() действительно выглядит неотличимо от функции, твой КО. Я другой анон, если что.>>1157025Подумой :3
>>1157031>действительно выглядит неотличимо от функциит.е writeln() не фукнция в расте?
>>1157040
>>1156842> Since its inception on 2000-05-29,В каком году написан артикл?
Что на счёт метапрограммирования и функциональщины в расте?
>>1157637Сьтё насёт митапрягряммилования и функсиональсины в ласте?
>>1157637Их есть у меня. Че спросить то хотел?
Если вы в 20 лет хотели создать свой язык - у вас нет сердца, а если вы в 40 лет его создали - мозга.
>>1158092Красиво
>>1154517 (OP)Хочу вкатиться в раст каким-нибудь петпроджектом (сам аутсорс-питон-макака).Думал выбрать просто асинк веб-сервер для какого-нибудь мелкого сервиса.Нагуглил http://www.arewewebyet.org/ но нихуя не могу определиться, готемы, рокеты, shio.Похуй на ORM, могу и руками написать, но нужен же асинхронный посгрес, верно? Вообще с асинхронщиной знаком мало, может кто что подскажет?
>>1158973Бля нетуда.
>>1157637Что то, что другое - боль. Раст - императивный язык без метамагии, что, в общем-то, нормально, а если для тебя метапрограммирование - это с++, то слава богу, что сфинае ада нет.
РАСТоманы, что насчёт поддержки rust-avr? Никто не знает статус?
Глянул статейку сравнения с кусками когда, когда раст лучше плюсов. Половина примеров так себе, т.к. компиляция с правильными флажками так же пошлёт нахуйНемного заинтересовало, есть интересные рюшечки в ваших растах:3Теперь думаю, чего можно сделать, чтобы ощутить всю мощь?И как дела с интеграцией сишных либ?
>>1161572Многопоточный рейтрейсинг
>>1161658>>1161572Бля, не осилил.Почитал гайды, нихера не втащил. Для начала решил развернуть односвязный список. Оказывается чуть ли не книга написана, как на расте сделать односвязный список. Я в шоке, чё так сложна? Зачем эта тонна новых БИЗОПАСНЫХ концепций и конструкций?Я вообще потерял суть, какая область применения вашего раста? Для кровавого даже ООП нормального нет. Тонна конструкций, которые хрен знает как ложаться на реальное железо. Невнятный оверхед на рантайм, т.е. на контроллеры не влепить. Если в Си сразу понятно, как это машина исполняет, то раст это беттоная абстракция между кодом и железом. Добавить к этому отсутствие нормальной поддержки со стороны IDE и почему для винды из коробки не стоит gdb?!Это просто дно, ребята. Я кончил.
>>1165455Маня, если тебе нужны односвязные списки, лиспотред тут где-то рядом тонет.
>>1165456Слышь, епт, это мамаша твоя тут рядом тонет, понел?>>1165455>Почитал гайды, нихера не втащил.Это-норма.пнгНе торопись, анон. Постарайся разобраться в линейных типах, овнершипе и борровинге. Просто ты привык к тому, что знаешь, и мозг сопротивляется новым концепциям. Это нормально, если ты уже не тинейджер.>раст это беттоная абстракция между кодом и железом.Zero-cost abstractions на то и зиро-коуст, что они существуют для проверки правильности исходного кода компилятором, но не влияют на генерируемый код. Так что никакой бетонной стены нет, байты-байтики все на месте.Короче, попробуй все-таки еще раз почитать растбук, вдумчиво и не торопясь. Если ты не вундеркинд из гугл лабс, то ничего удивительного или ненормального в том, что "бля, не осилил" нет. Про списки куча примеров есть вот тут: http://cglab.ca/~abeinges/blah/too-many-lists/book/Ну и я бы не рекомендовал пользоваться для разработки виндой, так как обычно она поддерживается плохо\никак, все на *никсах сидят. Но это так, личное дело каждого.
>>1165479Спасибо, по делу и адекватно. Попробую подойти с другой стороны.Я эту статью по спискам и имел ввиду.Кстати, посоветуй каким тулчейном лучше пользоваться для обучения и как профилировать код?
Аноны, есть ли из вас кто-то, кто на этом ржавом поносе что-то полезное пишет? Работает в компании какой может? Хочу кулсторию.
>>1165491>каким тулчейном лучше пользоватьсяЯ имаксоеб, так что... пикрелейтед.>для обученияНу, у них же вроде нормальная онлайновая идешка, доя обучения самое то, ну или repl.it из той же серии.>как профилироватьhttps://gist.github.com/KodrAus/97c92c07a90b1fdd6853654357fd557a - линукс он и в африке линукс.Дисклеймер, в продакшене я его не юзал я вообще тут мимо проходил на самом деле, лол, просто I know that feel сработало, так что по поводу изысканной ебли с перфомансом под разными платформами я тебе хуй чего подскажу. Но опять же, сомневаюсь, что тебе понадобится что-то в корне отличное от стандартных нативных тулзов.
>>1165492У нас бэкенд на расте. Подробней расскажу через месяцок.
>>1165591Ну это конечно гуд, но это не угроза C++.Мне просто интересно, правда ли что есть тенденция замены C++ на Rust или на что либо ещё?Примерно такая же как замена Obj-C на Swift?
>>1166138Тенденция такая — кресты никто не любит, кто бы что не говорил. Поэтому те у кого есть возможность, заменяют его на другие инструменты, и раст неплохой кандидат.
>>1154517 (OP)Вопрос от нюфани:Стоит ли вкатываться в rust ради web'а?
>>1166153Для бэкенда — стоит.Для фронта пока не понятно. Но wasm выглядит очень интересно.
>>1166140Разрешаю не любить кресты до 11 стандарта.Современные кресты вообще норм.Кстати, хочу задать вопрос холивара ради.Критична ли просадка производительности браузера, web сервера или ОС на 10-20%, по скорости и по памяти?
>>1166291Ответ холивара ради, почему мозиловцы несколько раз безуспешно пытались сделать парелельный цсс движок на крестах, и каждый раз обсирались. Зато когда сделали его на расте, квантум стал прям летать?
>>1166308> почему мозиловцы несколько раз безуспешно пытались сделать парелельный цсс движок на крестах, и каждый раз обсиралисьА они пытались? Где можно прочитать про их путь проб и ошибок? Почему то в хромоге сделали на плюсах и все заебись работает.
>>1166323https://habrahabr.ru/post/336722/Походи по линкам в статье.
>>1166325> Лин — инженер в команде Mozilla Developer Relations. Она работает с JavaScript, WebAssembly, Rust и Servo. А также рисует code cartoons.Круто. Статья от бабы, которая с плюсами даже не работала.
>>1166329На, https://blog.rust-lang.org/2017/11/14/Fearless-Concurrency-In-Firefox-Quantum.html, ксенофоб, вонючий.
>>1166329Какая разница кто написал статью? Код есть, работает прекрасно, брат жив.
>>1166340В хромоге тоже есть, все работает прекрасно, подмял под себя весь рынок браузеров. А мозиловским быдлокодером почему-то новый язык понадобился.
>>1166138Зачем заменять-то, просто новые проекты/библиотеки есть смысл уже не писать на плюсах. Раст пока что единственный язык, который можно потащить в прод вместо си/плюсов без редактирования кода в текстовом редакторе и велосипедных библиотек.>>1166291>Современные кресты вообще норм.То же говно из жопы. Уже покрасивее чем раньше, но всё равно днище.
>>1166342Разница в спонсировании например. Хром вообще самый молодой бровсер который всех захватил (внезапно).
>>1166347"Внезапно". Поддержка от гугла с целью контролировать веб не сильно похоже на внезапно. При этом глупо отрицать техническое превосходство хромовцев.
>>1166347Дело не в доле рынка, а в том, что одним с++ оказался нормальным и они спокойно решили на нем свои задачи, а другие выдумывают сомнительный недоязычок.
>>1166369Дело в том, что кто-то может потратить пару миллиардов $ чтобы отладить какой нибудь сегфолт, а кто-то нет.
>>1166378Была бы его воля, он бы на перфокартах писал.
Как меня умиляют плюсовики, которые любого конкурента с++ воспринимают как личную обиду, мимимими.
>>1166342>В хромоге тоже естьРазве? Пруфца бы.
>>1166345Не придирайся к словам, уёба.Я же даже пример привёл>Примерно такая же как замена Obj-C на Swift? Естественно никто не переписует каждое зассаное приложение с Obj-C на Swift, просто происходит постепенное вытеснение.Так вот. Есть ли тенденция вытеснения C++ каким либо языком? Есть ли компании, которые сократили отделы кодеров на крестах и наняли больше разрабов на других языках?Мне интересно, так как я сам разработчик на C++. Я не фанат C++, он просто делает своё дело. На нём можно создать крупную, такую как фотошоп, мс-офис, 3d-max и так далее.И мне интересно, какая ситуация на рынке? Я сам не из Москвы и не вижу. Но думаю туда перебираться через пару лет. В Москве как правило всё происходит быстрее, чем в остальной стране. ГО в мухосранях только начинает оживать, например. Так вот, мне интересно. Что учить, на случай вытеснения языка из области системного программирования. Мне на язык плевать, но в области хочу остаться.Спросил в растотреде потому что слышал что один из кандидатов - это ржавый краб.PS: В крестотреде спрашивать не буду, заебут.
>>1166385Думаешь, просто лень учить раст? Я пытаюсь, но, пока не понимаю профита.
>>1166528>C++>Системное программированиеПрохладная история, братан.
Разумно ли брать сабж своим первым языком?Хочу писать маленькие десктопные игры from scratch.
>>1169339Лучше что-нибудь попроще возьми.
>>1169339Для первых маленьких игр я бы взял что-нибудь скриптовое.
>>1169339>Разумно ли брать сабж своим первым языком?Нет.>Хочу писать маленькие десктопные игры from scratch.Попробуй love2d.
Здраствуйте. Я, Кирилл. Хотел бы чтобы вы сделали язык, низкоуровневый суть такова... Переменные иммутабельные, типизация строгая. Джва года спустя.let x = "fals";let x = x.len();let x = x.is_power_of_two();println!("{}", x); >true
>>1169553Чо ты хочешь? Тут ты в коде 3 раза связал значение с именем x, при этом предыдущее значение никуда не попало, а осталось на стеке и ссылочная прозрачность сохранена.
>>1169793Отлично. Т.е. по сути они запилили иммутабельность и строгую типизацию которые на деле нихуя не работают, но при этом еще и текут.
>>1169808Ты долбоёб.
Чет сегодня реально какой-то наплыв дебилов на мой уютный зекач, лол. Такое чувство, что кто-то запостил в каком-то студенточятике ссылку, и они сюда всей группой набежали. Я даже не вижу другого объяснения, как не открою нулевую - очередной тред про КАК МНЕ ИЗУЧИТЬ СИ ЗА МЕСЯЦ)), пиздец просто.
>>1169808Как же охуенно наверное рассуждать о языке основываясь на 4 строках кода больше нихуя не зная о языке.Маня, давай я тебе немного объясню> строгая типизация не работаетРаботает. После объявления `x` определенного типа ты не можешь использовать этот `x` как другой тип. А если ты снова объявишь `x`, но уже другого типа, то это уже будет другой `x`, который ты не сможешь использовать как `x` первого типа.> оно ещё и течетА вот хуй. После того как закончится скоуп, где объявлены эти `x` для каждого `x` будет вызван деструктор.
Почему Rust, являясь таких ахуительным языком, такой непопулярный?
>>1170179В каком месте он непопулярный? Второй год подряд номер 1 в списке любибых языков на SO. В проде уже много у кого. Вакансии появляются все чаще. Так что это просто вопрос времени.
>>1170179Ну, он очень популярный для своего возраста и своей области применения. Стать еще более популярным ему мешает интертность мышления большинства разработчиков, которым тупо СЛОЖНА его выучить, ибо там есть несколько новых для них концепций.
>>1170179Rust очень молодой язык проснувшийся на одну из самых консервативных областей разработки ПО.
>>1170236*посягнувшийся
>>1170237Ты определись уже - или "посягнувший" или "замахнувшийся".
>>1170242Я носитель! Мне можно!
Cashes to cashesRust to RustIf the segfaults don't get youThe compiler must
Есть кто живой?Каким ide пользуется аноны? Я пока поставил плагин на свой пайчарм, хватит ли этого?
>>1172195Хватит, если не нужен дебагер.
>>1172210Ну вообще, в перспективе то понадобится, тогда лучше на что будет перейти?Я пока не собираюсь хуй забивать на раст.
>>1172260Clion 2018.1 с плагином от jetbrains или vs code тож с плагином. Последний более нестабилен, чем первый.
C gfx-rs кто-нибудь работал?Пытаюсь запустить с example ебаный треугольник, нихуя не работает.Делал по каким-то другим туторам тоже нихуя.Вот вроде нашел что-то приличное https://wiki.alopex.li/LearningGfxПоследовательно пишу код, и все равно вылазит какая-то ебала, помогите, ржаваны.Вот мой код https://pastebin.com/S4zw44niНа пике ошибка, которую не могу побороть.Что там в параметры типов надо вставлять?
>>1172418Иди на https://gitter.im/ruRust/gamedevТам тусят авторы и еще куча людей, они тебе помогут.
>>1172422Что-то неохота, хз, что там за народ, а на дваче все мои друзья.Внезапно я решил проблему через gfx:Encoder::from(command_buffer) , хотя ебался с этим треугольником два дня.И в связи с этим у меня чисто растовопрос:Если где-то реализован трейт From, то как-то автоматически создается и трейт Into на том классе, в который я кастую?Я что-то не нашел реализации into в CommandBuffer для open_glhttps://docs.rs/gfx_device_gl/0.15.1/src/gfx_device_gl/command.rs.html#331-348Хотя компилятор ругался только на типы, а не на отсутствие функции, когда я вызывал command_buffer.into().
>>1172435Это в стандартной либе:https://doc.rust-lang.org/src/core/convert.rs.html#412
Няши, только вкатываюсь сюда, но язык оче нравится по сравнению с плюсами и жабой.Но вот чего я не понимаю (особенно после последней) это лютой ебли при работе с переменными. Вот, например, я хочу передать String функцию другого потока: а нельзя, она не копируется. Ладно, сделаю string.clone() и добавлю move, посылай ее а оригинал оставь. Нет, не хочу. В итоге пришлось создать новую переменную через clone, и послать ее. Захотел добавить цикл - хуй, один раз отправил переменную и всё. Неужели такая ебля будет каждый раз? Я понимаю что thread и memory safe, но это уже перебор мне кажется...
>>1172639Ну и в чем проблема?
>>1172643Проблема в том, что это интуитивно делается и в плюсах и в жабе, но заняло у меня час рысканья по интернетам. Это будет так во всех аспектах?
>>1172645Ну так ведь в плюсах и жабе и нет тех инструментов работы с памятью, что есть тут, так что как-то некорректно это сравнивать - результат же разный.
>>1172645Ты для начала попробуй сделать то же самое на жабе, чтобы оно работало так же.
>>1172639Алсо, анончик, я немного не понял, что неинтуитивно-то. Шарить память между потоками нельзя? Нельзя, сломается. Ну ты берешь и клонируешь. Строки же не на стеке (они могут быть произвольной длины), а в куче, их нельзя просто скопировать втихушку от программера. Все явно и прозрачно. Дальше, один раз отправил - она ушла в тот тред, все, гудбай. Логично же?К тому же плюсы и жаву ты уже знаешь, поэтому тебе там и интуитивно, лол, а сюда только вкатываешься. Наверное когда ты в первый раз кресты увидел, у тебя тоже были моменты, с которыми пришлось поебаться? Ноу пейн - ноу гейн как говорится.
>>1172639Как по-твоему должен выглядеть нормальный код?
>>1172639>язык оче нравится по сравнению с плюсами и жабойпоясни анону, любопытно же
>>1172658>>1172655Вот, пожалуйста. String передается в поток спокойно без ебли и без указателей. И да, я понимаю что раст гораздо более низкоуровневый, тем он мне и нравится, но вот такие моменты вымораживают.>>1172668Неинтуитивно упрвление переменными. Нельзя просто взять и передать ее (причем в жабе передается не указатель а копия, то есть там по дефолту делается то же самое. Только для этого не надо клонировать строку. >>1172789Как в расте. Он меня устраивает, но я просто не понимаю, зачем столько ебли с переменными. Вот еще один пример. Immutable массив в жабе и в расте. Ну что это блять такое?>String[] array = {"адын", "два"};>const arr: &'static [&'static str] = &["a", "s"];Или несколько типа строк. Вот чем отличаются String и str?>>1172828Прежде всего мелочами. Те же крейты например. В жабе есть maven и gradle, и они оба говно по сравнению с крейтами. Тесты. Не нужно никаких фреймворков типа JUnit, все идеально сделано и просто работает. В плюсах такого вообще нет. И таких мелочей много. Сам язык тоже красивее чем жаба и уж точно понятнее плюсов. Но учить его тяжело даже по книге (которая кстати очень хорошо написано). Там даются общие понятия, но вот такие нюансы не описываются.
>>1172865Ну ты понимаешь что твой код функционально вообще не соответствует версии из раста? Мало того что ты проебал тип объекта, который отправил на тот тред, так еще и создал все условия для вереницы трудноуловимых багов, связанных с многопоточностью.
>>1172866> Мало того что ты проебал тип объектаЛадно, Object можно заменить на String. Какие баги могут случиться? String копируется, а значит изменить его никто не может кроме этого же треда. Racing отменяется. Что я упускаю?
>>1172869Ну ок, в жабе строки имутабельны. Пожалуйста:https://play.rust-lang.org/?gist=0b554811fd74b262fd3e4f142f294705&version=stable
>>1172871И всё, больше ты эту s использовать не можешь. А если надо?
>>1172872>>1172871Не так выразился. Не s а string во-первых, а во вторых ты не можешь ее больше использовать если тред все еще работает. А если ее надо использовать в нескольких тредах параллельно?
>>1172872https://play.rust-lang.org/?gist=de5a62a6d4a87a24cf114ff76780e233&version=stable
>>1172877Отлично, константы видимо копировать можно. А если для каждого треда надо немного модифицированный String?Вот простой юзкейс: многопоточное скачивание картинок с тредов /b/.Берем base_url = "https://2ch.hk/b/res/"Первому треду надо дать ссылку "https://2ch.hk/b/res/1.html", второму https://2ch.hk/b/res/2.html' и так тредов 10. Константу использовать нельзя потому что изменяем url. Остается только копировать?
>>1172886https://play.rust-lang.org/?gist=5cf86bab72a26a64e3145988515e5543&version=stable
>>1172889Первый into_iter лишний, ну ты понел.
>>1172865>String передается в поток спокойно без ебли и без указателей.Ну так в джаве сборщик мусора как бы, а тут весь мусор удаляется без оверхеда в рантайме. Я уж молчу про то, что джава не защищает тебя от очень сложных багов с многопоточностью, связанных с одновременной модификацией данных несколькими тредами.
>>1172865>Неинтуитивно упрвление переменными. Что значит "неинтуитивное"? Если отвыкнуть от (неверного в общем случае) представления о том, что данные могут быть продублированы бесплатно, и начать думать о них в терминах ресурсов, то все абсолютно интуитивно - это как раз соответствует интуитивным представлениям о реальном мире. В реальном мире (и в языках с линейными типами) ты не можешь съесть одну и ту же конфетку два раза.Так что правильней все-таки говорить не "неинтуитивно", а "непривычно". Это необходимый cost для изучения новых концепций, да.
>>1172865>Вот чем отличаются String и str?https://doc.rust-lang.org/stable/rust-by-example/std/str.htmlhttps://doc.rust-lang.org/1.14.0/std/string/struct.String.htmlhttps://doc.rust-lang.org/1.14.0/std/primitive.str.htmlhttps://stackoverflow.com/questions/24158114/what-are-the-differences-between-rusts-string-and-strhttp://www.ameyalokare.com/rust/2017/10/12/rust-str-vs-String.html
Какую либу посоветуете для гейдева, а конкретно для удобной ебли матриц и векторов?Нашел cgmath и nalgebra, но что-то или я тупой, или они не умеют переводить матрицы в row based формат, который принимает gfx rs.
>>1172865>все идеально сделано и просто работаетну т.е не смузи-педерастия без задач как котлин и дарт ясно спасибо антошек, когда вырасту обязательно потискаю
web frameworkss>>1154517 (OP)Я тут сравнил некоторые пакеты для web из crates.io Что скажете?Какой по вашему лучше для веб-сервера?https://goo.gl/pWJQpe - графhttps://goo.gl/NDWhpe - таблица
>>1173446Если можешь себе позволить nightly, бери рокет. Мы в прод собираемся выкатывать actix_web.
>>1173447Да, думаю брать его...>Мы в прод собираемся выкатывать actix_webрокет и actix_web как то связаны? или ты это просто мимо делом сказал?
>>1173450actix_web — выбор для stable жеВпрочем мы его взяли еще и потому что нам нужны акторы для остального бэкенда.
>>1173447И если например не хочу иметь дело с nightly. То рокет всё равно пойдёт? или это уже не то? Что тогла лучше юзать?
>>1173453Рокет без nightly не работает.
>>1173446https://github.com/TatriX/realworld-rust-rocket
>>1173454А... Нефти тебе
>>1173446Если нужна асинхронщина, то hyper, actix-web или Gotham.rs. Если не нужна(что странно), то можно и рокет, но он только в ночнике.
>>1173475>Gotham.rs>GO>TRRTIIGGEERRED!!!Спс, ХЗ, хочу что-нить высокоуровневое (actix-web или Gotham.rs может выберу)Но вот я Rockeт хотел, посмарел, АПИ норм - похож на flask, но вы говорите что в нём нет асинхронности (может пригодиться хз - для личного проекта), да ещё и только в ночной доступен((под асинхронностью ты понимаешь использование некольких ядер на процессоре? типа если у меня 4-ре ядра, то каждый запрос мой сервер будет обрабатывать на отдельном ядре?
>>1173446А нахуй писать веб на ржавчине?
>>1173522а зачем вообще придумывают языки программирования?
>>1173525Чтобы более лучше решать определенный класс задач. Иди в другое место троллить, дурачок.
>>1173529а я и не трою, ты сам спросил.Но допустим, нужен веб-сервер. Разве раст не идеальное решение? Или что тогда выбрать?
>>1173525Чтобы писать веб, очевидно же, особенно системные языки, они всегда были идеальным выбором для написания вебни.
>>1173522Что ты считаешь достойной альтернативой?
>>1173550Еще бы. Особенно JavaScript - лучший системный язык программирования. Надо все драйвера на нем переписать.
Котоны, кто пользуется rls, расскажите насколько оно стабильно?
Блэд, как меня заебало отношение к null в расте. Почему это какой то специфический тип, который нельзя просто так взять и приписать переменной?Вот например есть переменная > let mut answer:reqwest::Response;Далее по коду в нее пишется ответ сервера. Все хорошо. И тут компилятор выскакивает и говорит - хуй тебе, она possibly uninitialized. Ну хорошо, пускай она будет null по дефолту, и потом будет проверка на null. Опять хуй там, ошибка как на пике. Как мне блять эту переменную инициализировать чтобы он не выебывался?
>>1173487Нет, под асинхронностью я имею ввиду неблокирующий io. Без асинхронности для каждого коннекта тебе придётся либо спавнить отдельный тред, либо ждать завершения обработки предыдущего запроса, оба варианта не слишком эффективны. Неблокирующий io же позволяет тебе на, допустим, 4 тредах держать хуеву тучу коннектов одновременно.
>>1173700Спс>>1173695Option<>? Или ""?хз
>>1173695Очевидный Option. Вам бы для начала хоть растбук почитать. И да, null не нужен за пределами динамикодресни.https://play.rust-lang.org/?gist=b89a40bcf8be0c59d2ba0fabd65b547b&version=stable
>>1173704Растбук прочел полностью, вот только он покрывает исключительно базовые вещи. И никакой Option тут не подходит. Вернуть надо reqwest::Response и соответсвенно такого же типа переменная. Никаими Optionами ее инициализировать не получается.Что мне написать
>>1173707такэбат.. просто unwrap'ишь свой answer:reqwest::Response из Optiona и делов-то
>>1173717точнее наоборот, заворачиваешь свой respone в Option<> let mut answer: Option<reqwest::Response> = Notheing;
>>1173718Если его так завернуть то я не могу присвоить значение когда надо.
>>1173722так Respone тоже заворачивай в оптионanswer = Some(response)
>>1173722шо за IDE?
>>1173723Ух блэд. Оно таки заработало. Где можно почитать про такие хитрости? В растбуке про Some было совсем мало в контексте "любое значение", если не ошибаюсь. >>1173725Intellij Idea
>>1173726Прочитай ебаный растбук.https://play.rust-lang.org/?gist=3eaf61e5cc7e879382c9e9722923da9a&version=undefined
>>1173756Впрочем это тоже хуйня, потому что так просирается обработка ошибок.
>>1173695>Ну хорошо, пускай она будет null по дефолту, и потом будет проверка на null. Чет проиграл.
>>1174234Видишь как мутабельная параша мозг поражает.
>>1173722>jsone>reqwestМатерь божья...
>>1174236> reqwestэто название либы, а вот > jsoneэто креатифф афтара
>>1174237>это название либыЗа такую хуйню у нас на районе убивают. У меня KLASS от этого скрина.
>>1174238В чем твоя проблема? Для названия либы это очень даже неплохо, потому что хорошо гуглится. Это же просто чья-то либа с crates.io, а не стандартная библиотека.
>>1174234В чем проблема? Если запрос успешен, то null меняется на ответ, если остался null, значит ошибка.
Ну его нахуй ваш раст короче. Нихуя не понятно как его вообще учить. До всего догадываться надо по 2 часа.
>>1174350В том что твоё сознание настолько зачухонное и ограниченное, что ты пытаешься единственное говно, которому научился впихнуть везде, где нужно и где не нужно. Скажи, нахуя тебе вообще мутабельная переменная для хранения ответа?
>>1174355Скажу. Создается переменная с дефолтным значением. В нее пишется (при успехе) ответ от сервера. Потом она возвращается. Почему нельзя сразу обозначить переменную при запросе? Потому что это происходит в scope который создал match, и в конце функции ее нельзя будет вернуть. А если возвращать ее в scope, то компилятор будет ругаться что нет return value. Да, я видкл это > https://play.rust-lang.org/?gist=3eaf61e5cc7e879382c9e9722923da9aно сам бы я до этого не дошел. Я не понимаю, откуда взялось > reqwest::StatusCode::Okесли по книге и всем гайдам что я посмотрел должно быть > Ok() => {}> Err(_) => {}Я пытался писать так как могу, как понимаю, но видимо раст мне пока не осилить.
Как уменьшить все значения ключей в hashMap на еденицу?Пытаюсь обойти по ключам, на каждой итерации достать значение и потом вставить измененное на еденицу, но постоянно какая-нибудь хуйня с заимствованиями
>>1174370Ясен хуй не осилить, если ты не в состоянии открыть документацию на библиотеку, которую используешь.
>>1174378Почему нельзя пользоваться стандартными ошибками, а надо обязательно выебнуться с каким-то дохуя специфическим типом?
>>1174372iterate .values()
>>1174381Наверное для того, чтобы ошибки можно было различать и для того, чтобы они могли нести с собой специфичную инфу?
>>1174372https://play.rust-lang.org/?gist=7ae6428211980f847ef4b5704c730828&version=stable
>>1174240Ну я же вроде пояснил - это коверкание слов уровня KLASS, от которого глаза вытекают и создается ощущение, что кто-то опечатался. Еще и себе в исходники это говно тянуть. Оче плохой вкус, короче.Вообще оффтоп, мне иногда бомбит от того, что авторы часто для каких-нибудь тривиальных библиотек выбирают дохуя КРЕАТИВНЫЕ имена. Если в библиотеке для логирования нет слова "log", а в библиотеке для парсинга жсона нет слова "json", то у меня мгновенно разогревается пердак, как в микроволновке. инб4: зануда
>>1174370>Я не понимаю, откуда взялось>> reqwest::StatusCode::Okhttps://docs.rs/reqwest/0.8.5/reqwest/struct.Response.html#exampleshttps://docs.rs/reqwest/0.8.5/reqwest/enum.StatusCode.htmlLiterally 10 секунд и первая ссылка в гугле.
>>1174416Да просто https://crates.io/crates/request уже было занято. Что ты предлагаешь в этой ситуации делать?А вообще проблема эстетики решается просто:> extern crate reqwest as request;
>>1174466>Что ты предлагаешь в этой ситуации делать?НЕЙМСПЕЙСЫ, Карл.> extern crate reqwest as request;Так тоже можно, но все же это обход, а не решение проблемы (кривых имен).
>>1174507Если не лень, можешь почитать почему они решили не юзать неймспейсы: https://internals.rust-lang.org/t/crates-io-package-policies/1041
>>1174511I'm sorry, but ето говно. Вообще, все, что связано с крейтами - говно. Это самая неудачная, непонятная, кривая и объективно хуевая часть языка. Я понимаю того анона, который пришел с крестов и выше говорил, какие крейты крутые. После крестов это конечно круто, но в целом - говно.
>>1174547Конкретней. Что не так с ними.
>>1174550Блин, хотел дать ссылку на lmgtfy.com + what's wrong with rust modules, но лмгтфу походу лежит. Короче, мне лень сейчас самому в красках расписывать, к тому же тема известная (https://withoutboats.github.io/blog/rust/2017/01/04/the-rust-module-system-is-too-confusing.html например). Ну и неймспейсы - хорошая штука, нужно больше неймспейсов.
>>1174559хз, неймспейсы не нужны. По поводу лишней хуйни типа extern crate уже что-то делают, но в целом модули простые понятные и удобные. Я хз они там ноют.
>>1174560Если что, "они" - это один из контрибьюторов раста, как раз тех, которые "уже что-то делают".
>>1174560А, ну и да:>хз, неймспейсы не нужны.За такое нужно сжигать и отправлять в 80-ые а потом сжигать
>>1174659Так какую проблему решают нейспейсы то?Типа вместо> shit_http_request as requestможно будет писать> shit.http.requestНахуя это надо то, лол. Один хуй в программе реально используется только последнее имя для доступа к модулям крейта.
>>1174779>Так какую проблему решают нейспейсы то?Ты серьезно?
>>1174879Да. Я не могу навскидку вспомнить какие у меня возникали проблемы с отсутствием неймспейсов в экосистеме библиотек. Скорее наоборот, гадать куда там в хаскеле запихнули нужный модуль раздражало.
>>1174881Ну, во-первых, неймспейсы - это богоугодно.Во-вторых, ну блин. Если ты пишешь что-то серьезное, то тебе нужно озаботиться, чтобы у этого чего-то было глобально уникальное имя, потому что очень тупо из-за этого факапиться в 21 веке. Джавские конвенции гарантируют глобальную уникальность имени пакета без единого глобального хранилища всех пакетов. Ты можешь использовать любые репозитории, и as long as автор пакета серьезный чувак, имя пакета будет уникальным.Алсо, это просто логично. Вендор-артефакт-версия. Захотел форкнуть пакет - окей, поменяй вендора, сразу все понятно: вот эта ветка от org.apache, а вот эта - от me.antoshka. Есть десять пакетов, относящихся к одному проекту - окей, вот hk.2ch/makaba, вот hk.2ch/dollchan, вот hk.2ch/abupidor. Просто, логично. А эти изобретают какую-то хуйню с тегами, опять же завязывая все на один централизованный репозиторий со свистелками.Дальше, от этого нет никакого оверхеда. В том же lein, например, если groupid = artifactid, то не нужно писать его два раза. Ну то есть поверх изначально нормальной системы можно легко добавить немножко сахара, и оно будет выглядеть точно так же, как и здесь.Это все про неймспейсы в контексте пакетов. Если же ты спрашиваешь зачем нужны неймспейсы в контексте модулей (ну то есть конкретно в коде), то ты пиздец какой ушибленный, у меня нет необходимой медицинской квалификации, чтобы такие вещи объяснять.
>>1174918А теперь давай по минусам неймпейсов?Вот у тебя 33 форка одной и той же либы. Какой брать?Конвенции ничего не могут гарантировать, т.к. нарушить их вообще нехуй делать.С крейтами и форками вообще никаких проблем. Прописываешь путь до исходников, хоть на гитхаб, хоть в соседнюю папочку.В общем кроме "богоугодно" реальных профитов не видно. Только код в 5 пустых папках всегда лежит, охуеть как удобно.
>>1174920>Вот у тебя 33 форка одной и той же либы. Какой брать?При чем тут неймспейсы? Хуйню какую-то несешь.>Конвенции ничего не могут гарантировать, т.к. нарушить их вообще нехуй делать.Я специально в своем посте несколько раз акцентировал внимание на том, что конвенции на то и конвенции, что все нормальные вендоры их соблюдают, и следовательно их имена пакетов всегда уникальны. Если два каких-то говнопакета выбрали одно и то же имя, то это проблема говнокодеров этих говнопакетов - и опять же, неймспейсы тут ни при чем.>Прописываешь путь до исходников, хоть на гитхаб, хоть в соседнюю папочку.Короче, ты вообще не понимаешь, о чем речь...>Только код в 5 пустых папках всегда лежит...и несешь какую-то выдуманную хуйню.
>>1174779>Так какую проблему решают нейспейсы то?Проблему того что в 5 либах которые ты используешь идентификатор Request используется 8 раз.>>1174918Как ты от неймспейсов перешел к пакетам? При чем здесь >Вендор-артефакт-версияКогда форкают библиотеки, никто не переименовывает неймспейс. Или ты не об этом?
>>1175094Разговор идет за неймспейсы для крейтов. Бесполезная ненужная хуйня. Почему-то npm в котором обосраться сколько пакетов спокойно без этой залупы живет.
>>1175094Ну мы изначально говорили о схемах именования пакетов (крейтов). >>1175097>npmLiterally худший пример, который ты мог подобрать, лол. Proves my point какбе.
>>1172889Поясни про джоины в последней строке. Я так понял джоин стоппит мейн поток и возвращает управление когда дочерний поток завершился. Я плохо представляю как это в цикле последовательно вызывается для нескольких дочерних потоков сразу. Типо заспавнили 10 потоков, потом первый по счету поток стоппит мейн (а следовательно и форич) и мейн ждет когда ему передадут управление. Потом первый поток завершается и теперь второй по счету стоппит мейн и тд. И как быть если второй поток завершился пока первый стоппил мейн, а потом у завершенного потока вызывается джоин, это типо ок? Или всё вообще нихуя не так?
>>1176522Там в середине цепочки есть collect.Запускаем 10 тредов, получаем 10 handle, которые собираем в вектор. Все 10 тредов уже выполняются.Потом для каждого хэндла делаем join по очереди, тем самым дожидаясь исполнения всех запущенных потоков.
>>1176526Но все джоины должны вызываться не сразу, а только тогда, когда предыдущий передал управление в мейн?
>>1176528Да, конечно. Первый джойн лочит тред. Это не создает проблем, потому что оставшиеся треды доделывают свои дела и спокойно ждут пока до них дойдет очередь джонится.
>>1176531Поясни еще одну вещь, почему если не делать коллект, то потоки стартуют не одновременно, а только когда предыдущий завершился?В вебе не правильно работает, но код вот https://play.rust-lang.org/?gist=93b2a6cabf10dc65652cbb0edc366a9d&version=stable
>>1176543Потому что итераторы ленивые. То есть когда ты делаешь .iter().map() никаких действий реально не выполняется, а лишь создается цепочка отложенных вычислений. Чтобы её запустить надо либо сделать collect получив некую коллекцию с результатами вычислений созданной цепочки, либо вызвать, например, for_each который выполняет цепочки, но ничего не возвращает.
>>1176566Блять точно. В джаве это называется конвейерные методы, что то я забыл про них. Спасибо анончик
Как в расте делаются подобные вещи? Мне что теперь создавать в таких местах по два геттера, один для иммутабл ссылки, второй для мутабл.
>>1177331геттеры - это антипаттернхоть в расте, хоть не в расте так, как у тебя на пикрелейтед, делать не надодо ответа на свой вопрос ты наверное уже и сам догадался, да?
>>1177356>геттеры - это антипаттернУ нас на галере за такое увольняют нахуй.>до ответа на свой вопрос ты наверное уже и сам догадался, да?Нет, я тупойспал.Ну допустим даже если я убираю геттер и делаю поле pub все равно проблема остается.Тут, кстати, геттер я делал не ради геттера, а потому что в сеттере кроме установки поля пересчитывается матрица view камеры. И если про это забыть и устанавливать позицию через открытое поле то пересчета делатся не будет и получим инконсистент камеру.
>>1177356>геттеры - это антипаттернНу вот у него, например, положение камеры задается матрицей трансформации 4х4. Как ты получишь положение камеры без геттера?
>>1177447>У нас на галере за такое увольняют нахуй.Сочувствую. :P>Тут, кстати, геттер я делал не ради геттераНу тогда ладно. Правда, по соглашению для field имеем: field, field_mut, set_field.>все равно проблема остаетсяПотому что у тебя иммутабл борроу внутри мутабла. Вынеси иммутабл за пределы вызова метода на мутабле. Подробнее:https://stackoverflow.com/a/41189051http://smallcultfollowing.com/babysteps/blog/2016/04/27/non-lexical-lifetimes-introduction/>>1177490>Как ты получишь положение камеры без геттера? Ну если ВООБЩЕ в вакууме говорить, то либо у тебя внутреннее представление - деталь реализации, и тогда геттеры ненужны; либо у тебя просто данные, и тогда геттеры ненужны; либо у тебя две разных полноценных хуйни, и тогда синлреспонсибилитиблаблабла, надо разносить и геттеры опять ненужны. Ну а в идеале у тебя конечно вообще энтити иммутабельные и инконсистентностей быть в принципе не может (ну, как... в рамках этого конкретного случая), и тогда геттеры ненужны. Но тут у чувака вообще камера работает напрямую с инпутом, лол, то есть как бы о какой-то архитектуре и прочем хуе-мое говорить и вовсе неуместно.
>>1156539Если бы данный случай не был исключением, ты бы о нём не знал и треда этого не существовало бы.мимонекропостер
>>1177565>Но тут у чувака вообще камера работает напрямую с инпутомХм, имею опыт с юнити и gdx, там это происходит примерно так же. Если есть какие-то идеи как это можно сделать лучше то я с удовольствием послушаю.
>>1177447>Ну допустим даже если я убираю геттер и делаю поле pub все равно проблема остается.Блжад, тебе совсем другое предлагают.
>>1177620Ага, примерно так же, блядь. Обычно у простой камеры есть таргет энтитя с компонентом позиции, к которому она привязывается. Вообще, инпут со всякими is_key_pressed в игровой логике - это пиздец же. Тащем-та лучше бы у вас на галере за это увольняли, а не за отсутствие геттеров, например.
Микроконтроллеры на rust программировать можно? В частности avr.
>>1157637Rust происходит из семейства ML, если знаком с OCaml или Haskell, будешь как дома. Но использовать его как Haskell не получится, из-за его задротства по памяти. Например для каждого замыкания нужно явно указать, кому и как будут принадлежать данные.
>>1178379>Например для каждого замыкания нужно явно указать, кому и как будут принадлежать данные.И это хорошо.inb4: байтоеб
>>1178379StandardML/Ocaml элита в треде. Главная фишка МЛ языков - тайп инференс проебан, так что это еще спорное утверждение.
>>1178616В каком месте он проебан?
>>1178645https://www.reddit.com/r/rust/comments/5pr3ft/polymorphic_closures/ начиная с такой хуйни
>>1178662В мл разве не то же самое? Экзистеншилы для этого нужны же, не?
>>1178558Я и не говорил, что это плохо. Для этого Rust и нужен.
>>1178997ОБНИМАШКИИИ! :3 :3 :3
>>1178914>Экзистеншилы>Экзистеншилыкурсы иностранных языков в балашихе.jpgРечь о параметрическом полиморфизме, который для замыканий в расте не реализован.
>>1179121>курсы иностранных языков в балашихе.jpgА ты точно мл-элита?>Речь о параметрическом полиморфизме, который для замыканийЭто если бы у тебя была функция вида (a -> a), а у тебя тут значение вида closure<T>, причем возможно линейное.
>>1179201>closure<T>, причем возможно линейное.И чё? Типа обстоятельства непреодолимой силы?
если крабик может использовать крестовые библиотеки -- значит ли это что я могу конвертировать крабовый код в крестовый - всего одной кнопкой?
>>1179360Clojure может использовать Java библиотеки. Стал бы ты ожидать, что динамический Clojure можно одной кнопкой превратить в валидную джаву?
>>1179212Изучи, как работает система типов в мл, пожалуйста.
>>1179425значит крабик тоже динамический и его не сконвертишь эх
>>1179440В качестве другого примера — нельзя сделать 100% конвертацию между системами типов Flow и TypeScript. Даже при том, что синтаксис и суть почти идентичные.
>>1179461>нельзя сделать 100% конвертацию между системами типов Flow и TypeScriptкому бы этом могло быть выгодно...
>>1178231С avr пока туговато, зато cortex-m уже во все поля - в cargo нужный target прикрутили, можно без костылей (xargo) собирать. Ну вроде с переходом на llvm5 и avr доделают.А вообще смотри rust embedded working group и основных контрибьюторов - там один специально за avr отвечает, у него в гитхабе/бложике можно найти интересного.
Опа опа и http://rust-lang.org улетел в список блокировки Роскомнадзора.Горжусь Россией.
>>1179948У меня сейчас еще или уже? работает.
>>1154517 (OP)Раст же ржавчина типа
Шлюха перепишет Tor на русте https://youtu.be/tH_pdYyqK4o
>>1184936>tfw your name is Isis
>>1184936>ШлюхаНе завидуй, чмо. Классная девка.
>>1184936кто это? почему шлюха?что сложного в переписывание уже задизайнинной программы тем более опенсорсного?
>>1184936Ну наконец-то! Джва года этого ждал.>>1184975Да и фамилия неплохая, да.
Пипец. Зачем так жирно?
>>1185568Обсуждали уже раз двадцать.
>>1184936Блядь, какие же они охуенные.Isis Agora Lovecruft, блядь. С пиэйчди по физике и английской литературе. Работает над тором с 2010. Блядь, ей сколько лет тогда вообще было? Серьезно, у меня стойкое ощущение, что они принадлежат к другому биологическому виду.
x="if(t%2)else";python3 -c"[print(t>>15&(t>>(2$x 4))%(3+(t>>(8$x 11))%4)+(t>>10)|42&t>>7&t<<9,end='')for t in range(220)]"|aplay -c2 -r4https://www.patternsinthevoid.net/
>>1185727It's a trap.
>>1185754Да. Я же говорю - у меня стойкое ощущение, что они находятся на следующей ступени эволюции.
>>1179461О, о, анончик, ты писал на TypeScript, да?А то у меня важный вопрос о TS есть, а в JS-треде нихуя не ответили.
>>1154517 (OP)Сап, растовчане, я в программировании полный ноль, хочу вкатиться .Стоит ли изучать первым языком раст ? Был вариант учить питон, я даже основы выучил, но боюсь привыкну к питону и не смогу нормально программировать на си-подобных языках,коим по моему мнению и является расткароче стоит ли учить раст как первый язык программирования ?
>>1185973>си-подобных языках>коим по моему мнению и является растC и Rust являются одними из относительно немногих низкоуровневых языков, языков без GC. На этом "подобие" по-моему заканчивается. Но что-то мне подсказывает что ты сравнивал их по наличию фигурных скобок.>кароче стоит ли учить раст как первый язык программирования ?Нет. Учи чистый C как первый язык программирования, не прогадаешь.
>>1185973Rust это скорее ML-подобный язык, который мимикрирует под Сhttps://doc.rust-lang.org/reference/influences.html
>>1185086>кто это? почему шлюха?Разве она похожа на трапа?
>>1186732В том-то и дело, что даже непохожа.
>>1185973Учи джаву и ищи работу. Rust и как посоветовали Си не вижу смысла учить как первые языки - работы не найдёшь. Твоя цель - это получить работу прежде всего. Потом уже будет больше свободы - глянешь сишку чисто в академических целях, может в Rust перекатишься. Главное - получи работу.
>>1188693>первые языки >работы не найдёшьБля, я 2 языка знаю хорошо, ещё 5 базово и у меня всё ещё нет работы.
>>1188858Знание языка != знание синтаксиса.https://felixit.blog/2015/10/01/iazik-za-24-chasa/
Раст - дерьмо. Его пытаются пихать во все дыры, а он даже с мылом не пролазит. Еще вокруг него по каким-то причинам тусуется много швали нетрадиционной ориентации.
>>1189001Потому, что это слишком нетрадиционный язык. Его концепции чуть отличаются, поэтому тяжелее перейти и делать что-то полезное. А ещё полное отсутствие удобных средств разработки, отладки и профилирования.
>>1189007Вот тут ты неправ. В него вкатиться и начать гораздо проще, чем в большинство языков, из-за современных средств разработки, пакетного менеджера, удобного инсталлера
>>1189008инсталлер - если о линупсах, то gcc вообще из коробки, лол=)пакетный менеджер - чек, хотя для холловорлд почти во всех языках нинужны дополнительные либы.Современные средства разработки? А с этого места по подробнее, может там уже и gdb для виндус починили, а кто умеет с автокомплитами работать?
>>1189001> Еще вокруг него по каким-то причинам тусуется много швали нетрадиционной ориентацииКоличество пидоров реально как-то напрягет. Из-за этого даже вкатываться не хочется, хотя язык интересный
>>1189018Автокомплит — https://github.com/rust-lang-nursery/rlsВсе IDE фичи первой необходимости предоставляет, хотя минус, что просто игнорит макросы.
>>1188937Ух, а я-то и не догадывался, ты мне глаза открыл просто.
>>1189001>пихать во все дыры, а он даже с мылом-> /gaТут обсуждают программирование, а не твои интимные фантазии.
Допустимо ли учить раст не зная c++?
>>1189664Конечно. С++ - это же не си.
Хочу изучить для себя какой-нибудь язык, чтоб компилировался в бинарник, а то виртуальные машины и интерпретаторы немного надоели. С++ нахер надо, слишком костыльный, Rust - симпатичный, но коре девелоперы лгбт-либерахи, противно (меня правда только это останавливает), Си для десктопа чё-то хер знает
>>1189914>для себяCrystal
>>1190098В соответствующем треде уже выяснили, что он фактически умер.>>1189914>меня правда только это останавливаетНе будь смузихлебом-сжвшником, анон. Суди о технологии по объективным критериям; в противном случае я не вижу, чем ты отличаешься от всех этих инклюзивных леваков.
>>1190477>Суди о технологии по объективным критериямТы прав. Надо отбросить всё это даже-не-знаю-как-назвать. И быть объективным. У меня такое ещё бывает в противовес хайповым языкам, типа котлина. Хотя объективно он неплох. Буду исправляться.
>>1166528Кресты теряют один очень большой и денежный рынок. Напару с PHP. Т.е. веб.Раньше было так: пилим на пхп какое-то говно, но быстро. Набираем базу пользователей и огребаем перфоманс проблемы. Нанимаем крестовика, он запиливает ботлнек и все рады.Быстро вышли на рынок, мало ебались.Теперь сразу пишут на Go. И оно сразу и быстро написано и норм работает.Результат - рынок крестов проседает в серединке.Т.е. осталось дохуя дешёвых вакансий в НИИ, которые ещё лет 10-20 будут хуйнёй страдать за копейки.И остались супер-вакансии супер-сеньоров в убер-производительных проектах. Тут платят дохуя. Но требования ещё выше.В серединке очень тонкий и специфичный рынок геймдева, который и рынком сложно назватьИтог - катись в Го-шечку вслед за рынком. Причём будешь иметь профит. Большинство гошников - это похапехеры, которые нихуя не знают, не умеют и не понимают. Экс-крестовик имеет преимущество.
>>1190098Рядом с Rust он выглядит как не очень умелая поделка от студента с не очень широким кругозором.
>>1166528Rust по сути единственный кандидат.
>>1190619>Хотя объективно он неплох.Это, разумеется, неправда.
>>1190732>катись в Го-шечку вслед за рынком.>вслед за рынкомУже тысячу раз обсуждали, что ее популярность второй год падает инб4: как будто там есть куда падать. Для такого молодого языка это фактически означает смерть гроб кладбище пидор.И это с учетом маркетинга и хайпа от гугла, анон.Алсо, в том посте вопрос был вообще про системное программирование.>системное программирование>сборщик мусора
>>1190801>системное программированиеЭто на 100% либо легаси-код на Сях из 90х (как у прыщей так и у шинды). Либо игрушечные РТОС на сях в бомжеэмбеде. Из системного программирования говноплюсы появились, разве что, с приходом LLVM, когда на прыщах его встроили в драйвера месы как компилятор шейдеров для амудэ и печи.
>>1189914python
>>1191225> какой-нибудь язык, чтоб компилировался в бинарник> pythonO'rly?
Почему Rust не взлетел? Производительность почти как у C++, но работать с ним удобнее/легче.
>>1194091незаметен
>>1194102Что?
>>1194091> Почему Rust не взлетел? Производительность почти как у C++, но работать с ним удобнее/легче. Потому что посмотри на свой график, где бест-кейс раста как ворст-кейс плюсов. По-этому графику производительность раста по факту "чуть быстрее жабы" а не "почти как у плюсов". Отсюда и получается, что раст - не рыба и не мясо.
>>1194130Как вообще читать эти графики?
>>1194130И не забывай, что в плюсы байты ебать идут, аллокаторы самопальные писать и прочей херней вроде data-oriented-design заниматься, когда для жабы топового сервака перестает хватать. Ну или когда нужно круйзис с топ графинычем продать. А раст всем этим заниматься запрещает. Ну и нахуй он такой тогда нужен если есть жаба?
>>1194091Пикча старая? Видел где Rust куда ближе к C
>>1194091>Rust не взлетелОшибка.>>1194137> раст всем этим заниматься запрещаетОшибка.
>>1194130>По-этому графику производительность раста по факту "чуть быстрее жабы"Там логарифмическая шкала. Если брать среднее значение, то раст где-то в полтора раза быстрее жавы, а в ворст кейсах и в два раза."по этому" вообще-то пишется без дефиса
>>1194173Ну на пикче же видно, что он в бест кейсах на равне с С.
>>1194133https://en.wikipedia.org/wiki/Box_plot>>1194130>бест-кейс раста как ворст-кейс плюсовВообще-то average.
>>1169808это разные x как если бы let x = "fals";let xlen = x.len();let xpowertwo = x.is_power_of_two();println!("{}", xpowertwo ); и это дебилушка написано в самом начале книги про раст
>>1169553Variable shadowing. Каждый из этих иксов существует независимо друг от друга
>>1194091Этой пикчей можно обоссать тех даунов, что полностью пишут программы/сервисы сложнее гостевой книги на языках из правой части (те, что после nodejs)
>>1194957> erlang> для программ не сложнее гостевой книги> десятилетия хардкорного хайлоада с даунтаймами исчисляемыми в десятых секунды> для программ не сложнее гостевой книгиПонятно.
>>1194966> > десятилетия хардкорного хайлоада с даунтаймами исчисляемыми в десятых секундыЕсть пруфы?
Вопрос опытным растерам. Стоит ли вкатываться в раст? Как обстоят дела с библиотеками, много ли их и качественные ли они?
>>1195017http://google.com/>>1195024А ты с какой целью интересуешься?
>>1195024Какова цель? Что-то конкретное запилить?
Возможно ли при cargo run передавать аргументы компилятору cc? При cargo rustc -- [вот тут идут аргументы, которые передаются сишному компилятору], а в cargo run таким же образом передаются аргументы только к скомпилированному бинарнику.
>>1195024Более чем прилично для языка такого возраста.
>>1195077>To pass flags to all compiler processes spawned by Cargo, use the $RUSTFLAGS environment variable or the `build.rustflags` configuration option
>>1194091А разве это не очень старая картинка?
>>1195127Но гораздо меньше, чем у C/C++.
Что обычно на расте пилят?
>>1195323Движки для браузеров.бадум-тсс
В Tor добавили какое-то говно на русте:https://gitweb.torproject.org/tor.git/tree/ChangeLog?h=tor-0.3.3.6
>>1195616Ну кроме фаерфокса, что еще годного есть?
Кароч как я понял из своего первого опыта это язык для суперпро всяких. Потому что на си и плюсах я, как неопытный пользователь, мог наговнокодить чтобы кое-как работало. В расте каждый раз меня ебет борроу-чекер, когда я пытаюсь снова немного поменять архитектуру, а я ведь сразу не могу продумать все до деталей. У меня последний раз такой бугурт был когда я писал что-то типа фьючерсов с зелёными потоками в си, я отсосал и просто запилил треды с poll-ами.
>>1197247Наоборот, язык подсказывает, как делать нельзя, когда в C у тебя код молча взорвется в продакшене, если не будешь это все держать в голове.
Почему от Го начинает начинается агония и сыпь по мозгу, а от Раста нет, хоть он после с# и сложен?
>>1197506Илюша обосрал раст.https://habr.com/post/262841/
>>1197614Илюша думает, что он у мамы криптограф, потому что на галере его заставили написать свою гаражную рса.
>>1197614Выглядит как пук в лужу какой то.
>>1197506Потому что Го — недоязык, а раст прекрасен
>>1197680Может, тоже вкатиться в раст? Какие у него usecases? Можно погромировать микроконтроллеры, писать REST-сервисы, написать криптолокер, создать морду для БД? Можно написать на нем Fat-16 или загрузчик ОС?
Я считаю, что создатели языка неудачное имя ему подобрали. Я когда первые раз слышал о нем, даже и не думал что это новый язык, а имелась в виду игра Rust. Ну вы же знаете как это бывает, когда какой-нибудь заголовок или статью быстро глазами пролетаешь. Я не знаю, могли бы например назвать "C Next" или типо того, я думаю так бы он больше внимания привлекал.
>>1197707Сколько тебе лет?
>>1197707Меня кстати наоборот раздражает что раст как игра часто гуглится.
>>1197707Да, название для игры стоило пооригинальнее придумать. Все время результаты поиска засоряет
>>1197707И он не мог быть "C Next", потому что он начинался как вариация на тему OCaml и только потом они нашли такие абстракции, чтобы эффективно пойти еще в более низкоуровневое программирование. Так что он скорее был бы System-low-level-ML
>>1197696Можно делать всё из списка.
Насколько оптимизирован move? Например, при рекурсии. Мне кажется для концевой рекурсии можно не копировать то, что передается с помощью move. Или все-таки стек засирается?
>>1198215Да и вообще для любой рекурсии, если хранить move-нутое на дне стека
>>1198215Нет хвостовой рекурсии. А если и будет, то наверняка с явным синтаксисом.
>>1198215Крч, я потестил.Если аргументы умещаются в регистры, то ничего не копируется и не перемещается.Иначе пушатся на стек и очищаются только в конце, т.е. стек засирается.Где-то 6 u64 стек не юзают. Я думаю будет большая разница в производительности чувак который создавал тему про "много аргументов не нужно" был прав
>>1198247Я всегда прав, спасибо.
Поясните ньюфагу мутабельное заимствование (или как там борров правильно перевести).let mut x = vec![1,2];let mut y = &mut x;Что после после этого разрешено делать с x? Ничего?
>>1200880Так просто поэкспериментируй. Чего ты как маленький?
>>1200880
>>1201169>>1200880Пиздец собачий язык, что обоссаный Rust, что вонючый Go. Даже сранный Crystal логичней и продуманней.
>>1201190А ты кто такой?
>>1201190Crystal вообще любительская поделка. Даже Go лучше, хотя сделан старперами для нюфагов
>>1201190Ну и что же тут нелогичного?
>>1201169О, что-то такое я и искал.Есть ещё cheat sheet'ы по расту?
>>1172889Насколько это идиоматичный код на расте? Выглядит охуенно и читается намного лучше чем императивная for in история.
>>1201776Поддвачну
>>1202296Вполне себе идиоматичный же.
>>1202582Падажжи ебана, а как println! разруливается? Он разве thread-safe?
>>1202614Да, там внутри блокировка.https://doc.rust-lang.org/std/io/fn.stdout.html
Ходил пару дней назад на раст-митап в Осло. Было примерное 20 человек, из которых в проде пользуются растом только трое: я и двое моих коллег. Такие дела.
>>1205455Абсолютно нормальная ситуация для языка в таком возрасте же.
>>12055389 лет?
>>1205579https://blog.rust-lang.org/2015/05/15/Rust-1.0.html3 года же
let mut answer = String::new();io::stdin().read_line(&mut guess).expect("Не удалось прочитать строку");Вопрос: почему мы объявляем переменную answer изменяемой? Получив пользовательский ввод мы ее не меняем же. Или мы должны делать mut, так как сначала переменная инициализируется NULL'ом?
>>1208911String::new() создаёт пустую строкуКстати это мне напомнило одного товарища, который ваще не умел в доки и маны, постоянно спрашивал всякую хуйню. Зато как прочитать paper по алгоритму на 10 страниц и сразу понять так это у нему.
>>1208914Серега?
>>1208915Никита? нет
>>1208916Меня реально Никита зовут.
>>1208911И даже если бы в safe расте можно было бы куда-то передать ссылку на не инициализированную переменную, тебе бы все равно пришлось ее сделать mut, иначе ты бы не смог сделать &mut s.
>>1208920А зачем нужны не mut ссылки?
>>1208920Ссылку нельзя, зато можно так:https://play.rust-lang.org/?gist=ecd6f7813ea7b7c4f8ab2cf4cec9ae84&version=stable&mode=debug
>>1208921Чтобы случайно не поменять их содержимое, бака.
>>1208923Синдзи - уебок.
Посмотрел я ваш Rust. Не из функционально-петушиных он часом?
>>1208928Это плюсы, только в систему типов добавили чуть больше матана, и (пока еще) нет слоя легаси, в котором никто нихрена не понимает.
>>1208928Из них самых, только петухи ещё жалуются на систему типов и лично мне указатели lifetime кажутся недоделанными.Ну а когда язык допилят тогда всякие scala, c++, haskell соснут с проглотом, потому что в языке уже лучшие компилятор, документация, коммьюнити.
>>1208932А, это вы что ли про ту загадочную теорию типов?
>>1208956Очень надеюсь. Все же языки стартовали вроде не сразу, а медленно, по нарастающей.
>>1208959Ну а пока лучше забить на раст и вкатываться в кресты/скалу
>>1208995А если мне 8 лет?
>>1208995Проще в скриптопарашу, наверное.
Разбираю пример из https://doc.rust-lang.org/book/second-edition/ch09-01-unrecoverable-errors-with-panic.html#using-a-panic-backtraceПочему у меня бэктрейса нет нихуя? Алсо, выделенная на скрине папка не существует.
>>1210182https://www.reddit.com/r/rust/comments/7h24y5/how_do_i_run_cargo_test_with_rust_backtrace1_on/
>>1210182там написано:`RUST_BACKTRACE=1 cargo run`
>>1210240Может ты на скрин >>1210182 взглянешь, блджад? Я это в терминале и вводил.>>1210222Там ответы на "как передать переменную окружения RUST_BACKTRACE=1 в процесс cargo".Я переменную точно передал. Вот скрин, при запуске >RUST_BACKTRACE=1 cargo runcargo не выводит >note: Run with `RUST_BACKTRACE=1` for a backtrace.т.е. переменную он явно получил, но трейс всё равно не печатает.
>>1210244Алсо, проблема не в том что у меня mingw-баш под виндой, в ГовноШелле тот же результат.
>>1210244На винде может быть так, хз точно. Отличается в мелочахset RUST_BACKTRACE=1 cargo run
>>1210306Блять, ты ну совсем туруру?Я же сказал - я уверен что переменную окружения RUST_BACKTRACE=1 процесс cargo получил. Даже проверил на всякий случай ещё и в ПаверШелле >>1210248 .Проблема где-то в самом карго/расте.
>>1210414https://github.com/rust-lang/rust/issues/45027Ну что поделаешь. Виндой занимается мало народу.
Встретил вот такую сигнатуру:https://unicode-rs.github.io/unicode-segmentation/unicode_segmentation/trait.UnicodeSegmentation.html#tymethod.graphemes>fn graphemes<'a>(&'a self, is_extended: bool) -> Graphemes<'a>Тут же явное указание лайфтайма 'a на самом деле не требуется, он выведется из lifetime elision rules?
>>1212177Требуется, так как в Rust'е HKT нет, а 'a является частью типа структуры.
>>1212182Вот это самая бесящая часть языка, когда лайфтафмы нужны даже в суперочевидных случаях. Я думаю в раст 2018 пофиксят.
>>1212203Никаких аналогов HKT не будет в расте ещё пару лет точно. Скоро выкатят NLL, но эту проблему оно не фиксит. Да и это не является большой проблемой.
>>1212205А можно еще раз для особо отставших, почему именно нет HKT?
>>1212349Их невозможно реализовать в рамках zero-cost abstractions. Ибо HKT могут позволить запросто создавать типы условно бесконечного размера, которые в расте невозможны в unboxed виде. Ну и вообще для того, чтобы реализовать даже какое-то подмножество HKT нужно нехило перелопатить компилятор. Пока что статус ближайшей реализации какого-то аналога HKT здесь https://github.com/rust-lang/rust/issues/44265. Как можно заметить, до стейбла этому ишью ещё очень далеко.
>>1212367Схуяли? Вот даже на крестах чувачок в соседнем тредике делал:https://ideone.com/P1tE8A
>>1212393И где тут HKT?
>>1210414https://www.reddit.com/r/rust/comments/8s7gei/unsafe_rust_in_actixweb_other_libraries/Кстати мы юзаем актикс-веб в проде.
не хочу идти к немодным крестоблядям, поясните крабики вся ли низость работает подобным образом?нельзя просто так взять и взять остаток от отрицательного числа, да? пришлось городить адовый пиздец -- или это норм?если чо либа кизмет, и другую подключить не варик для меня в данный момент времени
>>1215020Что за софт на пике?
>>1215136Похоже на UE
>>1215136Unreal Engine.
дохуя знатоков а помощи хуй лолсобрал тастик на паблик переменных, потыкал всякие уже чисто без всего остального, кароче да тупо не врубается это говно, есть минус или неттак что просто добавил модуль после минуса и потом на абс, да, пиздец, по другому никак
>>1215163В UE4 можно на Расте писать?
>>1215198нет же, читай мои посты внимательнеено скоро завезут питоний
>>1215200>скоро завезут питонийФууу говно тормознутое.
>>1215227торопишься?
>>1215020А что тебе не нравится? -1 mod 24 = 23В чем вопрос?
>>1216171>В чем вопрос? >>1215020>вся ли низость работает подобным образом?но если в растике реально так >-1 mod 24 = 23то значит это злоебучие кресты мне голову отъебали блядь
Тред не читал (вообще ничо не читал), поясните как там с сборкой мусора - она есть, или всё по старинке вручную? И можно ли например объявить объект управляемым, чтоб он участвовал в gc, или локальным например, чтоб при выходе из блока он сдыхал, давно хотет такой езыг.
>>1216780>как там с сборкой мусораОна статическая - компилятор считает, где объект можно\нужно уничтожить, и сам вставляет вызовы free, если в общих чертах.>можно ли например объявить объект управляемым, чтоб он участвовал в gc, или локальным например, чтоб при выходе из блока он сдыхалДа.
>>1190801>>системное программирование>>сборщик мусора Тут, да и в других местах, всё время подразумевают сборку мусора как нечто, что прям на порядки снижает производительность и детерменированность, при этом сами за обе щёки готовы наворачивать всякие Rc, Arc и прочую протекающую срань. Откуда пошло такое предубеждение?
>>1216206Я напиздел, в расте все как в сиhttps://internals.rust-lang.org/t/mathematical-modulo-operator/5952
>>1216833Суть в том что rc используется гораздо реже чем обычные ref и box в низкоуровневом программировании. Ну и с rc ты все равно контролируешь время жизни, а чтобы не текло надо знать когда юзать Weak
Имеется опыт бекенда на python\cython джва года и чуть-чуть сишки, хочу что нибудь компилируемое, быстрое и современное нормально изучить. Лучше продолжать ковырять сишку или к вашему поделию тоже стоит приобщиться? Могу ли я биндинги пилить для любимой змеи без задней мысли?
>>1216976ну вот ведь нахуй, зачем ты же ты пиздишь анончик, не надо такя просто смутно помнил что так какая залупа в архитектуре с ламповых времен и что только в высокоуровневых языка это исправляюти как они разруливают там это говно?>>1216980>биндинги пилить для любимой змеи без задней мысли?можешь, я читал люди пишут мол вообще питони нинужен, как по мне выглядит как ядерный пиздец все, как можно кайфовать от указания int32 после каждой переменный лютый ад
>>1216985>как можно кайфовать от указания int32 после каждой переменный лютый ад Нормально, на самом деле. Без стрельбы по ногам в процессе implying int ==32bit
>>1216833>Тут, да и в других местах, всё время подразумевают сборку мусора как нечто, что прям на порядки снижает производительность и детерменированность, при этом сами за обе щёки готовы наворачивать всякие Rc, Arc и прочую протекающую срань. Откуда пошло такое предубеждение? Подразумевается, что сборка мусора влечет за собой рантайм, который в свою очередь опирается на реализованный операционной системой функционал, которого в момент написания системного кода еще нет. На большинстве языков с GC системное программирование на оных языках заканчивается на этом моменте, после чего открываются исходы этих языков (которые как правило на богомерских плюсах) и еблей байтов на плюсах начинается изобретательство велосипеда по скрещиванию страничной виртуальной памяти и GC.В расте такой хуйни нет.
>>1216987>Нормально>fn f64_div_rem(x: f64, m: f64) -> (f64, f64) {вам там вскод хотя бы указатель сам автоматически дописывает?
>>1216985>>и как они разруливают там это говно?Медленным софтварным делением по правилам.
>>1217016да я уже нагуглил они так же вычитают и потом делят на модуль, неясно правда зачем, но почти так же как я, так что можно успокоиться
>>1217005В большинстве случаев типы автоматически выводятсяА тебе не горит на питоне проверять тип передаваемого значения каждый раз?
>>1217035>А тебе не горит на питоне проверять тип передаваемого значения каждый раз? А зачем его проверять каждый раз если можно его не передавать. А если ты даун с куриной памятью, не могущий вспомнить что писал неделю назад - так для этого тесты придумали.
>>1217035>проверять тип передаваемого значения каждый раз?похуй вообще я хоббист, но вот такая поибень иногда ебет голову и не сразу соображаешь чо ему не хватает
>>1217045Такую ядерную чушь можешь нести только студент второкурсник, который сложнее lapa2.cpp ничего не писал.
>>1217045Юнит-тесты для проверки типов это ж ваще пушкаЯ ничего против этого не имею, но когда таким занимаешься то не пизди на нормальную типизацию> Не передаватьНу да, а TypeError нахуй в питоне не нужен, я ж ничего лишнего не передам
>>1216978>rc используется гораздо реже чем обычные ref и box в низкоуровневом программированииНу ref да, но для box ведь тоже накладные расходы имеются, тот же стек размечать надо на случай падения. Или в расте это всё можно отключить и падать уже насмерть?>>1216992>Подразумевается, что сборка мусора влечет за собой рантайм, который в свою очередь опирается на реализованный операционной системой функционал, которого в момент написания системного кода еще нет.Раз речь про настолько низкий уровень, тогда ясно. А malloc-то сам уже есть, или его тоже пилить приходится?>На большинстве языков с GC системное программирование на оных языках заканчивается на этом моментеВот тут совсем не понял про что ты. Есть же всякие unsafe конструкции для языков со сборкой мусора и раз они есть зачем клепать что-то на плюсах?Я ещё слышал про методу, хотя самому сталкиваться не приходилось, когда на некоторой платформе, для той же пусть явы, обеспечивается совсем минимальная среда, которая память лишь выделяет, а при её исчерпании падает. Насколько, интересно, подобное жизнеспособно.
>>1217045Типизация нужна не только для отлова ошибок, но и для документирования кода. Без нее ты смотришь на заголовок функции и гадаешь, что там в переменной. Когда я смотрел код youtube-dl , приходилось искать, откуда вызывается функция, чтобы понять тип аргумента.Ну и отлов ошибок тоже полезен конечно. Большие проекты, которые пишет несколько человек, сложно писать без типизации.
>>1217074>А malloc-то сам уже есть, или его тоже пилить приходится?Маллок можно навелосипедить средствами языка путем запиливания страничного менеджера (как и placement new). В расте тоже можно кастомный аллокатор заебенить. А в жабке и решетке - хуй, жри что дали с JVM и CLR. Которые почему-то на плюсах и С, бгг. GC зашит в рантайм языка с GC и опирается на средства операционной системы. Чтобы запилить кастомный рантайм с GC поверх голого железа придется перепиливать рантайм, а он на плюсах.> Вот тут совсем не понял про что ты. Есть же всякие unsafe конструкции для языков со сборкой мусора и раз они есть зачем клепать что-то на плюсах?Вот и мне интересно, почему у этих языков рантайм на плюсах и гвоздями к ос прибит. А unsafe конструкции проблему наличия прибитого гвоздями к языку рантайма на плюсах не решают, к сожалению.Вот в расте обошлись без рантайма на плюсах, например.
>>1217074Не знаю, попробую сегодня поигратьсяПо-моему я видел для каждой функции ее пару для panic'a, т.е. никакого оверхеда, но могу ошибаться.Плюс есть panic = 'abort', думаю в этом случае точно ничего лишнего не должно быть.
>>1217082С же можно и без маллока юзать, а плюсы без аллокатора разве можно?
>>1217102>а плюсы без аллокатора разве можно? Да. placement new, переопределение new delete,
>>1217082Жабка неспешно уходит от этого. Вон компилятор на ней уже переписали. Но рантайм конечно на жабе написать задача нетривиальная.
>>1217082термин >рантайма на плюсах выдает в тебе шкальнега.
>>1217186https://github.com/dotnet/coreclr/tree/master/src/gchttps://github.com/dmlloyd/openjdk/tree/jdk/jdk/src/hotspot/cpu/x86
>>1216791А можно сделоть например так, чтоб работы по мемори-менеджменту в каком-то потоке не выполнялись никогда, а делигировались какому-то другому потоку? Например ищу куда б портировать мое DSP приложение с фрипоскаля, в котором рендер-тред только считает синусоиды. Не хочу чтоб там же происходила внезапная оптимизация кучи ну или чо там делает мемори менеджер, когда освобождает память.
>>1217187Есть jvm написанные на хуях собачьих, а не на си, и операционные системы, написанные на нём же. Ъ-компуктер-сцаентист никогда не будет говорить про "с++ рантайм", пусть даже в мэйнстриме он 99% с++
>>1217190>на нёмна них жебыстрофикс
>>1217190>Есть jvm написанные на хуях собачьих, а не на сиПиздабол. > и операционные системы, написанные на нём жеПиздабол х2.
>>1217195Лох цветочный, подбородочный.https://github.com/zxh0/jvm.goЗдесь особенно смешно обосран, в этом итт тредеhttps://en.wikipedia.org/wiki/Redox_(operating_system)
>>1217196>https://github.com/zxh0/jvm.go> jvm.go is a toy JVM (which is far from complete) programmed in Go
>>1217196>https://github.com/zxh0/jvm.goИ онли интерпретатор, ну вообще пушка.
>>1217196Нахуя в 2018 выпускать unix-like системы?Почему никто до сих пор не придумал нормальный формат экзешников/пакетов, нормальный набор сисколов (особенно связанных с ipc), нормальную систему конфигов?
>>1217221Потому что никому не нужна ос без софта?
>>1217227Так тебя послушать, написал à la unix и всё само без еботы скомпилировалось и заработало сразу.
>>1217188Да, можно.
>>1217343Хм. Буду изучат.
>>1217083>Не знаю, попробую сегодня поигратьсяНу чего там, потрогал как чего?
Кстате эта, про лямбды забыл спросить.
И кстати, зачем русту msvc? Чот попахуе, норм люди свои билд тулзы обычно сразу делают.
>>1217788Чо? У ржавого через карго все билдится.
>>1217825Да, а почему инсталлер говорит, что иди нахуй у тебя msvc тулчейн не установлен?Впрочем, почитал спеку, походу язык реально наебалово очередное, нет ничего, что нельзя сделать на c. По мозгоебству можно на простых вещах выиграть, в сложных скорее придется проигрывать.
>>1217838Что нельзя сделать на С?
>>1217978Бинарный, уходи, тебе здесь не рады.
Какая из растовских text-ui библиотек сейчас считается наилучшей?
Какая из растовских GUI библиотек сейчас считается наилучшей?
>>1218105https://crates.io/crates/cursive
>>1218115thx
>>1218111rise-ui
Скомпилил через rustc 1.27 стандартный хеллоу ворлд и ужаснулся от размера получившегося бинарника — целых 4.7 мегабайт! Когда то дельфи за 1 мб обсирали, а тут почти в 5 раз больше!
>>1219436Загугли уже про static vs dynamic linking
>>1219436После rustc -C opt-level=3 -C lto -C link-args=-s hello.rsполучилось 425 килобайт — всё равно многовато!
>>1219458Согласен, совсем охуели со своими хипстерскими языками, памяти на них на напасешься! 640 килобайт должно всем хватать!
>>1219458В бинарь статически линкуются std и jemalloc, от туда и размер такой.
>>1217074>о для box ведь тоже накладные расходы имеются,Box - это же практически unique_ptr из плюсов.
>>1219436Платиновый вопрос.
>>1219585Аллокатор можно системный воткнуть.
>>1219968Можно, но нужно ли? Только чтобы ссаные килобайты сэкономить отказаться от нормального аллокатора?
>>1219458Чет проиграл, если афтары, декларирующие ебический вывод и контроль безопасности на уровне канпелятора в то же время не смогли обеспечить отсутствие лишнего кода в бинарнике, ну что тут блядь сказать... Где-то нас наёбывают.
>>1219904>Box - это же практически unique_ptr из плюсов. И?
Решил потрогать раст и написать на нём калькулятор. Я конечно понимаю, что раст направлен на бизнес и модули должны быть разделены максимально логично для простой поддержки... но ебаный рот, какого хуя?Я хочу, чтобы у меня был файл settings.rs в корне, в котором будет лежать всё, что пользователь может настроить, например функции, который он потом будет использовать. Функциям хранится в самом файле settings бессмысленно, поэтому я выношу их в отдельный файл, но оказывается, что я даун и хранится оно в корне не может. Для того, чтобы cargo нашёл мой functions.rs мне нужно засунуть его в settings/, что не логично, и если бы в обычном проекте так всё лежало я бы был немного возмущён. Итак, как мне всё это организовать, чтобы settings был в корне и всё было красиво?
>>1220673>раст направлен на бизнесСмешная шутка. (Нет.)
>>1220692>искаропки лежит фреймворк для тестов
>>1220693И что? В D юниттесты прямо в синтаксис языка впилены, в pl/sql же надо неслабо заебаться, чтобы хоть что-то протестировать. Бизнесу тесты не нужны, они нужны раработчикам.
>>1220414-> >>1219585вас (дурачков) везде наебывают кстати, се ля ви
>>1220692Ты же в курсе, что изначально раст стартанула мозила ради вполне конкретных бизнес-целей?>>1220673Ты сишник?https://doc.rust-lang.org/book/second-edition/ch07-01-mod-and-the-filesystem.html#moving-modules-to-other-files (всю главу не забудь прочитать)Алсо, https://withoutboats.github.io/blog/rust/2017/01/04/the-rust-module-system-is-too-confusing.html
>>1220741>Ты сишник?было сложно?олсо, последний год жавагосподин и ваще много чего перепробовал помимо си
>>1220741>https://doc.rust-lang.org/book/second-edition/ch07-01-mod-and-the-filesystem.html#moving-modules-to-other-files (всю главу не забудь прочитать)Да я читал, но ничего из этого не вынес. >https://withoutboats.github.io/blog/rust/2017/01/04/the-rust-module-system-is-too-confusing.htmlвот за это спасибо, но видимо я хуёво читаю просто, но как я понял синтаксис такой
>>1220801блядь добавьте на двач возможность удалить, ебать я даунобычно я читаю получше, но исправление имени ничего не дало
>>1220839Попробуй ::functions
Это троллинг?
>>1220845
>>1220870Нет. Пиздец у тебя шрифты.
В общем, ну его в жопу. Interlockedincrement наше всё.
>>1220876Никто не будет тут догадываться что ты там написал. Иди читай раст бук и повторяй примеры, сам найдешь свой проеб.
>>1221054в смысле догадываться, я привёл вообще весь код, который вызывает ошибку, в functions.rs буквально больше нихуя нет, а растбук я ужа почитал, спасибо
>>1221057И что ты там вычитал тогда, если не сообразил, что нужно написать mod вместо use?
>>1221031Шрифты как шрифты. МНЕ НОРМ. Лучше скажи нахуя они пиздят про крутость язычка прямо на index.php? Это же открытый пиздежь, хеловорд на этом недоязычке стрипнутый весит 416 кб. Ебанутые, пиздец ебанутые.
>>1221096Твоё маленькая это не их маленькая.У кого сейчас меньше кроме няшной и асма?
>>1221096Ты говоришь о том, в чём нихуя не разбираешься.https://lifthrasiir.github.io/rustlog/why-is-a-rust-executable-large.html полностью прочитай.
>>1221096> МНЕ НОРМГовножор.
>>1219966Жаль, что нет официального rust-faq, где бы были собраны лучшие ответы на платиновые вопросы.
>>1221064>Алсо, https://withoutboats.github.io/blog/rust/2017/01/04/the-rust-module-system-is-too-confusing.html
>>1221097У фпипоскаля
>>1221096Тот факт, что ты не умеешь собирать минифицированные бинарники вообще никак не означает, то написанное на индексной не правда.
>>1220801>Да я читал, но ничего из этого не вынес.Прочитай еще раз. Я серьезно.
>>1221176
>>1221301Падажжи, раст позволяет или нужно уметь? Это важно, потому что я умею создавать компактный потокобезопасный быстрый код на других языках, т.е., на расте код сразу не будет не компактным и эффективным, а будет только безопасным? Профит как-то неочевиден.
>>1221336Лол, посмотрите на него. Умеет он. Такой-то фантазер.
>>1221323да я понимаю, что я жопой читаю, но я реально не могу понять, как оно работает. Я уже задал вопрос на stackoverflow и там мне сказали, что нужно писать mod xyu в корне и потом уже в самих файлах где надо писать use. Сделали бы просто как в жаве или плюсах, но нет же, сделаем по новому.
Стоит ли вкатываться в раст сейчас или подождать пока его джопилят? Пока что посмотрел его фичи, и выяснил что по сравнению с C++ у него очень мало возможностей для метапрограммирования. В том числе:1) Функции выполняющиеся во время конпеляции. Пилится три года, но обещают допилить до конца года: https://github.com/rust-lang/rust/issues/241112) Non-type параметры для генериков. Обещают допилить до конца года, но в Rust 2018 оно не входит, так что возможно будет пилится ещё дольше. https://github.com/rust-lang/rust/issues/445803) Генерики в качестве параметров для генериков, оно же Higher Kinded Types. Нету даже rfc.4) Рефлексия во время компиляции. Решается макросами, да. И в отличии от C++ оно работает. Правда всё равно как минимум придётся работать с (почти) полноценным парсером Rust'а (например syn) вместо нормальных АПИ.И, кстати, что там с IDE и отладкой?
>>1221336При чем здесь потокобезопасность или компактность? Мы ведь про размер рантайма говорили. У раста он охуительно минимален, если умеешь писать с no_std. И бинарник со статической линковкой будет такого размера, что меньше уже только hand written asm.Ну и Rust не для javac ебанатов, увы. Нужно понимать, что такое системные вызовы, .data, ELF. А то ты взвешиваешь недостатки своей операционной системы MSVC, а не возможности Rust. Иди читай про no_std, no_mangle.И да, позволяет, но нужно уметь.
>>1221458> У раста он охуительно минимален, если умеешь писать с no_std.Лол. no-std это раст без рантайма. Тут дело в том, что C++-рантаймы обычно уже есть в системе и их не нужно статически линковать к приложению (хотя иногда и линкуют), а вот растовые рантаймы уже надо всегда статически линковать в приложение. Вообще у раста довольно всё грустно с разделяемыми библиотеками (впрочем у C++ тут тоже всё грустно, правда успело появиться куча костылей для обходы почти всех багов).Алсо, jemalloc, который по-умолчанию линкуется во все приложения, но слава богу в последней версии раста его уже можно отключить. Из-за него растовые программы ещё и ОЗУ больше кушают, поскольку жемаллок заточен под пирформанс.
>>1221479>no-std это раст без рантайма.wrong. rtfm
>>1221492Там из рантайма только 3.5 функции для того чтобы самим языком можно было пользоваться (хотя часть std туда иногда переносят, если они работают без динамических аллокаций).И, кстати, вроде же пока нельзя делать no_std-приложения на стабильном расте? По крайней мере пока не стабилизируют это: https://github.com/rust-lang/rust/issues/44489
>>1221355>я реально не могу понять, как оно работает>я жопой читаю))По-моему сделали неудобно (иерархия в фс не полностью соответствует иерархии модулей; модуль объявляется не в том файле, где реализуется), но чтобы пользоваться все-таки достаточно прочитать (не жопой) растбук. Если ты mod/use путаешь, тот тут имхо вообще раст не виноватый. Короче сядь да разберись, анон, прям читай растбук и тут же все варианты в коде пробуй.
>>1221495Нет бы просто сказать "действительно, ошибся".В стабильном сейчас только либы, да.
>>1221497Ну, честно говоря несколько интрисиков llvm и 3.5 функции для работы с фичами языка я за рантайм не считаю.
>>1221498Так это вопрос определения, а не чьих-то мнений. Впрочем, не вижу смысла об этом спорить.
>>1221501Спорить можно о том, что без std от раста остаются рожки да ножки и использовать это имеет смысл разве что в embedded или для каких-нибудь драйверов. Писать любые другие приложения без std не имеет смысла.
Алсо, интересно, они сделают возможность работы асинхронных функций без std? Было бы прикольно использовать в embedded-приложениях await для ожидания прерываний вместо callback'ов.
>>1221479> С++-рантаймыОй, содомит, прекращай. Иди курс ОС пройди для начала, Таненбаума хоть прочти. Ну или википедию по libc и системный вызов.>>1221498> 3.5https://doc.rust-lang.org/core/index.htmlИ попробуй подумать, что останется в крестах без libc.>>1221504> Писать любые другие приложения без std не имеет смыслаКонечно не видишь. Ты вообще много чего не видишь. Например unikernel или bare-metal.
>>1221509Что еще в issues добавим? Non-blocking IO без epoll/kqueue?
>>1221343Да, умею.>>1221458>взвешиваешь недостатки системы Как недостатки системы влияют на нежелание афтарав этого высера сделать динамическую линковку рантайма? Если ты пишешь хелоуврот, то тебе кроме стдаута ничего не нужно, это максимум десяток функций тип получить хендл и серануть блок в файл.
Пока вы тут кукарекаете о какой-то чуши, мы делаем продукт на расте. И нет, не блокчейн. Кстати, мы неторопливо ищем расто-разраба (с релокацией в гейропу).
>>1221585Давай детали. Куда релокация, Пшекия?
>>1221601Norge
>>1221583Собери с динамической линковкой, ты же умеешь. лол нетА я хочу статику по умолчанию, и отладочные символы. И -O0. И stderr хочу блять. И malloc хочу.А ты уебывай зелловорлды писать. На большее не годишься.
>>1221605Дваждую этого. Как в том анекдоте про суровых сибирских мужиков и японскую лесопилку.
>>1221605> с динамической линковкойТы же десятью постами раньше пиздел, что при включенной динамической линковке основная рантайм-малафья все равно линкуется статически.
>>1221614Я не он, лол. Возьми да сам проверь что и как линкуется! Ты сможешь?
>>1221602Есть инфа? Senior 10лет в проде ищете или novice с релевантным опытом подойдет? Какие условия и как проходит собеседование? Нужно больше деталей.
>>1221630Мне делать больше нечего? У меня рейт 300 евро в день, заплати - буду проверять.
>>1221635Спешите видеть, автор компактного потокобезопасного кода на __других__ языках не может посмотреть на результат линковки helloworld бинарника на 500кб. v::go::lo::sin(u);
>>1221640Для этого надо жопу поднять, скачать раст. Мне лень. В целом я скорее скептически настроен по отношению к расту, однако допускаю его развитие в нише, где с/спп сложновато и "небезопасно". Однако привязанность к сишной терминологии, это уже плохое начало. В то же время, судя по документаци, переименованы простые базовые понятия - передача по ссылке и передача по значению, интерфейс, тип. Зачем? Хотя бы только по этому убежден на 95% что раст не получит широкого распространения и развития за пределами конкретных проектов, для которых он был создан. Ну а вот эта вся линковка - это как лишний повод доебаться. Слишком много последнее время всплывает шлака с красивой оберткой - читаешь документацию, так аж как будто слюни во рту кипят от правильного языка и "гарантий стабильности и безопасности", а на поверку - корявая шняга.На моей память кажись только автор груви покаялся тип, "если бы знал, что есть скала, то не стал бы свою хуйню придумывать".
>>1221648Да не пизди, маня! Ты просто не можешь. Вот так, ага. Ты не умеешь в нативщину, лол. Не знаешь даже как секции в бинарнике по размеру посмотреть.Что у тебя там переименовано, поехавший? Тип? Семантика копирования перемещения? Контракт? Сишная терминология блять. ООП хочется? DI/IoC навернуть?Ну обосрался, не осилил borrow checker, бывает. Уходи писать свои круды и не мешай тут нам обсуждать единственный язык для построения систем в 2018 году, который не goвно. Допускает он развитие блять, развиватель 300/час.
>>1221614https://lifthrasiir.github.io/rustlog/why-is-a-rust-executable-large.html
>>1221676И ещё вот этот скрин не помешает, раз уж по ссылке так трудно перейти.
>>1221672Проиграл.мимо интересующийся языком
>>1221672А что плохого в крудах?мимо собирался писать круды на расте
>>1221631В целом нет четких критериев, потому что вакансия не срочная. Рассматриваем людей, которых можно охарактеризовать как "general problem solver", с нужным нам техническим бэкграундом. Текущий стек: rust, common lisp, kotlin (выпиливаем в пользу раста), js(vue) на фронте (elm уже выпилили).
>>1221712Ничего плохого, но зачем там Rust?
>>1221825А почему нет?
>>12218251) Достаточно мощная система типов2) Охуенный перформанс
>>1221840> Haskell
>>1221863Нет, спасибо. Мне нужен практичный инструмент, а не хуйня, на которой надо превозмогать и на которую не найти людей.
>>1221864Тогда зачем Rust? Превозмогать придется, Sized, dyn Trait / Object-safe. И людей на Rust ты сейчас не найдешь, онли за большие деньги. Да и экосистема пока не готова к твоим крудам, а ты к экосистеме.
>>1221928У нас уже все в проде и приносит бабло. Но тебе видимо виднее. На недавном митапе по расту было 30 тел, так что желающих хватает.
>>1221716>common lisp, kotlin, elmУ вас там закрытый хипстерский клуб?
>>1221963Ага. Типа того. Дрочим как хочем.
>>1221929> практичный инструмент, а не хуйня, на которой надо превозмогать и на которую не найти людей> Common Lisp, Kotlin, Elm
>>1221997> Тред не читай
>>1221716Нихуя вы суровые. Как вы cl себе впихнули? Домейн-то какой, хотя бы в общих чертах? Расскажи, анон, очень интересно.
>>1222087Что такое "cl"?не бейте, я только вкатываюсь
>>1222113Common Lisp же.
>>1222087Банковская сфера. Был сервис авторизации и аутентификации на жабе. Наш главный наркоман заебался заставлять ее работать как нужно, плюнул и написал с нуля на общелиспе за пару дней.
>>1222309Эх щас бы отказаться от промышленного Spring Security в пользу написанной на коленке поделке на лиспе. Да еще и для банковского ПО ))Или манямирок или умственно отсталые
https://doc.rust-lang.org/book/second-edition/ch15-03-drop.html>For example, Box<T> customizes Drop to deallocate the space on the heap that the box points to.https://doc.rust-lang.org/src/alloc/boxed.rs.html#244-248>Do nothing, drop is currently performed by compiler.
>>1221716Почему выбрали Rust, а не Go? На Go же удобенее писать сетевые сервисы.
>>1222956Потому что goвно это язык для отсталых индусов.Дженерики не завезли, нормальную обработку ошибок не завезли, нормальную систему типов не завезли. Разве что грин-треды ничего и компилится быстро.
>>1222960Скажем, если бы тебе понадобилось написать сетевой сервис критичный к производительности и сетевым зарежкам (привет Go GC), чтобы ты выбрал и почему?
>>1222969Мы в проде используем actix_web, но у нас и нагрузки не большие. Правда чел из MS который писал этот фреймворк слегка накосячил с unsafe. В общем я думаю что rust на данный момент один из лучших языков для бэкэнда в широком смысле. Производительность это хорошо, но система типов и умный компилятор это очень важно.
>>1222970Ну actix_web - это веб. А скажем написать load testing тул для кастомного протокола с хитрой логикой?
>>1222969Я не он, но пишу именно такой сервис. На Rust.
>>1223009Из чего выбирал? Почему остановился на Rust? Пишешь для себя или в продакшен?
Растовчане не перекатывают тред потому что боятся shallow copyБадум-тсс
>>1223013Я не выбирал. Но если бы выбирал, то эту задачу может быть на C можно было сделать. Все, что без GC и не накладывает оверхеда на обработку сетевых пакетов. Пишу в прод.
>>1222309>плюнул и написал с нуля на общелиспе за пару дней.Лол, классика. Добра вам, ковбои.
>>1223052Лол.Но и вправду, оп еще тут? Может самим перекатить?
>>1224813Я тут. Есть предложения по оформлению шапки?
Зачем нужны ебучие iter() и collect()? Почему без них нельзя было сделать?
>>1225930Потому-что итераторы ленивые.
>>1225930Тому що разработчики раста принципиально делают так, чтобы приходилось явно описывать что ты собираешься делать. Да, они могли впихнуть методы вроде .map, .reduce (они могут называться по-другому, но ты понял смысл) напрямую в имплементацию коллекций как это сделано во многих других ЯП, но они предпочитают, чтобы явно было указано, что ты работаешь не с коллекцией, а с итератором коллекции.
>>1225930Потому что ты можешь получить разные итераторы по одной и той же коллекции:iter() -> по ссылкеiter_mur() -> по мутабельной ссылкеinto_iter() -> по значению, по сути moveТо же самое с collect — ты можешь явно указать какую коллекцию ты хочешь получить на выходе, если это не может быть выведено компилятором.
>>1225939Думаю можно зделоть было и без этого.>>1225941В чём принципиальное отличие?>>1226113Аргумент, но мне кажется лучше бы это отдельной опцией было.
>>1226182Можешь предложить дизайн апи, который будет работать без этого? Напиши RFC или еще лучше реализуй его в виде библиотеки. Если тебе не нравитя стандартная, на crates.io есть альтернативы, например https://github.com/bodil/im-rs или https://github.com/orium/rpds
Вы перекатывать будете?Хотя похуй, я всё равно завязал с изучением Раста. Немножк растбук не закончил.Но мне срочно нужно искать работу. А у меня ни диплома, ни опыта. И я в мухосрани.Поэтому пришло время снова взяться за JS. Ибо даже с Питоном вакансий в моей мухосрани почти нет.
>>1227070Так решись и поищи яйца переехать туда, где работа есть не только на JS.
Перекатил>>1227127 (OP)>>1227127 (OP)>>1227127 (OP)>>1227127 (OP)>>1227127 (OP)