Этого треда уже нет.
Это копия, сохраненная 20 апреля 2021 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Rust #14 /rust/ 1789061 В конец треда | Веб
Rust — язык, позволяющий каждому создавать надёжное и эффективное программное обеспечение.
https://www.rust-lang.org/

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

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

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

Предыдущий тред: >>1756693 (OP)
unsafe.png236 Кб, 701x700
2 1789065
Конечно же я забыл поменять номер треда.
3 1789225
1
4 1789272
Работу завезли? Лохчейны или нормальные сервисы?

У меня с растом какая-то странная история, я уже где только не добавился во всякие коммунити, но так и не начал ничего на нём писать.
5 1789335
>>789065
пусть всегда будет 14, мне понравился
6 1789337
>>789272
работы нет, одни лохчейны
7 1790247
>>789272
Делою фулстек на расте. Зависимость есть, брат жив.
8 1790310
>>790247
Зарплата? Требования? Компиляешь wasm? Или про какой ты фулстек?
9 1790324
>>789272

>нормальные сервисы


Какие сервисы?
Либы экосистема для прода может еще и сырно вато, но особо не вникающему мимокроку написать рестик + фронт на последних высокоуровневых вас либах достаточно просто
10 1790362
>>790310
Зарплата не в рублях сорян. Компиляю wasm, ага.
11 1790434
>>790362
Чёт лол с твоей уверенности что только у тебя не в рублях.
12 1790450
Те кто много уже кодил на расте, поясните за его недостатки. Очень интересно каков раст с точки зрения опытного пользователя, без розовых очков.
13 1790467
>>790450
Порог вхождения слишком высокий, никто из треда не осилил.
14 1790486
>>790450
При всей сложности языка, как только хочешь придумать клёвую зирокост ёба-абстракцию, тут же натыкаешься на то, что тебе нужны фичи типа GAT и специализации, которые хер пойми когда доделают и когда стабилизируют и приходится городить костыли.
inrustwetrust.jpg54 Кб, 512x512
15 1794774
>>790450
По минусам могу сказать за себя:
- Сложно вкатываться, даже для программиста с опытом. Первую неделю-две боролся с компилятором и уродливом кодом. Потом в принципе пишется как и на каком-нибудь Go или TypeScript. Но вот с порогом входа надо чё-то делать, отбивает желание продолжать.
- Сырые крейты и библиотеки. Всё в глубокой альфе-бете-гамме, даже родные библиотеки, которые поддерживаются комьюнити редко 1.0. И они все друг от друга зависимы аля какой-нибудь npm. Какой-нибудь печально известный actix за собой тянет пол crates.io таких же сырых библиотек.
- Медленный компил. Хеллоуворлд нормально, но если подрубить какие-нибудь зависимости, то вешайся. Перекомпил всего проекта - вообще забей. Можно сразу идти чай ставить.
- Малое комьюнити. Я где-то в середине июля решил выучить Rust, сидел в тредах, чёт писал, спорил, семенил в общем. Когда мне надоело - треды умерли нахуй. Показательно. Найти прогеров на расте думаю тоже не так просто.

В целом раст выглядит прикольно, но ОЧЕНЬ сыро. И непонятно когда это изменится. Я пишу на расте для себя, для личного проекта. В продакшен я бы его брать не стал. Если ты его для работы хочешь юзать, а не для себя или ради энтузиазма, то годика через 2 приходи, имхо.
16 1795235
А где вообще используют этот ваш раст?
17 1795241
>>795235
Хоть где.
19 1795846
>>795844
Лол, ржавчина поедает гугл изнутри.

> For now, Chrome investment in Rust will remain a background investigation (mostly directed towards prototyping these tools and techniques). If we become convinced this sort of interoperability is possible, we’ll revisit widespread use of Rust in Chrome, and at that point we plan to work hard to achieve this with robust production-quality solutions.



Но пока что вяло, сначала докожи. Не удивлюсь если этим занимаются уволенные из мозиллы.
20 1795977
>>795846

>уволенные из мозиллы.


Из команды Rust в мозилле поувольняли в основном blmщиков.

Оказалось, что держать у себя в штате толпу ебанутых не то чтобы сильно выгодно, особенно на фоне кризиса:
https://dtf.ru/flood/201152-sluh-novyy-prioritet-disney-uvolnenie-sjw-rabotnikov
21 1796986
>>794774
Ну хуй знает, в телеграме чат вполне живой.
22 1797005
>>796512 (Del)
че за хуйня
23 1798230
>>790450

Эти чуть пояснили чутка про техническую часть
>>794774
>>790486

А вот тебе ещё сверху чуть более философских субъективных мыслей, может, что-то покажется интересным.

— Небольшое число вакансий

Любой условный мейнстримовый JS требует гораздо меньше усилий для вката или переката на более интересное место.
Вакансий везде до хуя, есть устоявшиеся подходы к разработке и модные фреймворки: сиди дрочи пет проекты и ходи брутфорси вакансии. (другой вопрос, что тебя ждёт в конце такого пути, но это уже отдельная тема)

На Rust вакансии приходится искать, почти все они в Америке и Европе (и то там сильно меньше по сравнению с Америкой), в остальных странах суммарно и полсотни не набиралось тогда, когда я занимался поисками.
И искать приходится не только на linkedin/hh, а в Twitter, /r/rust и через сарафанное радио.
Зачастую ещё и оказывается, что Rust там всего лишь часть системы, довольно обособленная, и в твои обязанности будет входить что-то ещё.

В России сейчас, наверное, и 15 компаний с чистой разработкой на Rust не наберётся включая все блокчейны.
То есть, если хочется увеличить шансы найти работу, в дополнение к Расту сразу нужен хороший иностранный язык.

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

А если учитывать, что наличие проектов на Rust не делает компании и работу автоматом хорошей и интересной (особенно в далёкой перспективе), то выбор сужается ещё больше.

- Серьёзные требования к соискателям

К счастью, не всем таким долбоёбам что-то светит; к несчастью, потому, что нужны специфические знания.

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

Обиднее ещё то, что эти знания плохо переносятся между областями: веб-макака на Rust с прекрасным знанием редисов, кафок и прочих кубернетесов почти бесполезна в каком-нибудь embedded на Rust, там совершенно другие задачи.
Так что количество доступных вакансий на Rust на самом деле ещё меньше: долбоёбов брать человека просто за знания языка и библиотек (которых всё равно особо нет) не так много. Тех, кто при этом будет платить нормально, ещё меньше.

- Много не-Rust "legacy"

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

Очень частый сценарий в вебе: копролит на php/python/java/younameit распиливают на микросервисы на Rust, чтобы вот в этот-то раз всё стало заебись.
Мало того, что тебе в этом цирке придётся учавствовать, да ещё и на Rust писать будешь половину времени, остальное время дебажа старый продукт в тщётных попытках понять, что этот индусокод делает, и что за хитровыебаную бизнес-логику от тебя хотят.

- Rust может быть очень разный

В том же вебе ты будешь шлёпать типичный крудоговногод уровня `if err != nil`, только на Rust, склеивая клеем логику и либы с crates.io
Про unsafe будешь в страшных сказках слушать и вряд ли сам будешь трогать (если не поехавший экспериментатор).

В wasm проектах тебе с порога в зубы прилетает `#![no_std]`, с которым не работает 95% всех крейтов, зато добавляется горсть новых типа web-sys со своей особой пизданутостью.
В embedded к этому бонусом будут ffi биндинги ко всяким либам на C и, если не повезёт, ещё и макросы с asm и, конечно же, unsafe через unsafe.

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

- Мало знаний о том, как правильно писать на Rust

Кроме того, что использование фич языка может сильно отличаться от проекта к проекту, так ещё и знаний о том, как писать нужно и как не нужно почти нет: каждый дрочит как хочет и охуевать от проекта к проекту иногда приходится знатно с каких-нибудь пизданутых самописных процедурных макросов, любовно размазанных толстым слоем по проекту и прочих граблей.

Обычное большинство твоих коллег (как и ты) будет среднехуёво знать сам язык и кодить в меру своего разумения так, как им видится.
Если повезёт, дело ограничится какими-нибудь тихими особенностями (а не полным пиздецом) в уголках их проектов из-за того, что они не смогли (не подумали) договориться о том, как код писать.

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

- Плохой тулинг и сложности с поиском серьёзных ошибок

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

Дебаггеры как бы есть (как и полторы ide), но до уровня дебаггеров JS или Java ему как до луны: обычные структуры из stdlib типа `OsStr` сейчас отображаются как набор байт, а не строки, лол.
Максимум, что ты с ними сможешь сделать (и то не всегда): запустить локально приложение и походить в нём по брейкпоинтам, проваливаясь в декомпилированный asm.
Возможно, ты даже сможешь понять, что записано почти во всех переменных на стеке (ну или будешь писать и учиться грузить pretty printer'ы на Python для дебаггера, если совсем заебёт).

- Нужно следить за всем, что происходит вокруг Раста и что-то изучать по мере сил

Тут примерно как в JS, доки по языку и либам очень редко бывают актуальными (если вообще есть, лол), всё бурлит, меняется и куда-то несётся, друг от друга зависит и тянет всякие аналоги leftpad.
Чтобы понять, как пользоваться нужными библиотеками, придётся зачастую читать их код (и хорошо если тесты или examples будут).
Поскольку большинство крейтов имеют версию `0.*`, компиляция может сломаться из-за простого апдейта какого-нибудь крейта (к счастью, не очень часто с таким сталкивался), за всем этим говном нужно следить и обновлять, чтобы не оказаться в дремучей жопе спустя пару лет, что тоже добавляет головняка.
Иногда проекты забрасываются, искать альтернативы и всё опять переписывать тоже удовольствие ниже среднего.

Будешь что-то гуглить нестандартное в узкой предметной области — рискуешь нарваться на пару полумёртвых крейтов и всё.
Если ты до сих пор впадаешь в ступор от ошибок компиляции, то тебе пизда, загуглить точный набор твоих закорючек зачастую невозможно а то, что гуглится, может и не подойти, потому что даже мелкое отличие может влёгкую агрить borrow checker.

Если полезешь в async, ещё и отличный от tokio, то придётся держать в голове зависимость крейтов от рантайма, что к чему подходит и как это заводить вместе, если не подойдёт (опять читать код, да).
Бонусом идёт повышенное веселье с компилятором и всякими `Pin`, хотя раньше, до async/await, когда были комбинаторы было ещё хуже, сейчас норм, можно наколбасить много кода до того, как нарвёшься на проблемы.

Описание новинок в самом языке появляется только в release notes, в Rust Book это оседает непонятно когда, обычно силами энтузиастов, почти всю команду документаторов Mozilla прибила своими увольнениями.
Если совсем на это положить хуй, спустя пару лет можно обнаружить себя довольно в стороне от современных фич языка.
23 1798230
>>790450

Эти чуть пояснили чутка про техническую часть
>>794774
>>790486

А вот тебе ещё сверху чуть более философских субъективных мыслей, может, что-то покажется интересным.

— Небольшое число вакансий

Любой условный мейнстримовый JS требует гораздо меньше усилий для вката или переката на более интересное место.
Вакансий везде до хуя, есть устоявшиеся подходы к разработке и модные фреймворки: сиди дрочи пет проекты и ходи брутфорси вакансии. (другой вопрос, что тебя ждёт в конце такого пути, но это уже отдельная тема)

На Rust вакансии приходится искать, почти все они в Америке и Европе (и то там сильно меньше по сравнению с Америкой), в остальных странах суммарно и полсотни не набиралось тогда, когда я занимался поисками.
И искать приходится не только на linkedin/hh, а в Twitter, /r/rust и через сарафанное радио.
Зачастую ещё и оказывается, что Rust там всего лишь часть системы, довольно обособленная, и в твои обязанности будет входить что-то ещё.

В России сейчас, наверное, и 15 компаний с чистой разработкой на Rust не наберётся включая все блокчейны.
То есть, если хочется увеличить шансы найти работу, в дополнение к Расту сразу нужен хороший иностранный язык.

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

А если учитывать, что наличие проектов на Rust не делает компании и работу автоматом хорошей и интересной (особенно в далёкой перспективе), то выбор сужается ещё больше.

- Серьёзные требования к соискателям

К счастью, не всем таким долбоёбам что-то светит; к несчастью, потому, что нужны специфические знания.

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

Обиднее ещё то, что эти знания плохо переносятся между областями: веб-макака на Rust с прекрасным знанием редисов, кафок и прочих кубернетесов почти бесполезна в каком-нибудь embedded на Rust, там совершенно другие задачи.
Так что количество доступных вакансий на Rust на самом деле ещё меньше: долбоёбов брать человека просто за знания языка и библиотек (которых всё равно особо нет) не так много. Тех, кто при этом будет платить нормально, ещё меньше.

- Много не-Rust "legacy"

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

Очень частый сценарий в вебе: копролит на php/python/java/younameit распиливают на микросервисы на Rust, чтобы вот в этот-то раз всё стало заебись.
Мало того, что тебе в этом цирке придётся учавствовать, да ещё и на Rust писать будешь половину времени, остальное время дебажа старый продукт в тщётных попытках понять, что этот индусокод делает, и что за хитровыебаную бизнес-логику от тебя хотят.

- Rust может быть очень разный

В том же вебе ты будешь шлёпать типичный крудоговногод уровня `if err != nil`, только на Rust, склеивая клеем логику и либы с crates.io
Про unsafe будешь в страшных сказках слушать и вряд ли сам будешь трогать (если не поехавший экспериментатор).

В wasm проектах тебе с порога в зубы прилетает `#![no_std]`, с которым не работает 95% всех крейтов, зато добавляется горсть новых типа web-sys со своей особой пизданутостью.
В embedded к этому бонусом будут ffi биндинги ко всяким либам на C и, если не повезёт, ещё и макросы с asm и, конечно же, unsafe через unsafe.

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

- Мало знаний о том, как правильно писать на Rust

Кроме того, что использование фич языка может сильно отличаться от проекта к проекту, так ещё и знаний о том, как писать нужно и как не нужно почти нет: каждый дрочит как хочет и охуевать от проекта к проекту иногда приходится знатно с каких-нибудь пизданутых самописных процедурных макросов, любовно размазанных толстым слоем по проекту и прочих граблей.

Обычное большинство твоих коллег (как и ты) будет среднехуёво знать сам язык и кодить в меру своего разумения так, как им видится.
Если повезёт, дело ограничится какими-нибудь тихими особенностями (а не полным пиздецом) в уголках их проектов из-за того, что они не смогли (не подумали) договориться о том, как код писать.

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

- Плохой тулинг и сложности с поиском серьёзных ошибок

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

Дебаггеры как бы есть (как и полторы ide), но до уровня дебаггеров JS или Java ему как до луны: обычные структуры из stdlib типа `OsStr` сейчас отображаются как набор байт, а не строки, лол.
Максимум, что ты с ними сможешь сделать (и то не всегда): запустить локально приложение и походить в нём по брейкпоинтам, проваливаясь в декомпилированный asm.
Возможно, ты даже сможешь понять, что записано почти во всех переменных на стеке (ну или будешь писать и учиться грузить pretty printer'ы на Python для дебаггера, если совсем заебёт).

- Нужно следить за всем, что происходит вокруг Раста и что-то изучать по мере сил

Тут примерно как в JS, доки по языку и либам очень редко бывают актуальными (если вообще есть, лол), всё бурлит, меняется и куда-то несётся, друг от друга зависит и тянет всякие аналоги leftpad.
Чтобы понять, как пользоваться нужными библиотеками, придётся зачастую читать их код (и хорошо если тесты или examples будут).
Поскольку большинство крейтов имеют версию `0.*`, компиляция может сломаться из-за простого апдейта какого-нибудь крейта (к счастью, не очень часто с таким сталкивался), за всем этим говном нужно следить и обновлять, чтобы не оказаться в дремучей жопе спустя пару лет, что тоже добавляет головняка.
Иногда проекты забрасываются, искать альтернативы и всё опять переписывать тоже удовольствие ниже среднего.

Будешь что-то гуглить нестандартное в узкой предметной области — рискуешь нарваться на пару полумёртвых крейтов и всё.
Если ты до сих пор впадаешь в ступор от ошибок компиляции, то тебе пизда, загуглить точный набор твоих закорючек зачастую невозможно а то, что гуглится, может и не подойти, потому что даже мелкое отличие может влёгкую агрить borrow checker.

Если полезешь в async, ещё и отличный от tokio, то придётся держать в голове зависимость крейтов от рантайма, что к чему подходит и как это заводить вместе, если не подойдёт (опять читать код, да).
Бонусом идёт повышенное веселье с компилятором и всякими `Pin`, хотя раньше, до async/await, когда были комбинаторы было ещё хуже, сейчас норм, можно наколбасить много кода до того, как нарвёшься на проблемы.

Описание новинок в самом языке появляется только в release notes, в Rust Book это оседает непонятно когда, обычно силами энтузиастов, почти всю команду документаторов Mozilla прибила своими увольнениями.
Если совсем на это положить хуй, спустя пару лет можно обнаружить себя довольно в стороне от современных фич языка.
24 1798232
>>798230

И ещё немного совсем субъективного:

- Местами странное развитие языка

Развитие самого языка иногда тоже вызывает вопросы: ключевые люди, сидящие на зарплате у Mozilla, уходят в другие компании со временем, совсем недавно ещё один ушёл.
Как ни удивительно, некоторые из них продолжают помогать с развитием языка и в других компаниях, но это не то, чтобы очень надёжная стратегия, как по мне: компилятор это не хуй собачий, даже люди на зарплатах пилят фичи долго и сложно.
Mozilla тоже не даёт скучать, в недавних увольнениях выпизднули много важных разрабов из wasmtime, servo.
Сам язык сидит частично на донатах: Microsoft дал им железо для сборки и прогона CI, что-то пилят в языке на голом энтузиазме мимокрокодилы.
Учитывая, что с баблом у Mozilla туго, быстрого развития языка можно не ждать, да и будущее тоже немного туманно: уже пошли разговоры о полном выделении Rust в отдельную организацию (сейчас как минимум бабло идёт через Mozilla).

Остатки кор тимы тоже не выглядят до хуя уверенными в своих действиях, вспомнить хотя бы выстраданный async/await с его костылями (`Pin` & `Unpin` с его unsoundness), который так и не доделали (async traits), хотя мудохались несколько лет.
Те же функциональщики смотрят на все эти заморочки с async блоками и иногда обсуждаемыми try блоками с удивлением, есть вполне себе рабочие подходы к дизайну языка, которые позволяют этого всего зоопарка избежать, унифицировав.

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

— Много бестолкового хайпа вокруг

Грустно наблюдать все эти ебанутые разборки фанатов async-std и tokio, шумиху вокруг unsafe в actix-web и прочую странную активность: вместо того, чтобы помогать пилить крейты, ебучие белки-истерички разводят шум и драму из года в год.

Доходит до странностей: сейчас на crates.io есть всего один НЕ асинхронный production-ready веб фреймворк, и тот в следующей версии тоже станет асинхронным.
Получается, просто потому, что это стильно и модно, любой веб-сервер на Rust вынужден тащить один из рантаймов с десятками лишних зависимостей, ебаться с async/await и ограничивать себя в выборе крейтов, либо сидеть на древних, не обновляемых библиотеках.
(не говоря уже о том, что есть вполне себе реальные real-time приложения с жёсткими требованиями к latency, которые асинхронные рантаймы в принципе не способны гарантировать)

- Сложно уходить обратно на другие языки

После того, как привыкаешь к Расту, пилишь на нём несколько лет и потом берёшь типичный ебаный проект на каком-нибудь Python/JS, то поначалу просто оторопь берёт, чувствуешь себя как без рук: как можно писать без нормальных типов, без cargo check, с пониманием, что любая строчка может бросить exception и это считается нормальным?
В паре проектов без тестов я просто не мог ни строчки написать несколько дней, пока привыкал.
24 1798232
>>798230

И ещё немного совсем субъективного:

- Местами странное развитие языка

Развитие самого языка иногда тоже вызывает вопросы: ключевые люди, сидящие на зарплате у Mozilla, уходят в другие компании со временем, совсем недавно ещё один ушёл.
Как ни удивительно, некоторые из них продолжают помогать с развитием языка и в других компаниях, но это не то, чтобы очень надёжная стратегия, как по мне: компилятор это не хуй собачий, даже люди на зарплатах пилят фичи долго и сложно.
Mozilla тоже не даёт скучать, в недавних увольнениях выпизднули много важных разрабов из wasmtime, servo.
Сам язык сидит частично на донатах: Microsoft дал им железо для сборки и прогона CI, что-то пилят в языке на голом энтузиазме мимокрокодилы.
Учитывая, что с баблом у Mozilla туго, быстрого развития языка можно не ждать, да и будущее тоже немного туманно: уже пошли разговоры о полном выделении Rust в отдельную организацию (сейчас как минимум бабло идёт через Mozilla).

Остатки кор тимы тоже не выглядят до хуя уверенными в своих действиях, вспомнить хотя бы выстраданный async/await с его костылями (`Pin` & `Unpin` с его unsoundness), который так и не доделали (async traits), хотя мудохались несколько лет.
Те же функциональщики смотрят на все эти заморочки с async блоками и иногда обсуждаемыми try блоками с удивлением, есть вполне себе рабочие подходы к дизайну языка, которые позволяют этого всего зоопарка избежать, унифицировав.

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

— Много бестолкового хайпа вокруг

Грустно наблюдать все эти ебанутые разборки фанатов async-std и tokio, шумиху вокруг unsafe в actix-web и прочую странную активность: вместо того, чтобы помогать пилить крейты, ебучие белки-истерички разводят шум и драму из года в год.

Доходит до странностей: сейчас на crates.io есть всего один НЕ асинхронный production-ready веб фреймворк, и тот в следующей версии тоже станет асинхронным.
Получается, просто потому, что это стильно и модно, любой веб-сервер на Rust вынужден тащить один из рантаймов с десятками лишних зависимостей, ебаться с async/await и ограничивать себя в выборе крейтов, либо сидеть на древних, не обновляемых библиотеках.
(не говоря уже о том, что есть вполне себе реальные real-time приложения с жёсткими требованиями к latency, которые асинхронные рантаймы в принципе не способны гарантировать)

- Сложно уходить обратно на другие языки

После того, как привыкаешь к Расту, пилишь на нём несколько лет и потом берёшь типичный ебаный проект на каком-нибудь Python/JS, то поначалу просто оторопь берёт, чувствуешь себя как без рук: как можно писать без нормальных типов, без cargo check, с пониманием, что любая строчка может бросить exception и это считается нормальным?
В паре проектов без тестов я просто не мог ни строчки написать несколько дней, пока привыкал.
image.png78 Кб, 233x216
25 1799699
>>798230
>>798232
Ну а какие альтернативы?
Писать вот так:
for (list<ArdourCanvas::Rectangle*>::iterator i = _coverage_frame.begin(); i != _coverage_frame.end(); ++i) {
и не надо мне про auto рассказывать
image.png824 Кб, 1280x720
26 1800094
>>799699

Смотря где и для чего использовать, альтернатив много.

Для развития, можно Haskell навернуть, чтобы по-другому немного на тот же Rust взглянуть.

Можно не ебать себе мозг сомнениями и делать вещи на Rust, язык-то и правда приятный, даже если вокруг плюсовым кодом всё обмазано.
1572641033659.png687 Кб, 1196x1339
27 1801017
28 1801018
>>801017
Че там?
29 1801025
>>801018

> coming soon

30 1801027
>>801025
А че будет то?
31 1801049
Там ещё один топовый разраб покидает раст: https://blog.mozilla.org/nnethercote/2020/09/08/how-to-speed-up-the-rust-compiler-one-last-time/

Если кто не знает, он разраб valgrind'а и один из немногих (в раст кор тиме наверное единственный, лол) кто умеет круто работать с профайлерами (которые он сам и создал) и оптимизировать потребление памяти.
sage 32 1801077
>>799699
Да. А еще есть auto.
D-qdikd-6XE.jpg12 Кб, 376x444
33 1801079
>>801049
грустно
34 1802411
>>801077
auto иногда выдаёт охуенные типы, которые вообще не ожидаешь тут увидеть. Дебажить неправильный auto — это почти как дебажить UB.
photo2020-09-0923-37-25.jpg44 Кб, 585x463
35 1802440
Бампану ITT тред картинкой
36 1802450
>>801027

>special announcement

37 1802565
>>802440
какой мужчина.. пидарасты правда так выглядят?
15332998256760.jpg25 Кб, 567x420
38 1802736
Искал недавно работу после двух лет опыта плюсов, и довольно часто тимлиды на техническом интервью упоминали, что у них в команде появляются небольшие группы любителей раста. И коллега с нынешнего места активно агитировал учить ржавчину, считая что за ним будущее. Для меня пока это выглядит как секта, которая активно ведет пропаганду и постепенно расползается в головах разрабов, обещая приход Мессии и избавление ото всех проблем с безопасностью и UB. Рано или поздно мы точно увидим, как ее последователи выйдут на свет и заявят о себе.
Покайтесь, ибо грядет!
39 1802846
>>802736
Скопипастил уже сигнатуру в .h?
40 1802854
>>802846
Я перекатился на гошку, так что можешь троллить меня дженериками и исключениями.
Осталось недолго, в Go 2.0 Роб обещал завезти полный фарш и заодно переписать компилятор. И кто будет смеяться последним, а?
41 1802859
>>802846
Вам ещё статический анализ кода не подвезли?
42 1802872
>>802859
Кому нам?
43 1802891
>>802872
Видимо, людям не привыкшим, что весь бойлерплейт за них делает иде.
44 1802893
>>802891
Эта та которая тормозит при вводе каждой буквы?
45 1802940
>>802893
Вот кстати нет. Бесит нотепад++ на минутном торможении на открытии всего лишь мегабайтных xml файлов с каким нибудь протоколом, а иде шустрые ваще.
46 1803079
>>789061 (OP)
Мозилка выкинула раст к хуям, у меня лишь один вообще вопрос, что стало с подвижками wgpu, их там тоже к хуям разогнали?
47 1803089
>>803079
Не проще самому проверить?
48 1803334
Почему такой говорливый в твиторе Армин Ронахер ещё никак не прокомментировал уничтожение раста мозиллой? Пару раз присмотрелся к C++20 только. Это намёк на перекот?
49 1803524
https://jobs.apple.com/en-us/details/200170723/software-engineer-networking-privacy?team=SFTWR

> Following a very successful first foray into Rust we are migrating an established codebase from C to Rust, and building new functionality primarily in Rust.

50 1804300
Хочу в своём проекте вместо Haskell попробовать Rust. Привлекает работа с памятью без мусоросборника и нормальная поддержка SIMD-инструкций. Какие подводные? Из треда понял, что это личный язык Mozilla и они его чуть ли не приктыть хотят? Это правда, если да, то на чём тогда писать-то? Вроде других нормальных язков для программирования без мусоросборника нет.
51 1804301
>>804300
>>803524
С такими когнитивными способностями, могу предложить тебе попробовать PHP.
52 1804334
>>804301
В Apple писали на лучшем в мире Objective-C и где он теперь?
53 1804361
>>804334
Это же апол. Дропают легаси и глазом не моргнув.
54 1804408
>>804361
Ну и Rust могут так же дропнуть. Тут >>804301 просто товарищ писал, что одна вакансия в апол - это дохуя победа. Кстати, по вакансии видно, что зрелость технологии прямо скажем низковата.
55 1804412
>>804408
Ну так ты поищи на хачкеле вакансии тогда.
56 1804427
>>804412
Я хотел это сравнить с вакансиями на Хаскеле, но на удивление в вакансиях на Хаскеле есть требования к знанию Хаскеля. Тут же small, highly skilled team видимо совсем отчаялась найти себе программиста знакомого с языком, и ищут хоть кого-то, а языку его уже по ходу дела обучат.

Алсо, ткнул наугад в Issues https://github.com/rust-lang/rust/issues/76627 - эээ, борроу-чекер не работает? ват?
57 1804500
Как Rust себя поведёт, если я захочу создать 11 миллиардов небольших объектов в куче?

Так-то 11 миллиардов вызовов malloc в лоб - это хуёвая идея в любом языке, но, допустим, мне кое-что известно о этих объектах и паттернах доступа, что позволяет написать для них эффективный кастомный аллокатор. Но он не будет аллокатором общего назначения, он сможет работать только с объектами определенного типа и создавать/удалять их только в определенном порядке.

Получится ли его интегрировать в Rust, как это будет соотносится с уже реализованной в нём системой владения?
58 1804509
>>804427
Так хаскель старше лет на 20 если не больше.
59 1804510
>>804500
Система владения там относится только к ссылкам и по большей части с ней нужно ебаться, чтобы наоборот избежать работы с кучей и безопасно работать с переменными на стеке. Но есть одно большое но.

Аллокаторы в расте не стабилизированы (кроме случае если у тебя один глобальный аллокатор на всё приложение). Так что придётся вместо стандартных умных указателей и коллекций использовать самописные костыли.
60 1804518
>>804427

> борроу-чекер не работает? ват?


Он работает. Просто в данном примере он более строг чем нужно из-за проблем с выводом типа в замыкании.
61 1804525
>>804500

>Так-то 11 миллиардов вызовов malloc в лоб - это хуёвая идея в любом языке, но, допустим, мне кое-что известно о этих объектах и паттернах доступа, что позволяет написать для них эффективный кастомный аллокатор



Vec::with_capacity и не выёбывайся.

Если очень надо, то делаешь большой alloc() и субаллоцируешь как хочешь.

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



Твой аллокатор вернет какой-то хендл, который будет единственным владельцем объекта наподобие Box. Детали зависят от того, что тебе реально нужно. Один из вариантов: https://ferrous-systems.com/blog/zero-sized-references/
image.png534 Кб, 640x750
62 1804549
63 1804553
>>804518
А можешь объяснить что конкретно там произошло? Почему ошибка борроу-чекера а не тайпчекера? И в чем там проблема с выводом? У f1(v: &str) указан тип аргумента, какой там может быть другой тип в замыкании и как это может повлиять на борроу-чекер?
64 1804561
>>804525

>Vec


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

>Твой аллокатор вернет какой-то хендл, который будет единственным владельцем объекта наподобие Box.


Да, как-то так себе и представлял.
65 1804576
>>804549
Ого, это ты так в виде P-схемы решил код с камментами заебашить? Выглядит круто...
66 1804640
>>804553
Там скорее всего очередное проявление хронической болезни раста - борроу чекер иногда (в основном если там несколько времён жизни и они как-то взаимосвязаны, т.е. одно зависит от другого и т.п.) выводит слишком большое время жизни у ссылок в аргументах функций. Чтобы сделать борроу чекер безопасней у него есть правило - если точный лайфтайм вывести невозможно, бери самый большой. Тут судя по всему он выводит лайфтайм у аргумента равный замыканию (несмотря на то, что внутри замыкания аргумент никак не сохраняется) и потому получается ошибка.
67 1804749
>>804640
Я правильно понял, что rule of thumb - указывай типы переменных в замыканиях и будет счастье?

Алсо еще вопрос. Как в Rust с асинхронностью? В Хачкеле асинхронность типа совсем прозрачная, т.к. всё ранится в IO и отдельная async-монадка не нужна, в Шарпе есть встроенная async-монадка через async/await, в Скалке/F# через for comprehension/computation expressions, как там в Расте?

Как я понял из гугления, нормальный функтор в Расте написать низя: https://github.com/rust-lang/rfcs/issues/324 (или уже можно: https://docs.rs/functional/0.0.5/functional/trait.Functor.html), т.к. нет абстракции по типам высших порядков. Значит должна быть какая-нибудь встроенная хуйня, и она, похоже, есть https://rust-lang.github.io/async-book/01_getting_started/04_async_await_primer.html

Насколько это монадка и насколько хорошо она играет с растовскими правилами владения? Ведь асинхронная монадка - это по идее пиздец, состоящий чуть менее, чем полностью из замыканий. Насколько этим удобно пользоваться в Расте по сравнению с другими языками?
68 1804895
>>804749

> указывай типы переменных в замыканиях и будет счастье?


Нет. Эта ошибка немного другого толка, и скорее всего её быстро исправят.

> Как в Rust с асинхронностью?


Средне. Асинхронные функции возвращают уникальный объект, который имплементирует специальный трейт future. Внутри асинхронной функции с этим трейтом можно использовать оператор await (т.е. с точки зрения await нет разницы является ли функция асинхронной или синхронной, но возвращающей Future-подобный объект).

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

В расте у асинхронных функций есть огромный плюс - по умолчанию они возвращают impl Future<Output = ?>, а значит для использования асинхронщиный не нужно выделение памяти, как-как всё будет умещаться на стеке (что впрочем не мешает тебе вызов асинхронной функции отправить в кучу, чтобы например уменьшить размер future-объекта твоей функции, так-как иначе он будет разрастаться, что иногда нежелательно [1]).

Самый большой недостаток вытекает из этого самого преимущества - асинхронные функции нельзя определять в трейтах. Тут [2] написано об этом очень подробно. Там как раз и требуются аналоги "типов высших порядков" именуемые GAT. Недостаток можно обойти ценой аллокации при каждом вызове функции (т.е. будет возвращаться Pin<Box<dyn Future<Output = ?>>>), что и делают макросы async_trait (как я сказал выше разницы нет между асинхронной функцией и синхронной с future-подобным объектом, что эти макросы и используют).

Второй по величине недостаток (хотя с точки зрения юзабилити скорее первый) - это то, что стандартизирован только сам трейт Future, и помощники по работе с ним для создания рантайма. И больше ничего. То есть даже чтобы в асинхронной функции сделать таймер, нужно будет использовать специальную функцию рантайма, которая у каждого рантайма будет разной. В итоге на расте есть куча библиотек, который работают только на одном рантайме, а на любом другом не запустятся. А написать универсальную для любого рантайма библиотеку зачастую попросту невозможно и максимум что делают поддерживают два самых популярных рантайма (async-std и tokio),а всё остальное идёт лесом.

[1]: https://without.boats/blog/futures-and-segmented-stacks/
[2]: https://smallcultfollowing.com/babysteps/blog/2019/10/26/async-fn-in-traits-are-hard/
68 1804895
>>804749

> указывай типы переменных в замыканиях и будет счастье?


Нет. Эта ошибка немного другого толка, и скорее всего её быстро исправят.

> Как в Rust с асинхронностью?


Средне. Асинхронные функции возвращают уникальный объект, который имплементирует специальный трейт future. Внутри асинхронной функции с этим трейтом можно использовать оператор await (т.е. с точки зрения await нет разницы является ли функция асинхронной или синхронной, но возвращающей Future-подобный объект).

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

В расте у асинхронных функций есть огромный плюс - по умолчанию они возвращают impl Future<Output = ?>, а значит для использования асинхронщиный не нужно выделение памяти, как-как всё будет умещаться на стеке (что впрочем не мешает тебе вызов асинхронной функции отправить в кучу, чтобы например уменьшить размер future-объекта твоей функции, так-как иначе он будет разрастаться, что иногда нежелательно [1]).

Самый большой недостаток вытекает из этого самого преимущества - асинхронные функции нельзя определять в трейтах. Тут [2] написано об этом очень подробно. Там как раз и требуются аналоги "типов высших порядков" именуемые GAT. Недостаток можно обойти ценой аллокации при каждом вызове функции (т.е. будет возвращаться Pin<Box<dyn Future<Output = ?>>>), что и делают макросы async_trait (как я сказал выше разницы нет между асинхронной функцией и синхронной с future-подобным объектом, что эти макросы и используют).

Второй по величине недостаток (хотя с точки зрения юзабилити скорее первый) - это то, что стандартизирован только сам трейт Future, и помощники по работе с ним для создания рантайма. И больше ничего. То есть даже чтобы в асинхронной функции сделать таймер, нужно будет использовать специальную функцию рантайма, которая у каждого рантайма будет разной. В итоге на расте есть куча библиотек, который работают только на одном рантайме, а на любом другом не запустятся. А написать универсальную для любого рантайма библиотеку зачастую попросту невозможно и максимум что делают поддерживают два самых популярных рантайма (async-std и tokio),а всё остальное идёт лесом.

[1]: https://without.boats/blog/futures-and-segmented-stacks/
[2]: https://smallcultfollowing.com/babysteps/blog/2019/10/26/async-fn-in-traits-are-hard/
69 1804898
>>804895

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


> два самых популярных рантайма (async-std и tokio),а всё остальное идёт лесом.


Ах да, чуть не забыл. Даже если две библиотеки используют один и тот же рантайм, но несовместимой (с точки зрения semver-семантики) версии, то это считается как два разный рантайма и программа работать не будет, лол.
70 1805036
Аноны, обращаю ваше внимание, что уже есть либа для simd, работающая со стабильной веткой раста. https://github.com/jackmott/simdeez
Можно даже писать без привязки к конкретной реализации, задавая нужную через cfg или выбирая прямо в рантайме.
Я уже отъюзал, правда пока только для sse
71 1805270
>>795235
На нем частично Firefox написан. Facebook свой пакетный менеджер на нем пишет. Ну, всякие npm и Dropbox его тоже используют.
72 1805739
>>804749
Если ты так любишь функциональщину, то смотри в сторону frunk:
https://docs.rs/frunk/0.3.1/frunk/
73 1805851
>>795235
Deno на нем написали https://deno.land/
74 1806354
Какие компоненты (или какой процент) фурифокса написан на расте? Как это повлияло на расход памяти и скорость?
76 1807053
Кто искал работу на расте? Какая-то яблочная компания выкатила вакансию.

https://jobs.apple.com/de-de/details/200170723/software-engineer-networking-privacy?team=SFTWR
77 1807716
>>805739
Спасибо. Но я склоняюсь к тому, что на любом языке надо писать в
идиоматичном для него стиле. Я на Rust стал смотреть именно потому, что у меня возникло подозрение, что он из коробки может лучше подходить для моих задач.

Кстати, тут писали, что Rust очень мендленно конпелирует. Насколько актуальная эта проблема? Хаскель тоже медленно конпелирует, но там никто не пересобирает проекты по миллиону строк, проект разбивается на пакеты и модули, в процессе разработки перекомпилируют только модули, над которыми в данный момент ведётся работа.

Т.е. скорость работы конпелятора Rust - это реальная проблемма, или это просто следствие неправильного подхода к разработке некоторых разработчиков?
78 1807718
И еще вопрос: как в Rust обстоят дела с профилированием программ? В Хаскеле профилирования де-факто нет. Т.е. формально оно там как-бы есть, но для профилирования программа конпелируется в специальном режиме, который херит большинство оптимизаций. Т.е. профилируешь ты там вовсе не то, что будет реально работать в продакшене, а какую-то совершенно другую программу, которая по определению раз в 10 медленнее и никогда не будет использоваться. Как с этим в Rust?
79 1807720
>>807718

> Как с этим в Rust?


Подойдёт любой профайлер для С/С++ кода. Раст умеет создавать дебаг-информацию для релизного кода (но по умолчанию вроде не создаёт, нужно включить в cargo.toml) и из неё профайлер и возьмёт имена функций.
80 1807731
>>807718

> И еще вопрос: как в Rust обстоят дела с профилированием программ? В Хаскеле профилирования де-факто нет. Т.е. формально оно там как-бы есть, но для профилирования программа конпелируется в специальном режиме, который херит большинство оптимизаций. Т.е. профилируешь ты там вовсе не то, что будет реально работать в продакшене, а какую-то совершенно другую программу, которая по определению раз в 10 медленнее и никогда не будет использоваться.


Как бы так всегда. В vs даже два разных режима компиляции: debug и realese.
81 1807788
>>807731
Ну не скажи. В Java есть stack profiler, который вполне адекватен, не раз им пользовался. Он реально показывает чем занимается программа. В C# вроде тоже адекватный профайлер хотя не писал на нём уже лет 10, забыл всё, но вроде помню, что мне удавалось с помощью него находить узкие места и оптимизировать.

В Хаскелле единственный адекватный профайлер - это запуск с +RTS -T -s. Да, он покажет статистику по мусоросборнику, количество аллокаций, время мутатора и время коллектора. Но он не показывает, что именно аллоцируется. Чисто инфа, что твоя программа аллоцировала столько-то гигабайт, столько-то было скопировано в следующее поколение, заняло столько-то времени, общая статистика без конкретики.

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

Да, может быть в Джаве есть какие-то тонкие моменты профилирования, которые ломают некоторые оптимизации если ты хочешь собрать слишком много информации, но в целом выхлоп примитивных профайлеров вполне адекватен. В Хаскеле любая попытка получить больше информации, чем просто статистика мусоросборника, ведет к генерации абсолютно неадекватного кода.
82 1808106
>>807716

>Т.е. скорость работы конпелятора Rust - это реальная проблемма, или это просто следствие неправильного подхода к разработке некоторых разработчиков?



Он выплевывает тонну почти неоптимизированного IR, с которым тяжело работать. Но инкрементальная сборка тоже есть.
изображение.png105 Кб, 300x168
83 1808209
Посоны, тут это, движок и даже игорь на нем запилены:

https://github.com/mrDIMAS/rg3d

https://github.com/mrDIMAS/rusty-shooter
84 1808213
Давайте запили движок и редактор уровня юнити, и раст захватит мир.
85 1808226
>>808213

> Давайте запили движок и редактор уровня юнити, и раст захватит мир.



https://github.com/mrDIMAS/rusty-editor
86 1808455
>>808209

> mrDimas


Прорекламитья решил, димасик?
какой то крутой чел, в ларианах работает надеюсь бг3 нормальными инструментами делают
87 1809830
работяги, есть продакшен опыт js/ts, насколько хорошо можно в rust вкатиться веб-макаке?
88 1809843
>>809830
Я совсем начинающий растаман, но возможно тебе стоит вкатиться в вебприложения на wasm.
15491373104290.jpg34 Кб, 489x604
89 1809906
dead per dead 90 1809999
Ваш Пруст работает на каком-нибудь 8-битнике? А почему?
Идущий к расту.mp414,8 Мб, mp4,
1920x1080, 1:05
91 1810222
92 1810374
Ребята, шарю в ангуляре и typescript/rxjs/Observable. Решил попробовать сервак попдиски-перенаправления сообщений с веб-сокетов в кафку на Rust написать для кровавого ентепрайза на каком-нибудь tokio, я нормальный?
93 1810379
>>810374
Абсолютли. Сам так же сделал, перекатившись на yew. Не взлетело.
94 1810394
>>810379
надеюсь один сетевой американ провайдер решит раст применить вместо ноды старой и противного golang'а))0
95 1810610
После того как заблочили мышку блади, вообще перестал раст уважать.
96 1810666
>>810379
Перекатывайся на seed.
97 1810827
мм
98 1810840
>>809999
Работает (с недавних пор даже оффициально [1]) на АВР. А какие ещё 8-битники популярные есть? Мне на ум только стм8 приходит, но он анально отгорожен и для него нет бэкенда для ллвм.

[1]: https://github.com/rust-lang/rust/pull/69478
99 1811369
>>807716

>Т.е. скорость работы конпелятора Rust - это реальная проблемма, или это просто следствие неправильного подхода к разработке некоторых разработчиков?



Инкрементальная сборка есть, но если ты меняешь что-то в ядре (либа, от которой зависит ещё куча либ), то оно всё будет перекомпилироваться. Ну либо юзай sccache, чтобы не перекомпилировалось постоянно.

Есть ещё проблема в том, что каждый раз когда обновляешь компилятор, тоже надо будет всё перекомпилировать. Это не так больно на stable, а вот если ты на nightly и постоянно его обновляешь, тогда неприятно.
100 1811512
окей, я вроде со знанием delphi/c#/typescript понимаю что происходит в расте, но есть ли какие-либо книги по архитектуре приложений/системному программированию для deep погружения?
101 1811693
Что там получилось то? Горелая лиса выкинула раст? Создали ли там мощный фонд?
103 1812194
>>810840

ПИЧКИ ТОЧЕНЫЕ жеж
rust.png27 Кб, 898x786
104 1813444
А Rust-то летит вверх. Если в начале года его не было видно и слышно, то к середине он уже был на 20 месте. А сегодня на 18. Такими темпами к концу года-началу следующего он может и в 15 войти, а то и в 10.

https://www.tiobe.com/tiobe-index/
105 1813764
>>813444
Ещё 10 лет и догонит гошку
106 1813765
>>813764
Гошники все не дружат с матешей?
Пусть он хоть сам себя догонит по темпам роста
107 1813777
>>813444
К 2050му глядишь и вижуал бейсик догонит
108 1814639
>>813764
А С/С++ когда догонит?
109 1815348
>>814639
Завтра!
110 1815474
У меня завтра собес по расту, что бы позадротить, что бы его пройти?
111 1815481
>>815474
Психологию.
112 1815816
>>815474
Куда?
113 1815954
https://jobs.amd.com/job/Boxborough-3D-Driver-Development-Engineer-80489-Mass/677678000/

> Contribute to the development of new tooling with Rust and 3D graphics drivers with C++

tenor.gif27 Кб, 220x158
114 1816497
>>815954

>tooling

1305.BigImg.jpg338 Кб, 533x800
115 1816887
>>807788

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


Добро пожаловать в native и runtimeless. Это же не байткод гонять.
116 1817088
Почему у раста такой всратый синтаксис, посоны? Вроде хочу изучить, но напрочь отворачивает.
117 1817093
>>817088

Обычный с-подобный синтаксис. Что не так-то?
118 1817118
>>817088
Норм синтаксис. У крестов всратее.
119 1817165
>>817088

>Почему у раста такой всратый синтаксис, посоны?


Два пикрандома из гугла. Что тут всратого? Что из того что ты тут видишь "всратого", нет в тех же плюсах, жаве или шарпе?

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

Так же есть некоторые фичи раста, которые позволяет наоборот количество кода сократить. Разница между инструкцией и значением например, хорошая фича, позволяет некоторые решения сделать очень элегантными. Или что каждая конструкция языка может возвращать значение, тоже приятная фича, которую хочется в других языках.
120 1817192
>>817165

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


>Но это нормальная практика и для жсеров и для хаскелистов и для других функциональщиков.


Ну вот, говнарь сам честно признался. "Нормальный" синтаксис... для жээсеров (лол) и прочей говношвали мразотной. Именно это и всрато, дерьмо, как и ты, и все растеры, одна и та же грязь.
121 1817194
>>817088
Да вроде всё в порядке, современный синтаксис, сейчас везде так

я только могу вспомнить из плохого это такое: функц::<тип>() вместо просто функц<тип>()

>>817093

>с-подобный синтаксис


Нет же
122 1817197
>>817192

>нескучные обои

unnamed.jpg22 Кб, 512x179
123 1817201
>>817192

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


>Именно это и всрато


Ну так не пиши так, в чем проблема?

>для жээсеров (лол)


Ещё один окатыш с бинарным мышлением. По ключевым словам тригеришься, долбоёб?

>и прочей говношвали мразотной


>дерьмо, как и ты, и все растеры, одна и та же грязь.


Да у тебя пердак рвёт не на шутку. Rust твою мамку трахнул генгбенгом? Или может отца? Почему ты так злишься?
124 1817409
>>817201
Так и запишем: Раст - параша для жээсеров и хаскелочуханов.
И откуда берется отрицание, что это всратое дерьмо, если прямо сказано что это всратое дерьмо?
125 1817515
>>817409

>Так и запишем


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

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


И что ты ТУТ делаешь в таком случае, обиженка? Пиздуй в свой тред по delphi и php, неосилятор хуев.
126 1817516
>>817409
Да мы и не отрицаем, нам просто нравится так писать и на за это не платят хотя мне платят и неплохо.
127 1817605
Не совсем понял в чём проблема с вызовами функций в одной строчке? Каким-то сектантам религия не позволяет так делать? В чём вообще смысл?
128 1817636
>>817605
Консилиум шизов решил, что это "всрато" выглядит.
129 1817660
>>817605
ебанько решили что 1 строчка 1 метод и ниибет
130 1817853
А кто каким редактором пользуется?
Что-то идея прям говняно работает, вообще ничего не подсказывает толком. Где интелисенс нах?
131 1817862
>>817853
VSCode + плагин. Подсвечивает всё что нужно, интелесенс, документация.
132 1817923
>>817853
neovim + nvim-lsp + rust-analyzer
133 1817930
>>817923
При наведении мышкой на функцию выдаёт доки к ней?
134 1817948
>>817930

>мышкой


>вим


аче,звучит по unixlike-ски
135 1817960
>>817948

>аче,звучит по unixlike-ски


Ну да, мышка же в линухе не поддерживается. Поэтому приходится нампадом себе очко разрабатывать. Зато лучше всех играю в мортал комбат. Комбины такие мучу, охуеешь.
136 1817979
>>817853
vim с плагинами
137 1818058
Кто-нить может вкратце пояснить за разницу между async-std, tokio и actix-rt?
Я так понимаю (сейчас перечислю свое виденье, если ошибаюсь поправьте и добавьте, что знаете вы)
Это три конкурирующие либы для асинхронного программирования.
Первые два предлагают зеленые треды на пуле потоков, актикс - однопоточная асинхронщина.
Использовать одно из другого невозможно? Или можно как-то обернуть? Мне бы очень хотелось в actix-web использовать кое-что из async-std.
138 1818062
>>818058
Актикс сделан поверх токио, так что в этом списке он лишний.

А асунк-стд и токио - это две конкурирующие реализации рантайма для асинхронных функций (т.е. той части, которая непосредственно их запускает) в расте, поскольку в стандартной либе никаких рантаймов нет. Зачастую выбора особо и нет, поскольку рантаймы друг с другом несовместимы и много библиотек работают либо только с токио, либо и с тем и другим, так что в 90% случаев будешь выбирать именно токио.
139 1818067
>>818062

А чем тогда занимается actix-rt? rt же я так полагаю, расшифровывается как рантайм?

Почему Токио, а не стд?
140 1818073
>>818067

> А чем тогда занимается actix-rt?


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

> Почему Токио, а не стд?


Так сложилось исторически. Какой выбрали, на тот и переехали.
141 1818110
>>817862
по макросам прыгать не умеет, из-за этого переехал на intellij rust
142 1818347
>>817853
Emacs + rls.
rust-analyzer тормозной и лажает постоянно
image.png142 Кб, 2016x1296
143 1818384
>>817930

>При наведении мышкой на функцию выдаёт доки к ней?


Можно сказать, что да ну почти.
144 1818412
>>818110

А его нужно как-то отдельно настраивать?
Оно вообще ничего не проверяет и не подсказывает, только подсвечивает синтаксис, устанавливает зависимости из cargo, иногда жалуется на кусок кода, который на самом деле норм.
Может переставить или что... Пользоваться невозможно.
А вот посоаетованный Vs code из коробки завелся и все вроде ок.
600475554466.png136 Кб, 600x337
145 1818430
>>818412
Idea, Eclipse, Emacs, Vim - это не про написание кода, это про секс. Про жесткий секс. На то программисты и анальники - им нравится когда их ебут. Когда они пыхтят, когда им неудобно, когда что-то отваливается и это надо чинить (желательно самому), когда что-то не работает из коробки, или работает но плохо.

Если же тебе просто хочется код писать - VSCode, Visual Studio, Sublime Text. Они покроют 99% твоих потребностей.
146 1818490
>>818430

>Emacs


это бдсм мод
DAmGG7xXsAEzddp.jpg183 Кб, 1200x983
147 1818493
>>818490
Как будто что-то плохое.
148 1818497
>>818493
500+ страниц как трахатся с комбайном, да растбук где то столько же весит
middsc00367.jpg162 Кб, 675x900
149 1818498
>>818493
Представляешь как это буйвол тебя ебёт по ночам?
А Столмана голым представляешь?
saintignucius.jpg31 Кб, 321x445
150 1818503
>>818498
I bless your computer, my child!
151 1818571
>>818412
никогда не жаловался в не туда
прыгает по референсам збс
сам раскрывает макросы, что для меня существенно
подсветка несуществующих идентификаторов ебанутая, да
но в целом мне норм
вскод могёт почти всё то же самое, кроме скакания по макросам, больше ничего против не имею
152 1818606
>>818430
Ты так говоришь, как будто раст учится быстрее вима. Но это нихуя не так. Вим — это раст в мире текстовых редакторов: он охуенный, но не все в него могут.
153 1818634
>>818430

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


>Ты так говоришь, как будто раст учится быстрее вима.


Типичный программист-анальник. Тебе в кайф пыхтеть?
Вим это устаревшее говно. Оно живо только благодаря тому, что есть узкое место для применения (адм. серверов) и программистам-анальникам, которым нравится быть "нитакими" и пыхтеть когда им в задницу засовывают неудобства.

Вот хорошее мнение почему vim морально устарел: https://tonsky.livejournal.com/314598.html
А если ты Vim переделываешь под себя, то какой смысл юзать его, а не, например, VSCode, Atom, Sublime Text?

>он охуенный, но не все в него могут.


Он вообще не охуенный, ты им пользуешься только потому что "не все в него могут".
154 1818635
155 1818636
>>818606
Туд! с просонья >>818634
156 1818638
>>818430
В жыдее всё ископобки и никакого пердолинга.

> VSCode, Visual Studio, Sublime Text


Мне нужна среда для работы с кодом как с кодом, а не с портянкой буквоговна на форуме, а все эти блокнотики-разукрашки, идейно вышедшие из notepad++ именно так с ним и работают.
157 1818652
>>818638

>Мне нужна среда для работы с кодом как с кодом


Ты хочешь сказать, что в этих редакторах не плейн текст?
Если да - то ты просто нихуя не понимаешь, сразу мимо иди.
Если нет - то к чему этот высер? Какая разница в каком редакторе редактировать/писать код?
158 1818671
>>818634
хуйню сказал. Vim мне позволяет делать свои задачи быстрее. Если тебе он кажется неудобным, то окей, не пользуйся.
159 1818685
>>818671

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


За счёт чего? Ничего конкретного ты пока не сказал, кроме абстрактных обтекаемых фраз. Как и любой идолопоклонник.
160 1818690
>>818638

>Visual Studio


>а все эти блокнотики-разукрашки, идейно вышедшие из notepad++


сразу видно зумерка-долбоеба. на вижуал студии люди софт делали ещё когда ты соплей у своего бати на конце висел.
161 1818693
>>818634

>Вот хорошее мнение почему vim морально устарел


Сейчас бы в 2020 мнение всяких петухов в жж читать.
162 1818707
>>818685

>За счёт чего?



За счет надроченной мышечной памяти на наркоманские хоткеи.
163 1818708
>>818693

>фанбою неприятно, что разработчик FiraCode ему в тапки ссыт

164 1818711
>>818708

>разработчик FiraCode


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

large.jpg16 Кб, 300x225
165 1818717
>>818711

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


Ой, не конструктивно, да? То ли дело назвать кого-то петухом. Это совсем не апелляция к личности. Ты плывёшь, дурик. Ищешь за что бы зацепиться, но всё мимо. Манямирок трещит по швам?
166 1818723
>>818634
Ну, давай по пунктам:

>Вим это устаревшее говно


Да, поэтому я пользуюсь neovim'ом.

>А если ты Vim переделываешь под себя, то какой смысл юзать его, а не, например, VSCode, Atom, Sublime Text?


VSCode написан на электроне, работает со скоростью улитки и жрёт оперативку, а чтобы сделать в нём нечто нетривиальное (вроде блочного visual мода), надо обмазаться плагинами на ебучем JS тайпскрипте, которые работают ещё медленнее, потому что электрон.
Atom не пользовался, ничего не могу сказать, не считая того, что про этот редактор мало кто слышал.
Sublime Text надо покупать, чтобы не приходилось щёлкать мышкой на ебаные "у вас триал: |да, не буду платить| - |нет, не буду платить|". Да и rust-analyzer на нём без плагина. Ну и VSCode тупо лучше во всём, хотя и жрёт чуть больше оперативки и работает медленнее.

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

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

>Он вообще не охуенный, ты им пользуешься только потому что "не все в него могут".


Нет, он просто охуенный и удобен конкретно мне.
167 1818724

>Манямирок


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

>То ли дело назвать кого-то петухом.


Не могу себе в таком отказать.
168 1818726
>>818723

>VSCode написан на электроне, работает со скоростью улитки и жрёт оперативку, а чтобы сделать в нём нечто нетривиальное (вроде блочного visual мода), надо обмазаться плагинами на ебучем JS тайпскрипте, которые работают ещё медленнее, потому что электрон


Так себе аргумент, не пишите код на смарт-чайнике через терминал.
169 1818729
>>818723

>VSCode написан на электроне, работает со скоростью улитки и жрёт оперативку, а чтобы сделать в нём нечто нетривиальное (вроде блочного visual мода), надо обмазаться плагинами на ебучем JS тайпскрипте, которые работают ещё медленнее, потому что электрон.


Это такая же субьективщина как и то, что тебе удобен Vim. Потому что у меня, например, тот же VSCode работает быстро и без нареканий. Задержки при печатаньи, как в том же Atom нет. Вот прямо сейчас открыл свой проект, внутри которого код на HTML, CSS, TypeScript, JavaScript, JSON, Rust, SQL и куча расширений для поддержки всё этого и удобного программирования. Памяти жрёт ~600мб. Но где я ещё найду редактор, который нормально поддерживает всё это и при этом, в общем то, не тупит?

>Atom не пользовался


У атома есть беда именно с производительностью. Но он довольно популярен, кста.
170 1819047
>>818729
Это потому, что ты слоупок и не ощущаешь лагов.
171 1819053
>>819047
скорее потому что ты нищеброд и у тебя нет нормального компа для работы браузера с текстовым полем
172 1819056
>>819053
Хватит уже бомбить на vim, неосилятор. Не нравится - не используй. Нам удобно.
173 1819057
>>819053
не забудь еще парочку анальных зондов от майков себе в жопу поставить :)
174 1819058
>>819053
У меня 16 ядерный топовый амд на одной машине и топовый i7 на другой. Ну и раз уж на то пошло, лучшая реализация вима это evil-mode
175 1819068
>>819056
>>819057
>>819058
хуя вас порвало.

>Хватит уже бомбить на vim


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

>не забудь еще парочку анальных зондов от майков себе в жопу поставить :)


где зонды? покажи, ткни, пиздабол.

>У меня 16 ядерный топовый амд на одной машине и топовый i7 на другой.


да мне похуй, если честно. но если у тебя при таких системках вижал тормозит, то у тебя просто руки-крюки. по другому это не объяснить.
176 1819083
>>819068

>где зонды? покажи, ткни, пиздабол.


https://github.com/microsoft/vscode/issues/49161 Вот, даже и искать долго не пришлось.
177 1819089
>>819068

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


Ну а как же "нинада настраивать"? Судя по количеству пользователей idea, большинство людей просто привыкло к тому, что софт тормозит.
178 1819091
>>819083

>This is not for telemetry, the settings search is using that external service to improve search results. You can disable this with "workbench.settings.enableNaturalLanguageSearch": false

179 1819099
>>819091
Ага, правда, чтобы найти эту челику пришлось ищую на гитхабе создавать, нигде явно об этом в вскоде не сообщается.
180 1819103
>>819091

> using that external service to improve


Это и есть телеметрия.
181 1819110
>>819099
я ещё и за каких-то случайных долбоебов в интернете должен отвечать? долбоёбы это по vim части.

>>819103
когда поисковиком гуглишь что-то - это тоже, надо понимать, телеметрия. двачуешь-капчуешь когда - телеметрия.

узнай что обычно называют телеметрией, а потом будешь тут срать.
182 1819115
>>819110
Вот только это не в поисковике.
183 1820334
>>819089

>idea


хз, у меня 8 сандальных ядер и 48Г оперы (4Г дал идее на кучу), полёт норм. Открыто 3-4 проекта обычно.
Что в ней нравится - сама находит либы для импорта. Пишешь вызов, она подсвечивает красным и предлагает импортнуть. А ещё есть локальная история, когда не коммитишь правку каждой строчки, но в ide можешь отмотаться назад к любому состоянию.
184 1820354
>>819089
да суперпроизводительность не слишком часто нужна, точнее она редко нужна
185 1820578
>>819099
Ну так надо было качать VS Codium, а не VS code (это как хромиум и хром)
186 1820691
>>820334
Как у нее с интроспекцией и настраиваемостью?
Емакс умеет все вышеперечисленное.
Вообще вся хуйня в lsp сервере. rust-analyzer Умеет в автоимпорт, но обсирается на goto-definition постоянно и крашится. rls в автомипорт не умеет, но гораздо шустрее и не так часто крашится.
187 1820779
>>820691

>Емакс умеет все вышеперечисленное.


с емаксом еще поебстись надо прилично так
188 1820782
>>820779
Ну а совсем остальным не надо?
189 1820900
>>820782
c идеей какой нибудь в разы меньше жопоебли, хотя я предпочитаю что то более легковесное типа вскода а комбайнами пользуюсь когда ну очень надо
190 1820903
>>820900
Только если ты согласен жрать дефолт придуманный разрабами же.
191 1820949
>>820903
С ним что-то не так?
192 1821075
>>820779

>с емаксом еще поебстись надо прилично так


>Что такое Spacemacs

193 1821305
>>821075
С ним ещё больше ебли.
lisp.jpg70 Кб, 567x529
195 1822048
>>822002
>>821075
>>820691
Есть версия эмакса не блядском лиспе? Лиспаёбы не нужны. Совсем.

Если мне будет нужна ебля с редактором, то я лучше vim возьму, а не лиспаговно емаксовское. От него хоть есть толк для серверов.
196 1822050
>>822048
Что не так с лиспом? Лучше лисп машины для динамического окружения может быть только равзе что смолтолк.
197 1822054
>>822050

>Что не так с лиспом?


Сначала скажи что с ним так.

>Лучше лисп машины для динамического окружения


На основе чего ты это решил?

>может быть только смолтолк


Это тот полумёртвый язык, единственная адекватная реализация которого обновляется раз в 2-3 года? Он лучше чем лисп, да? Приму к сведению.
198 1822073
>>822054

> Сначала скажи что с ним так.


Самый удобный синтаксис для редактирования. См paredit/smartparens.
Гомоиконичность и вытекающая из нее возможность добавлять почти любые модные фичи.

> На основе чего ты это решил?


На основе того что попробовал кучу вариантов.

> Он лучше чем лисп, да?


Я не говорил что смолтолк лучше как язык. Я говорил про среду. Рефлексивность это то, что лично мне очень нужно, и единственная реально юзабельная реализация этого — Емакс.
200 1822622
>>805036
Балдёж
201 1822624
>>818384
Это rls из coc или rls, прикрученный православным образом?
202 1822627
>>822591
Всплакнул
203 1822709
>>822624
Это RA, а не RLS.

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

>nnoremap <silent> K <cmd>lua vim.lsp.buf.hover()<CR>

204 1822737
>>822624
Эта хуйня же перекрывает половину экрана. Тебе оно не мешает?
205 1822894
>>822737
У тебя капча половину экрана перекрывает. Не мешает?
206 1822913
>>822894
Какая капча?
Vimlogo.svg.png106 Кб, 1200x1202
207 1823042
>>822913
Перед каждым использованием vim нужно вводить капчу. Это настолько мощная программа, что человечество пытается ограничить возможность использования её искуственным интеллектом и злоумышленниками. В ней можно писать текст, редактировать его, перемещаться по файлу, настраивать редактор, выделять текст и всё это в разных режимах! В общем-то это достоинство перекрывает все недостатки vim, о которых пишут аноны выше.

Господь бог знает, что может случится если эта технология попадёт в руки ИИ или мусульманских радикалов, вроде ИГИЛ (запрещенная в России экстремистская организация).
208 1823046
>>823042
Да ты же поехавший. Кстати в Емаксе есть vim-captcha-mode который запускает вим в емаксе и вводит капчу автоматически
209 1823087
>>823046
А ещё ходят слухи, что скоро на вимскрипте допишут автоматический вводитель капчи, и её не надо будет вводить руками! Всего пять часов брутфорса и готово!
image.jpg11 Кб, 225x225
210 1823222
Какой хороший редактор написан на Раст, кстати?
211 1823240
>>823222
ахаха, ну прям затроллел. ахаха
212 1823258
213 1823460
Наткнулся на такую хуйню:
https://www.roi.ru/71821/
214 1823527
>>823460
Эту петицию ты сам наверное и создал.

Уже и так переписывают, к слову.
215 1823544
>>823527
Я джавист вообще, наткнулся и принёс сюда. Когда-то видел аналогичную петицию про D.
216 1823629
Но у раста нет стандарта, а поведение компилятора меняют каждый день. Куда ему до языка АДа!
217 1823692
>>823629
аби только нет еще
218 1824697
потыкал руст сначала было ебать че за пиздец че за кресты, а теперь даже понравилось
219 1825418
>>824697
Дропнул доизучение крестов в пользу rust. Писать код всяко посложнее сначала, но когда начинаешь думать в нужном русле - становится очень просто.
Мимокрокодил 220 1825524
Кто нибудь юзал bevy?
221 1825527
>>825524
Неа. Юзал amethyst.
sage 222 1825550
>>825418
Дропай эту парашу, есть же Zig.
223 1825611
>>825550
Опять ты говноед с Си треда припёрся сюда.
matklad.jpeg14 Кб, 460x460
224 1826242
Вот, кстати, хорошая критика Rust. От одного из контрибов языка.
https://habr.com/ru/post/520880/
225 1826245
>>813444
По итогу Rust из этого рейтинга вылетел нахуй.
226 1826249
>>826242
Вот бы они сделали чтобы rust-analyzer не крашился от каждого чиха уже.
image.png67 Кб, 878x432
227 1826391
>>826245
Просто в расте программисты умеют решать проблемы сами, без гугла.
image.png24 Кб, 959x414
228 1826474
>>826245
Тем не менее, он в хорошей компании. А вот почему его стали меньше гуглить.. Закончились каникулы? Сокращения мозиллы затронули 30% всех писавших на расте? Американским растоманам некогда программировать - заняты на блм митингах?
229 1826503
>>826474

>растоманам


Растоцыганам.
230 1826667
>>826242
есть за что критиковать, но если критиковать адово перегруженные спец правилами на каждый чих плюсы то талмут выйдет размером с томик войны и мира
231 1826804
>>826503
рыгане
232 1826805
>>825527
С 3D работал?
233 1826919
>>826805
Немного, ага.
234 1826922
https://www.abetterinternet.org/post/memory-safe-curl/
Автор curl будет пилить новый основанный на https://github.com/hyperium/hyper бэкэнд для собственно curl.
235 1827083
>>826922
А нахуя? Как можно с курлом наебаться?
236 1827104
>>827083
со всем можно наебатся
238 1827239
>>827110

>switched-to-hyped-technology


вы уж блядь определитесь хайповая технология или никому не нужный мертвый язык
8a89n02l45n51.jpg60 Кб, 570x659
239 1827259
>>827083
Имея такое количество юзеров и столько опыта, прожженный сишник видит смысл в расто-бекэнде ради memory-safety. Думаешь он тоже решил присесть на мертворожденный паравоз хайпа?
240 1827427
Растишки, вы любите фаззить?
241 1827560
>>827239
Хайп как акт некрофилии
242 1828001
>>827427
Фаззинг для си-говноедов, раст незачем фаззить, он неуязвим, если код писал не упоротый ебанат, нарочито плодящий бэкдоры для АНБ =)
243 1828019
>>828001
.unwrap().or_else(|r| r.unwrap())
244 1828030
>>828019
ну если ногой писать то и хело ворд сломатся
245 1828099
>>828030
Ну так сломай hello world. Очень интересно увидеть.
246 1828253
>>789272

>У меня с растом какая-то странная история, я уже где только не добавился во всякие коммунити, но так и не начал ничего на нём писать.


Аналогично
247 1828254
>>801025
>>802450
Проиграл
248 1828260
>>817960
Заорал
249 1828907
>>826242
Что-то вообще на критику не похоже.
250 1828969
>>828907

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


>Что-то вообще на критику не похоже


Растамане держатся до последнего.

А как надо критиковать? Покажи.
251 1829150
>>828969

>Сложный


Плюсы сложнее.

>слишком низкоуровневый


Покажи в ассемблере трейты и енамы

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


Допилят. Если есть что-то конкретное, то напиши RFC или отправь пуллреквест сам, в процессе можешь вообще решить, что и без этого можно обойтись.

>unsafe не панацея


Делать хорошие интерфейсы для библиотек тяжело, кто бы мог подумать. В плюсах вон уже 20 лет с инвалидацией итераторов ничего сделать не могут. Там просто решили, что и так сойдет.
252 1829288
>>828969
Наоборот похоже на сглаживание штрихов растафилами.
Там куда серьезнее проблемы есть, о которых узнаешь когда потратишь тонну времени на сие чудо.
253 1829345
>>829150
Главный минус раст - на нем не пишут реальные проекты. Это язык фанбоев. Да он крутой, да, безопасный, но язык нужен не сам по себе (хотя сам по себе тоже нужен - в академических целях, чтобы его идеи потом вошли в какой-то следующий более популярный язык), он нужен для того, чтобы на нем реальные задачи решать. Писать программы, которыми пользуются. Большая часть софта, которым пользуешься ты - это плюсы/джава/питон - и да - пхп.
У раста есть только экспериментальный движок для фаерфокса, единственный большой проект, и то - команду уже вроде как разогнали из мозиллы.
254 1829419
>>829345
А куча мелких и средних проектов уже не считается? Если на языке не написан браузер то все, пиздец?
255 1829427
>>829419
мелкие и средние проекты в целом без разницы на чем писать.
256 1829437
>>829427
С хуя бы?
257 1829508
>>829437
потому что мелкий проект можно переписать хоть с нуля, если это потребуется.
Я не против раста - отличный язык, но пока не промышленный ни разу. В большинстве прикладных задач его берут просто потому что нравится он кому-то из команды. Ну и пропиарится тоже - компания говорит - у нас есть Раст - и к ним идет толпа молодых романтиков-программистов.
258 1829575
>>829345
Никто внезапно не ебанёт огромный проект за полгода.

> Большая часть софта, которым пользуешься ты


Была написана/начата очень давно.
259 1829579
>>829508
И давно это можно переписывать проекты с нуля? Если ты в гроб-кладбище-пидор банке, то конечно, можно и переписать. А если ты стартап, то второго шанса может уже не быть.
260 1829583
>>829579

>Если ты в гроб-кладбище-пидор банке, то конечно, можно и переписать. А если ты стартап, то второго шанса может уже не быть.


У тебя какие-то странные представления о стартапах и банках.
В банке тебе чтобы выбить бюджет на "переписать с нуля" нужно на одной ноге с околотопменеджментом быть. Если что-то внедрено - нужна ОЧЕНЬ серьезная причина, чтобы делать что-то вне рамок багфиксинга/микро новых фич.
А вот в стартапах наоборт. Хуяк-хуяк, микросервисы в продакшн, презентацию показали, новый раунд инвестиций дали, можно нанять +10 человек и кинуть ресурсы на переписывание с нуля.
261 1829648
https://doc.rust-lang.org/std/net/struct.TcpListener.html

Открыл доки. Повторил пример.

>for stream in listener.incoming() {



method not found in `std::result::Result<std::net::TcpListener, std::io::Error>`

Простите, чего? У раста доки не актуальные? Охуенно
262 1829650
>>829648
А как ты пример написал? Судя по ошибке ты ? пропустил в конце.
263 1829655
>>829650
Да, убрал, потому что в каком-то древнем расте было по-другому, у меня тулчейн стоял с хуй знает каких времён. Обновился, всё ожило. Спасибо.
image208 Кб, 500x700
264 1829691
>>829150

>долгая компиляция


>Допилят


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

>Если есть что-то конкретное, то напиши RFC или отправь пуллреквест сам


>в процессе можешь вообще решить, что и без этого можно обойтись.


Поэтому и

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


Брать это говно в продакшн, где ещё самому надо его допиливать - нет, спасибо.

> Покажи в ассемблере трейты и енамы


Решил дурачком прикинуться? Ещё кроме трейтов и енамов есть какие-то нормальные абстракции? ООП? Наследование может быть? За счёт отсутствия небесплатных абстракций раст и низкоуровневый.

>unsafe не панацея


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


К чему это?

>Плюсы сложнее


Сложнее за счёт чего? Следование небольшому своду правил или паттернов убивает необходимость юзать Rust.
265 1829894
>>829691

>ООП? Наследование может быть? За счёт отсутствия небесплатных абстракций раст и низкоуровневый.



Здесь нет ООП, потому что разработчики решили, что оно не нужно, а не из-за низкоуровневости. С этим можно спорить, но точно также, например, подумали в Го.

>К чему это?



Если unsafe протекает из библиотеки, то это проблема библиотеки. В биндинге на Питоне тоже можно накосячить, но никто не говорит, что он небезопасный.

>Следование небольшому своду правил или паттернов



Своду из нескольких сотен правил, про большую часть которых ты не поймешь, пока их не нарушишь. Ну и куча эзотерики типа SFINAE.
266 1829970
>>829894

>Здесь нет ООП, потому что ...


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

>Если unsafe протекает из библиотеки, то это проблема библиотеки.


Сам ансейф и его концепция не без греха. В статье об этом сказано подробней.
267 1830155
>>829579
Ты все перепутал. Как раз в банке тебе никто не даст переписать с нуля ничего, у них работало раньше на джаве 1.5, зачем им бизнес-риски? Ты пойди еще найди 10 раст разработчиков, а стартап как раз таки должен быть гибкий - там за код не держатся, если надо - можно выкинуть и переписать
268 1830158
- Алло, это число пи?
- Да
- Раст
269 1830549
Как часто рантайм раста умирает по какой-нить внутренней ошибке?
270 1830568
>>830549
В основном когда ты дергаешь unwrap() или a[a.len()]
271 1830713
>>830549
обычно на найтли частенько выходит ICE, можешь сам посмотреть на гихабе
272 1830740
https://github.com/fpgaminer/rust-lzma/blob/master/src/lib.rs

Привет Аноны, подскажите, зачем тут части кода выделены в отдельные блоки?
273 1830834
>>830740
Трюк для того, чтобы reader был освобождён до выхода из функций. А вот зачем конечно - видать программисту так захотелось.
274 1831074
>>830740
Это может быть код, написанный до non-lexical lifetimes, и тогда это была ошибка компиляции.
image.png70 Кб, 609x614
275 1831657
Изучаю понемногу.

Есть создаю Message на основе header со значением 0, то вывод следующий:

Creating ping
Received ping;

Если header== 1, то вывод следующий:
Creating rq;
Received ping;

Почему? Я что-то успускаю в енумах или просто промахнулся где-то?
276 1831658
>>831657
В первом матче process_message не вызвал, но он на самом деле снаружи вызывается всё равно, во втором матче вызов появился в процессе отладки.

Книжку тоже читаю, но попутно разбираюсь и ручками.
277 1831659
>>831657
>>831658
Отвечаю на свой вопрос.
Нужен qualified path в match expression и указание параметра в матче Rq.
278 1831662
279 1831715
>>831657
Потому что "Ping" у тебя — это переменная, а не вариант енума. Если бы ты clippy запустил, тебе бы рассказали, что "Rq =>" ветка недостижима.
280 1831789
>>831715
Вот это, кстати, косяк. Тоже на таком подрывался. Нужно было в синтаксисе чётко отделить переменные от енумов. Например, ключевым словом var или тип того.
281 1831907
>>831715

>тебе бы рассказали, что "Rq =>" ветка недостижима.


Да мне и компилятор выдал ворнинг на этот счёт, а я не всмотрелся.
Но спасибо.
282 1833940
Ребят, подскажите любопытному анону.
Вот захотел я переписать свой компилятор с хаскеля на раст ради скорости и устранения повсеместной ленивости. Есть нормальный аналог хаскелевского megaparsec и нормальная обертка над LLVM? Алсо, хотелось бы переписать с си рантайм, в расте как с ручным управлением памятью, сильно больно свой GC писать будет?

Хаскель прекрасен, но тормознут, раст представился альтернативой, заодно решил от других зависимостей вроде си попробовать избавиться, как вы поняли, вероятно. На крестах реализовывать вывод типов хаскелеподобного языка больно, я пытался, раст за счет адт и паттерн матчинга в этом получше должен быть
283 1834483
>>833940
Написал на хачкеле
@
Хорошо, но медленно
@
Переписать не сможешь


Так, а как же мантры о том, что хачкель лучше всех выражает сайд-эффекты? Вот тебе нужен такой эффект, как неленивость и вытекающая отсюда эффективность. Давай, вырази это.
284 1834628
>>834483

> Хорошо, но плохо

285 1834751
>>833940
Ну, есть несколько крейтов для этого на расте. Но тут сильно зависит от того, какой именно GC тебе нужен.
286 1834812
>>834751
В идеале, мне нужно написать свой интерфейс GC, а потом на его основе наделать несколько GC вроде CMS и G1, но на этот раз на расте. А можешь, пожалуйста, перечислить эти крейты? Интересно на них глянуть.

>>834483
Жирным долбоебам этот вопрос адресован не был. Съеби, быдло.

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

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

а конкретно проблема производительности связана с алгоритмом вывода типов (решения constraint-ов) у хаскеля, я взял своему языку ту же систему OutsideIn(X), но пытаюсь сделать растоподобный синтаксис и мутабельность вместе с частью охуенности системы типов хаскеля, уже срал вопросами по теме в программач же, но как-то беуспешно.
287 1834815
>>834812

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


Тоже мне, блядь, проблема.

Ты бы ещё больше скрытого текста ебанул.
288 1834818
>>834815
и ебану ведь
289 1834827
>>834818
Красиво ебанул. Уважаю.
290 1834965
А я был даже не из растишек.
291 1834986
>>834812
Ну, вообще, я не смотрел на GC в расте, мне не нужно было, но просто идёшь на
lib.rs
и там ищешь "gc" или "garbage" или ещё чего-нибудь вроде этого.

Хотя мутабельность ты с хачкелем не подружишь, скорее всего, там же сразу линейные типы ебало бьют за мутабельность, нет?
292 1834997
>>834812
У меня создаётся впечатление, что ты контуженный дебилговно, который раз в год делает очередной проект всей своей жизниговно, который из года в год не взлетаетговно.
Ну вот нахуя ты делаешь очередной никому не нужный ЯПговно и компилятор к нему? Не проще ли помочь хаскелю или расту в этих областях? Или ты слишком тупговно для такого и только и можешь пилить свое поделиеговно, а код там такой что все бабы сраки со всего района лезли в него, чтобы найти куски говна своего, но находили только твой код? Зачем говно? Говно не нужно. Надо меньше говна. А без говна будет менее говенно. Говна хватает. Все испускают говно. Надо уменьшать количество говна. Долой произвольную дефекацию. Долой говно. Ты меня понял?) Вот.
293 1835138
>>834986
Меня больше интересовало, нет ли крейтов для облегчения реализации своих GC, потому что пока что мне ручное управление памятью в расте видится несколько громоздким.

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



Поэтому у меня модификация (хотя и оригинальная система типов вполне позволяет, но мне она вся не нужна)

>>834997
Что ж тебе так покоя не дает, что я себе там на своем личном гит сервере делаю-то? Ну пилю я себе PhD, ну отъебись.

> Или ты слишком туп


А может, ты?

> Ну вот нахуя ты делаешь очередной никому не нужный ЯП


Может, потому, что есть такая задача? Пытаюсь сделать ЯП, в котором конкуррентность проверяется на уровне типов.

Хотя нахуя я вообще тебе это поясняю, ты наверняка даже разницу между STLC и System F не знаешь.
294 1835278
>>835138

>Меня больше интересовало, нет ли крейтов для облегчения реализации своих GC



Так ты результаты поиска по lib.rs посмотрел? Я там вроде бы видел что-то такое.
295 1835299
>>835278
В lib.rs я поискал, я просто нашел код одного кодера, делавшего на расте клон beam vm, у него сделано ровно так, как мне нужно.
Просто структура с usize внутри, а дальше обертки для интерпретации этого числа как указателя на что угодно и обратно, арифметика реализована удобно, вот это все. Ну и аллокатор чанков на mmap-е сделан. Последний выглядит почти как на си, лол.
Сижу, вникаю в детали. Но за помощь все равно спасибо :) Пойду там искать битовые карты, нужно для G1 GC. Пока что bitset-core выглядит как то, что надо.
296 1835350
>>835138

> > Или ты слишком туп


> А может, ты?


Ясно. Ты тупая хаскелесобака.
Научишься говорить на Rust - приходи. Пожуем говна, попьем мочи.
297 1835385
>>835299
Звучит не очень, потому что usize имплементит Send и Sync, а голые указатели — нет (и не зря). Так что может выстрелить. А может и нет. Но сам там смотри, в общем.
298 1835394
>>835385
Ну тут просто никак не обойтись без подобного, потому что мне нужно работать с указателями на объекты в куче как из потоков GC, так и из потоков шедулеров. Тут головой надо просто думать, ну куда без этого)

Кстати, практика предыдущей версии показала, что использование общей кучи позволяет не только в один актор запихнуть обработку дохрена большого массивчика, что очевидно, но и снижает траты памяти в целом по сравнению с тем же erlang, где у каждого актора сразу своя куча на пару сотен байт. Так что ради таких преимуществ придется и потерпеть :)
299 1835395
>>835394
не байт, слов, а машинное слово, в зависимости от архитектуры, может и 8 байт быть. Вроде одно слово перепутал, а сколько смысла поменялось...
300 1835400
>>835385
Кстати, не подскажешь, lalrpop стоит использовать, или сыроват?
301 1835413
Шизофреник опять
302 1835439
>>835400
Ну, с простым IDL языком я вот буквально сейчас его использую, вроде нормально. Правда в книжке пары моментов не хватает, вроде специальных span-матчеров @L и @R, но для этого достаточно почитать немного сорцов и тестов в репе.

Ну и он LR(1), так что если у тебя язык не context-free, то decent recursive Pratt в паре с nom либой может лучше зайти.
303 1835445
>>835439
Семен-семеныч
304 1835460
>>835445
Съеби, джаваскриптер, тут умные люди кукарекают.
305 1835469
>>835460
У меня проект на Rust и wasm!!1
Ты мразь. Я тебя ебал.
306 1835473
>>835439
Окей, благодарю!
image.png285 Кб, 640x596
307 1835553
Я вам картинку на перекот принес.
308 1835850
>>835299
Можно узнать почему ты хочешь региональный gc, а не подобие новых zgc и шенанды ?
sage 309 1835852
>>835850
Забыл упомянуть shenandoah и zgc, да. А разве они не на регионах, кстати?

https://www.researchgate.net/publication/306112816_Shenandoah_An_open-source_concurrent_compacting_garbage_collector_for_OpenJDK

> Shenandoah is an open-source region-based low-pause paral-lel and concurrent garbage collection (GC) algorithm



Я думал, что мы малые объекты конкурентно эвакуируем из одного региона в другой как раз. Или ты имел в виду поколения?
310 1835874
>>835852
Прости, и правда он региональный без поколений, в голове чуть пермешалось
311 1835935
>>789061 (OP)
Зачем нужен RON (Rusty Object Notation)? Без него никак не написать сериализацию данных в русте?
312 1835965
>>835935
Затем же, зачем жабаскриптерам надо было придумывать JSON — просто похожий и приятный синтаксис.
313 1835968
>>835965
JSON - никто специально не придумывал оттого он такой убогий. Просто придумали как передавать данные так, чтобы в жопаскрипте одним eval можно было из строки получить объект.
314 1835974
>>835968

> одним eval можно было из строки получить объект.


В результате никто так не делает.
315 1835982
>>835974

>В результате никто так не делает.


Теперь-то нет - наелись всяких эксплоитов, но когда JSON только появился других вариантов не было.
316 1836078
>>835965
В чем принципиальное отличие RON от Serde? Ведь и тот и другой нужен для сериализации данных.
317 1836100
>>836078
Нет.
RON — формат хранения, Serde — фреймворк для сериализации и десериализации.
phd.png39 Кб, 850x565
318 1836348
>>835138

>Ну пилю я себе PhD, ну отъебись


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

Меня это вообще сильно расстраивает. Мне всегда наука виделась чем-то большим чем человек, чем то великим. Но с течением времени, с тех пор как количество докторов и кандидатов становится всё больше — я всё больше теряю уважение к этому ремеслу (тяжелому ремеслу, я знаю это). Я думаю 90% современных учёных просто паразиты на теле общества. Никакого уважение к ним быть не должно, с них нужно так же как с чинуш спрашивать, тыкая носом в какашки. Все эти гендер стадис, заказные статьи в научных журналах, искуственное усложнение научного материала (haqreu об этом писал). При этом вы ещё более гнусные чем какие нибудь чинуши, у чинуш есть хотя бы гордость. А у вас...Я видел инфу, где в исследовании атмосферу внутри научного коллектива разных университетов сравнивали с атмосферой царящей в коллективе какого-нибудь пригородного завода. Зависить, токсичность, злорадство, паразитизм, надменность — так учёные описывали своих собственных коллег и друзей. Просто лучшие из людей, не иначе.

И вот конкретно ты — часть всего этого мусора. При этом ещё и марасишь как токсичная дегенеративная зумерка. Фу просто, фу.

мимо
319 1836377
>>836348

>Сделано учёными


>BrainFuck

320 1836381
>>836377
так его какой-то студент сделал
321 1836549

> rust


> не всратый синтаксис

322 1836581
>>836549
Я недавно вкатился, на мой взгляд убого выглядят только спецификаторы лайфтаймов, вот эти все <'a>
Одиночный апостроф в коде в принципе люто странно выглядит
Остальное красиво
323 1836588
>>836581
Согласен. Не совсем очевидно что лайфтайм передается как type parameter. Я сначала ожидал бы там только тип, но никак не время жизни.
324 1837114
>>836348
Общаюсь с, возможно, тупыми двачерами на понятном им языке, а с умными - на человеческом. Не вижу никакой проблемы. Подчеркнуто вежливое общение на анонимной имиджборде вроде двача выглядит еще тупее, поверь.

> Все эти гендер стадис


При чем тут гендер стадис, если эта хрень не только не приносит пользы, но и вообще вредна? ЭТО наукой признают только окуколдившиеся мудаки.

> искуственное усложнение научного материала


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

> Я видел инфу


Ну-ка, покажи, пожалуйста, где ты видел ту инфу? Сослался - пруфани.

Еще ты требуешь от людей соответствия не профессии, а твоему внутреннему представлению об этики этой профессии, что, мягко говоря, странно. Никто не обязан следовать твоим представлениям. Вот никто и никак. Смирись. Я бы понял, если бы в другое время с меня такое требовали, но на анонимной борде, где нахуй посылают просто за то, что ты есть - ???

Про 90% паразитов практически согласен, многие не знают, зачем им PhD и делают в итоге мусорные исследования, переводят на это время и ресурсы, в том числе и интеллектуальные. Тоже вредительство. С другой стороны, если мы позволим кому-то определять полезность исследования, то окажемся заложниками представления этого "надзирателя" о пользе. В каком-то смысле это происходит через индекс Хирша.

Кстати, открою тебе такой секрет: иногда матом можно довольно коротко и ясно донести до человека то, что "нормальным" языком доносилось бы сильно подольше. Банально потому, что мозг не тратит ресурсы на парсинг всей этой мишуры и сразу работает над идеей. Согласись, фраза "хуйни калмана" звучит короче и понятнее, чем "пропусти это через фильтр Калмана". Во второй фразе слов больше при том же смысле.
325 1837190
Facebook is looking to hire compiler and library engineers to work on @rustlang
. Rust is taking off within FB, and we'd like to work with the community. Remote work from within the U.S. is possible. U.S. work permit required.

We'll be working on the whole stack. From frontend, to codegen, libraries and tools, to make sure that Rust is able to handle the massive Facebook scale. I know of specific bugs and issues, but we don't have a clear roadmap yet.

https://twitter.com/nadavrot/status/1319003839018614784
326 1837191
>>837190

>nadavrot

327 1837192
>>837191

>ebanavrot

328 1837193
>>837190

На собеседовании все равно будешь крутить деревья и вертеть массивы на доске или в блокноте, ну и литкод хард дадут за 5 минут решить
329 1837194
>>837193
Дык нахуй фейсбук. Главное что они будут конпелятор допиливать.
народ государству.mp46,7 Мб, mp4,
720x720, 1:16
330 1837220
>>837114

> Кстати, открою тебе такой секрет


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

>Ну-ка, покажи, пожалуйста, где ты видел ту инфу? Сослался - пруфани.


Ну, например, вот:
https://www.semanticscholar.org/paper/Destructive-conflict-and-bullying-at-work-Hoel-Cooper/ https://link.springer.com/article/10.1007/s10672-012-9193-7
https://www.tandfonline.com/doi/abs/10.2753/ATP1084-1806320103
По схожим запросам можно найти ещё.

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


Что значит "поверь"? Я вообще-то тоже тут сижу. Даже на анонимной борде вежливое общение вызывает уважение. Когда два анона спорят и один скатывается к "ха, я тваю мамку ебал" — без судей понятно кто победил в дискуссии.

> С другой стороны, если мы позволим кому-то определять полезность исследования


Нам не нужно определять "полезность" исследований. Я ни слова не сказал про "полезность". Достаточно просто не врать, не фальсифицировать статьи, не подгонять статистику под свои манямиры и конъюнктуру. Сейчас же - от десятой до трети всех исследований (по разным оценкам) - фейк. Причём среди разных наук, в том числе и точных.
Я уже молчу про то, что многие из них просто не читаются, не перепроверяются и потенциальные ошибки в них не ищут. Вот, наугад:
https://onlinelibrary.wiley.com/doi/abs/10.1111/ecoj.12461 https://www.semanticscholar.org/paper/Publication-Bias:-The-"File-Drawer"-Problem-in-Scargle/ad265c494be00224f1d10a14684b2dce331efc01 https://science.sciencemag.org/content/342/6154/60.full https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2586872/
А бесконечные россиянские кандидатские и докторские? Их кто нибудь читает, вычитывает?

>При чем тут гендер стадис, если эта хрень не только не приносит пользы, но и вообще вредна?


Здорово...

>Никто не обязан следовать твоим представлениям. Вот никто и никак. Смирись.


...А потом ты начинаешь разговаривать как обычная феминистка. "Моё тело — моё дело! Я ничем и никому не обязана!".

Тот факт, что ты считаешь, что никто не может призывать тебя к соблюдению принятой в обществе этики твой профессии — говорит о том, что ОНИ побеждают. Но наше общество ещё не настолько деграднуло. Поэтому когда дело касается врача или полицейского — всё общество в единой порыве требует от них соблюдения этических правил. Врачей даже заставляют принимать полурелигиозную клятву врача (на основе клятвы Гиппократа, которой бог знает сколько лет). Потому что никому не хочется, находясь при смерти, слышать хамство, грубость и "отъебись".

Но чем дальше от тела, чем меньше мы чувствуем связь, чем меньше мы чувствуем значимость и влияния друг на друга — тем больше эти границы размываются. Тут и вылезают левые постмодернисты...Которые никому и ничего не должны, которые не собираются соответствовать твоим ожиданиям и представлениям, которые начхать хотели на твоё мнение и твои взгляды. Заметь как эта идея стремительно растёт в обществе. И чем больше человек развращён — тем больше он "никому и ничего не должен". От фемок и sjw до политиканов и мажоров. Эта идея пожирает людей. И именно поэтому "вредных" гендер стадис — будет становится больше, врач в больнице будет смотреть на тебя как на говно, а коп дубасить палкой. Смирись.
народ государству.mp46,7 Мб, mp4,
720x720, 1:16
330 1837220
>>837114

> Кстати, открою тебе такой секрет


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

>Ну-ка, покажи, пожалуйста, где ты видел ту инфу? Сослался - пруфани.


Ну, например, вот:
https://www.semanticscholar.org/paper/Destructive-conflict-and-bullying-at-work-Hoel-Cooper/ https://link.springer.com/article/10.1007/s10672-012-9193-7
https://www.tandfonline.com/doi/abs/10.2753/ATP1084-1806320103
По схожим запросам можно найти ещё.

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


Что значит "поверь"? Я вообще-то тоже тут сижу. Даже на анонимной борде вежливое общение вызывает уважение. Когда два анона спорят и один скатывается к "ха, я тваю мамку ебал" — без судей понятно кто победил в дискуссии.

> С другой стороны, если мы позволим кому-то определять полезность исследования


Нам не нужно определять "полезность" исследований. Я ни слова не сказал про "полезность". Достаточно просто не врать, не фальсифицировать статьи, не подгонять статистику под свои манямиры и конъюнктуру. Сейчас же - от десятой до трети всех исследований (по разным оценкам) - фейк. Причём среди разных наук, в том числе и точных.
Я уже молчу про то, что многие из них просто не читаются, не перепроверяются и потенциальные ошибки в них не ищут. Вот, наугад:
https://onlinelibrary.wiley.com/doi/abs/10.1111/ecoj.12461 https://www.semanticscholar.org/paper/Publication-Bias:-The-"File-Drawer"-Problem-in-Scargle/ad265c494be00224f1d10a14684b2dce331efc01 https://science.sciencemag.org/content/342/6154/60.full https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2586872/
А бесконечные россиянские кандидатские и докторские? Их кто нибудь читает, вычитывает?

>При чем тут гендер стадис, если эта хрень не только не приносит пользы, но и вообще вредна?


Здорово...

>Никто не обязан следовать твоим представлениям. Вот никто и никак. Смирись.


...А потом ты начинаешь разговаривать как обычная феминистка. "Моё тело — моё дело! Я ничем и никому не обязана!".

Тот факт, что ты считаешь, что никто не может призывать тебя к соблюдению принятой в обществе этики твой профессии — говорит о том, что ОНИ побеждают. Но наше общество ещё не настолько деграднуло. Поэтому когда дело касается врача или полицейского — всё общество в единой порыве требует от них соблюдения этических правил. Врачей даже заставляют принимать полурелигиозную клятву врача (на основе клятвы Гиппократа, которой бог знает сколько лет). Потому что никому не хочется, находясь при смерти, слышать хамство, грубость и "отъебись".

Но чем дальше от тела, чем меньше мы чувствуем связь, чем меньше мы чувствуем значимость и влияния друг на друга — тем больше эти границы размываются. Тут и вылезают левые постмодернисты...Которые никому и ничего не должны, которые не собираются соответствовать твоим ожиданиям и представлениям, которые начхать хотели на твоё мнение и твои взгляды. Заметь как эта идея стремительно растёт в обществе. И чем больше человек развращён — тем больше он "никому и ничего не должен". От фемок и sjw до политиканов и мажоров. Эта идея пожирает людей. И именно поэтому "вредных" гендер стадис — будет становится больше, врач в больнице будет смотреть на тебя как на говно, а коп дубасить палкой. Смирись.
image.png24 Кб, 176x277
331 1837234
Вот это пасты вы тут пишите
и не лень ведь
332 1837284
>>837234
Да просто интеллигенция местная наехала на быдлоPhD из мухосранского рогатника. Лучше бы Rust обсуждали.
9rxmda3iunu51.png320 Кб, 500x564
333 1837326
>>837190
The Developer Division at Microsoft is responsible for supporting many of the company's largest product and service groups. We are looking for engineers to work on Rust compilers and tools to support the usage of the Rust programming language.

Contribute to the design and implementation of Rust compiler front-ends, back-ends, analysis tools

https://careers.microsoft.com/us/en/job/917051/Senior-Software-Engineer
334 1837331
>>837284
Ну, что я быдло я и не отрицаю но позволить себе подобное могу только на анонимной борде, да, но уж больно странная аргументация у анона, нет, ну правда. Мне кинули ответку про говно, я попросил отъебаться, а тут этот анон решил, что докопаться нужно именно до меня. Ну не дает ему покоя, что я на анонимной борде позволяю себе послать человека, который в забавной форме послал меня. Ну окей. Удачи в этом, все дела.

А что раст нужно здесь обсуждать - это да, поэтому больше сюда по оффтопу отписывать не буду, да и анону выше не советую.

Собственно, у меня и вопрос: битовые поля как в си в расте чем лучше имитировать? Очень надо.
336 1837341
>>837331
Слился, значит? Ну твоё право, конечно. Тебе с этим жить.
337 1837351
338 1837541
>>837351
>>837333
спасибо, как раз bitflags смотрел вчера.
339 1837555

> WHY CAN'T I DO THISW IN RUST?!!


> voidx


Ой а что имеется в виду? Неопределенных типов типа auto какого нибудь

Если что мимопрограммист на с/с++/js имевший некоторый опыт со swift в котором вроде как есть тип Any что как бы заменяет voidx
340 1837580
>>837555

>Неопределенных типов типа auto какого нибудь


Это называется вывод типов, всё там определено.

>на с/с++/js


Судя по вопросу, опыт у тебя есть только с жс.

>опыт со swift в котором вроде как есть тип Any что как бы заменяет voidx


Никак не заменяет, Any — это обёрточный тип хранящий метаинфу о том, что в нём лежит (и несущий соответственные накладные расходы), а void* — это тупо сырой указатель (просто адрес на начало куска памяти), аналогом которого является OpaquePointer в свифте и std::ffi::c_void в расте.
341 1837644
>>837580

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


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

Так что давай говорить о конкретных вещах - например об объектах (экземплярах класса) со своими типизированными полями и виртуальными функциями, как в плюсах например запихать разные объекты в массив или передавать их функциям? - или превратить в указатель на непонятное нечто (voidx) или наследовать от некоего общего ( возможно абстрактного) класса:

class Any
{
private:
uint8_t type;
public:
Any(t) { type = t; };
~Any() {};
}

class MyObject : public Any
{
private:
int a, b;
public:
MyObject(int arg1, int arg2) : Any(0)
{
a = arg1; b = arg2;
};
~MyObject() {};
}

int myFoo(Anyx obj) {
switch(obj->type) {
case 0:
return (MyObject x)(obj)->a + (MyObjec tx)(obj)->b;
// ...
}
}

Вот и вся твоя мета информация, в случае просто передачи voidx компилятор не может сразу назначить грузить определенные поля типа type, как в моем примере. А идея таких языков как раст или го (свиф вроде как jvm язык), в том чтобы избавится от malloc() и free() / destroy(), и оверхэд там связан только с рантайм библиотекой которая контролирует это дело, а не какими не метатипами. Нахрена тогда вообще язык типизированный, в том же джаваскрипте джит компилятор во время исполнения по входным аргументам определяет для каких типов функции / инструкции подставлять, но на то он и динамический язык.
341 1837644
>>837580

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


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

Так что давай говорить о конкретных вещах - например об объектах (экземплярах класса) со своими типизированными полями и виртуальными функциями, как в плюсах например запихать разные объекты в массив или передавать их функциям? - или превратить в указатель на непонятное нечто (voidx) или наследовать от некоего общего ( возможно абстрактного) класса:

class Any
{
private:
uint8_t type;
public:
Any(t) { type = t; };
~Any() {};
}

class MyObject : public Any
{
private:
int a, b;
public:
MyObject(int arg1, int arg2) : Any(0)
{
a = arg1; b = arg2;
};
~MyObject() {};
}

int myFoo(Anyx obj) {
switch(obj->type) {
case 0:
return (MyObject x)(obj)->a + (MyObjec tx)(obj)->b;
// ...
}
}

Вот и вся твоя мета информация, в случае просто передачи voidx компилятор не может сразу назначить грузить определенные поля типа type, как в моем примере. А идея таких языков как раст или го (свиф вроде как jvm язык), в том чтобы избавится от malloc() и free() / destroy(), и оверхэд там связан только с рантайм библиотекой которая контролирует это дело, а не какими не метатипами. Нахрена тогда вообще язык типизированный, в том же джаваскрипте джит компилятор во время исполнения по входным аргументам определяет для каких типов функции / инструкции подставлять, но на то он и динамический язык.
342 1837733
>>837644

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


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

>return (MyObject x)(obj)->a + (MyObjec tx)(obj)->b;


Поздравляю, ты только наговнокодил так, что:
а) это нереально расширять и поддерживать, а искать креши и битые данные после даже минимального рефакторинга будешь месяцами;
б) вырубил все возможные оптимизации компилятра;
в) а ввиду отсутствия прошлого пункта, без жирного гц в стиле жавы/дотнета, который бы дефрагментировал кучу и собирал такое поплотнее — максимально не cache-friendly код, который оказавшись в горячей точке будет дрочить память а не работать.
г) хоть это и пример, но даже в нём деструктор MyObject в 2/3 случаев тупо не будет вызываться и ты получишь 30 гб хипа ой)0

>Вот и вся твоя мета информация


Дружочек, ты обосрался. Раз уж тебе так нравится аппелировать к свифту, то давай посмотрим, как же вся метаинформация вмещается в 1 байт (у тебя в программе как полагается настоящему хэловорду же не может быть больше 255 типов, кекус):
https://ideone.com/7IoQmE

>T size: 4


>Any size: 32


https://godbolt.org/z/8Keoaz
Внезапна-внезапна, вытерев ноги об систему типов ты заставил компилятор забоксить значение (выделив память в куче, получив x2 размер объекта и как минимум ещё место под счетчик ссылок, которого нет в сырой структуре), а так же получил оверхед по памяти аж целых 3 указателя — на а) таблицу с конструкторами/деструкторами, б) виртуальную таблицу, в) таблицу типов (в которой хранятся: имена всех переменных и самого типа, как и в любом языке с рефлексией, а не 1 ебучий байт). Короче, получил полноценный жопаскрипт, всё как ты хотел.

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


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

>Нахрена тогда вообще язык типизированный


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

> в том же джаваскрипте джит компилятор во время исполнения


А нахуя тратить ресурсы во время исполнения если можно сделать это на этапе компиляции? Да и покрывать тестами каждый пук не надо, лол.
342 1837733
>>837644

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


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

>return (MyObject x)(obj)->a + (MyObjec tx)(obj)->b;


Поздравляю, ты только наговнокодил так, что:
а) это нереально расширять и поддерживать, а искать креши и битые данные после даже минимального рефакторинга будешь месяцами;
б) вырубил все возможные оптимизации компилятра;
в) а ввиду отсутствия прошлого пункта, без жирного гц в стиле жавы/дотнета, который бы дефрагментировал кучу и собирал такое поплотнее — максимально не cache-friendly код, который оказавшись в горячей точке будет дрочить память а не работать.
г) хоть это и пример, но даже в нём деструктор MyObject в 2/3 случаев тупо не будет вызываться и ты получишь 30 гб хипа ой)0

>Вот и вся твоя мета информация


Дружочек, ты обосрался. Раз уж тебе так нравится аппелировать к свифту, то давай посмотрим, как же вся метаинформация вмещается в 1 байт (у тебя в программе как полагается настоящему хэловорду же не может быть больше 255 типов, кекус):
https://ideone.com/7IoQmE

>T size: 4


>Any size: 32


https://godbolt.org/z/8Keoaz
Внезапна-внезапна, вытерев ноги об систему типов ты заставил компилятор забоксить значение (выделив память в куче, получив x2 размер объекта и как минимум ещё место под счетчик ссылок, которого нет в сырой структуре), а так же получил оверхед по памяти аж целых 3 указателя — на а) таблицу с конструкторами/деструкторами, б) виртуальную таблицу, в) таблицу типов (в которой хранятся: имена всех переменных и самого типа, как и в любом языке с рефлексией, а не 1 ебучий байт). Короче, получил полноценный жопаскрипт, всё как ты хотел.

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


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

>Нахрена тогда вообще язык типизированный


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

> в том же джаваскрипте джит компилятор во время исполнения


А нахуя тратить ресурсы во время исполнения если можно сделать это на этапе компиляции? Да и покрывать тестами каждый пук не надо, лол.
343 1837886
>>837733
Хуя подрыв

> Система типов на то и нужна, чтобы существовать в компайл тайме


> Чтобы юзать типы и писать код, который не будет жрать все ресурсы


а voidx это какой тип, не подскажешь?

> А нахуя тратить ресурсы во время исполнения если можно сделать это на этапе компиляции?


Что бы по максимуму использовать аппаратные возможности конкретного процессора на котором код запускают, это как один из вариантов, так же портабельность и типо-безопасность в рантайме, а не только на этапе компиляции

>T size: 4


>Any size: 32


Там в ассемблере эти числа литералами забиты, что как раз и показывает что компилятор в компаилтайме опираясь на известные типы все это посчитал, чего с указателем в принципе нельзя сделать. Но это хуйня так как указатель на реальный объект там все равно есть но так же там есть информация например для сравнения типов чего в сыром указателе нет, зато есть в типичных сишных структурах в которых тыкают поля для указателя на функцию, указателя на другую структуру или указатели на кучу. Так что к чему твой перфоманс с кодом я не понял, зато понял что ты лицемерное пиздло серящее на веб при этом используя его ресурсы для компиляции и вывода результата, а не свой локальный компьютер.
sky.jpg20 Кб, 795x445
344 1837979
Сегодня мы выпускаем очень раннюю версию rust-gpu - новый проект, призванный сделать Rust первоклассным языком и экосистемой для кода GPU!

Программирование на GPU исторически выполнялось с помощью HLSL или GLSL, простых языков программирования, которые развивались вместе с API рендеринга на протяжении многих лет. Однако по мере развития игровых движков эти языки не смогли предоставить механизмы для работы с большими кодовыми базами и, как правило, отставали от кривой по сравнению с другими языками программирования.

В этом проекте мы надеемся, что мы продвинем отрасль вперед, добавив в GPU Rust, существующий низкоуровневый, безопасный и высокопроизводительный язык. И вместе с этим появляются некоторые дополнительные преимущества: система пакетов / модулей, которая является одной из лучших в отрасли, построенная с защитой от условий гонки или доступа к памяти за пределами границ, широкий спектр библиотек и инструментов для улучшения рабочих процессов программистов и многое другое. !

https://github.com/EmbarkStudios/rust-gpu/releases/tag/v0.1

C++, СОСАТЬ!
345 1837993
>>837979
Rust действительно для для особенных людей.

Авторша сабжа @khyperia:

> одна из многих причин, по которым я присоединился к @EmbarkStudios было то, что я устал от того, что почти никогда не работал с меньшинствами или даже с людьми, которые были похожи на меня ... и теперь есть абсолютная группа трансгендеров, работающих со мной над rust-gpu, и это потрясающе

346 1838034
>>837993

>Гы-гы, смотрите, гомик пацаны, гомик

347 1838052
>>838034
Не гомик, а мать твоя членодевка
348 1838071
>>837993
Хипстеры-педики не способны написать ничего толкового.
Толи дело раньше, пара боевых пидарасов написала целый sendmail
349 1838090
>>838034
Не проецируй.

>>838071
К геям нормально отношусь, пидоров не перевариваю. Откуда такая тяга у всех растаманов продвигать свои анальные радости?
350 1840085
>>789061 (OP)
Парни, всем ку. У кого-то осталось фото рабочего стола который постили в треде, или в шапку расто тредов. Там такое ламповое рабочее место, мышка логитеч вертикальная и повернутый монитор. Мб у кого осталось?
351 1840086
>>840085
а, тут последний пост 3 дня назад. Жаль
352 1840094
>>840085
Можно в архивах попробовать поискать, но там не всегда грузятся картинки.
353 1840666
>>837993
Откуда они, сука, все повылазили, пидорасы...
354 1840955
Аноны, докладываю уровень пиздеца. Делаю яху-граббер по типу гвидоновского yfinance , в частности https://github.com/ranaroussi/yfinance/blob/6e52c83d9affc7a8a6a209f83d7482c64b24d67b/yfinance/utils.py#L45

tokio, reqwest, serde, хуйня-малафья.

Дак вот. Пик1 (с записью в файло) - работает, пик2 (запись закомменчена) - нет.

То есть, оно, сука, асинхронно кормит строку serde, и не успевает раньше, чем serde обнаруживает недостачу поля.
355 1841156
>>840955
Так убери async из определения функции блять, или используй комплитеры какие нибудь внутри функции.
356 1841250
>>841156
>>840955
Фу, бля, отбой. Это у яху-финаху рекламные новости идут без поля pubtime, причём реклама эта то есть, то её нет. Мне повезло несколько раз подряд проскочить мимо неё именно когда я решил сохранять выхлоп для дебага.
357 1841359
>>841250
Получается не такая уж и хуйня serde? Помогла тебе поймать баг?
358 1841742
А напомните я чет подзабыл эти новомодные фишечки

let baz = foo?.bar // - если foo будет null, то цепочка чтений на ней и закончится без исключений а baz == null и его дальше надо тоже ставить с проверкой fn1( bar: baz? ) например

let baz = foo!.bar // - если foo будет null, то выполнение в этом месте остановится

так?
359 1841835
>>841742
https://doc.rust-lang.org/edition-guide/rust-2018/error-handling-and-panics/the-question-mark-operator-for-easier-error-handling.html
Нет, ты со свифтом попутал. foo?.bar просто закончит программу ошибкой.
360 1841868
>>841835
Не закончит программу, а вернёт ошибку из функции. Это охуительно разные вещи. Вот `unwrap` закончит программу с паникой.
361 1841869
>>841868
Точнее, развернёт стэк до старта треда или до первого `catch_unwind`, но для мейн треда без `catch_unwind` это закончит программу.
362 1842193
Ананасы, а можно ли провернуть такое:
чтобы прямые зависимости моей приложухи собирались как динамические so-шки? Ну типа, чтобы в release/ валялись отдельно my-app и отдельно hyper.so, serde.so и т.д ?

не поверите, но настолько хуёвый инторнет
363 1843920
>>842193
Очень сложно и где-то рядом там ходит UB. Проще заставить конечных юзеров скачать раст и собрать у них на компе.
364 1844605
>>843920
Конечный юзер, это слабенькая виртуалка где-то в дойчлянде, сборку она не потянет. У меня рядом какая-то стройка, из-за неё, видимо, оборудование оператора эпизодически подташнивает и оно теряет пакеты - закачать через scp цельный кусок на 7Mb становится проблемой. Уже подумываю поднять ftp сервер с докачкой или разбивать файл на куски архиватором.
365 1845111
Анон. Вот скажи мне, если closure является по сути сахаром для структуры, а переменные которые closure использует это поля это структуры. То как так получается, что эта структура не захватывает переменные из окружения в свои поля, и при это не делает memcpy?
366 1845112
>>845111
Уточню, что под переменными которые она использует, я имею ввиду родительское окружение а не аргументы.
367 1845143
>>845112
Полноценное замыкание не выделяет память и не копирует туда значения переменных? Папрашу вас
368 1845150
>>845111
ссылки же
369 1845169
>>845150
Ссылки на стек, который поп и всё?
370 1845181
>>845143
Что значит полноценное? https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=522be7edde68a85b72441afc8c7b60b2
В данном случае замыкание не полноценное?

>>845150
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=b0eb34288b37dcf02824a0cb5a965a23

Вот в данном примере. Если s1 у нас ссылка, то почему код требует явного референса над s1?
371 1845182
>>845181
Я наверное где-то проебался. Рассудите и укажите где.
372 1845221
>>845181
Я немного напутал в первой ссылке. Печатать нужно не кучу а стек.
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=3aedfdaf959d601132ac13c8147ec296

Так или иначе. Это та же s1 что и в родительском скоупе. Она не является ссылкой, и передачи владения не было. Это видно по совпадающим адресам.
373 1845462
>>845111
Если кому-то интересно, мало ли. Раст и правда хранит внутри структуры замыкания ссылку на переменную из родительского скоупа. Вопрос мой был в том, почему внутри скоупа она доступна как объект а не как ссылка на объект. Оказалось, что раст автоматически дереференсит ее для меня. Формально приводя к тому типу объекта которым она является.
374 1845983
>>845221
обе эти ссылки указывают на переменную с1, то есть на стек, в чем вопрос я так и не понял
375 1846014
Напомните, как в расте сделаны escaping closures.
376 1846022
>>846014

>escaping closures


Какая-то swift-only костыльная хуйня, нужная для поддержания плохо сшитых by-design штанов. Ты бы ещё аналог оператора GOTO попросил.
377 1846061
>>846022
Эти штаны называются reference counting по умолчанию, лол.

>>846014
Никак, в расте и других языках без RC (или с RC где для разруливания циклических ссылок и always strong ссылок из замыканий используется как в GC вроде kotlin native/nim/python) нет необходимости в них.
378 1846063
>>846061

>используется GC как в kotlin native/nim/python*

379 1847162
>>846014
Если я правильно понял суть, то создаешь лямбду через move ||. Переменные захватываются по значению и их можно гонять туда-сюда.
380 1848336
>>847162
Нет, не понял. В расте этой хуйни просто нет, потому что лайфтаймы анализируются в компайлтайме и оно тут не нужно.

Оно есть (и нужно) только в свифте (с подсчётом ссылок в рантайме), это такой недокостыль на уровне системы типов, чтобы заставить нюфагов поменьше плодить утечки памяти и не вставлять в язык ещё и гц для таких кеков.
381 1848544
Раст не даст вернуть из функции замыкание, если там ссылка на стековый объект, да? Ну как и паскакаль.
382 1848665
>>848544
Даст, но только на стек одной из предыдущих функций, на стек текущей функции не даст, да, потому что стек текущей функции зачищается на выходе из функции.
383 1848747
Прикольно.
384 1849598
>>848665
пример можно пожалуйста
386 1849745
>>848544

>ссылка на стековый объект

387 1849882
>>849738
(1..=5).into_iter()
388 1849910
>>849882
Ой все.
389 1850070
>>849598
fn foo(x: &i32) -> &i32 { x }

fn main() {
let a = 5;
let b = foo(&a);
}

Здесь в `b` лежит ссылка на стековый объект, но вернулась ссылка из функции ниже по стеку. По очевидным причинам, чтобы вернуть ссылку на объект выше по стеку, надо уже иметь ссылку на этот объект, на структуру с этим объектом внутри, коллекцию со ссылками или ссылку на коллекцию.
390 1850424
>>848544

> Раст не даст вернуть из функции замыкание, если там ссылка на стековый объект, да? Ну как и паскакаль.



>>849738
,
let anon = "Dolboeb";
let f = |n| {
format!("{}) ", n) + anon
};
[1, 2, 3, 4 5].iter().map(f).for_each(|x| println!("{}", x));

Спасибо за релевантный пример, прям то что надо.
391 1850428
>>850070
Нет речь шла об функции возвращающей замыкание хранящего ссылку на объект на стеке
примерно так:
|| {let a: &mut i32 = s; s+=1;}
392 1850439
>>850428
>>848544
Можно вот держи:

fn h() {
let mut r = 7;
h1(&mut r)();
println!("{}", r);
}
fn h1(a : &mut i32) -> impl FnOnce()->() + '_
{
let mut i = move||{*a += 1;};
i
}
394 1854890
Аноны, на растовакансии TR Logic кто-нибудь совался?
Я весной 2019 пробовал, но я тогда только вкатывался, меня на собесе завернули. Там же на собесе я узнал, что у них работа по Utc, что с моим +8 было бы проблематично - ну и не стал больше к ним соваться. Интересно, они бесконечно расширяются, у них текучка, или не нашли ещё тот бриллиант?
395 1855096
>>854890
Когда в команде есть хотя бы 6-7 человек — там скорее всего уже будет текучка с текущими условиями рынка, когда можно получать x1,5-2 к своей текущей з/п каждый год, если ты не отбитый даун из треда вкатышей.

Алсо, могут как не испытывать нужды в кандидате (и просто собеседовать на похуй для отчетности), так и иметь кучу бабла и хотеть ускорить процесс разработки. А ещё могут просто базу собирать чтобы потом её продавать и спамить тем кто в неё попал.
396 1855464
>>855096
Ну, ёпт. Это всё гадания, но неужели никто, кроме меня, не сталкивался? Их вакансия по расту с удалёнкой стабильно висит уже второй год, других-то и нет почти.
397 1856558
>>855464
Пидарки-хрюши отрабатывают команду директора "мы никого не ищем, нам никто не нужен, но если увижу что вы без дела сидите-хуй сосать немытый заставлю".
В итоге сосёшь ты хуй эйчарок.
398 1857334
>>854890
Делали офер, но потом рассказали про анальные условия работы:
Скриншотишь свой экран раз в 30 секунд и в конце рабочего дня отправляешь им архив. Отсутствие на рабочем месте -- штрафы в геом прогрессии. Очевидно такая вакансия будет хоть 10 лет висеть.
399 1857933
Наслушался про ваш раст ебучий, а тут как раз понадобилось написать сервис, генерирующий картинки на лету. Ну, думаю, ща улечу в небеса на крабе. Написал для сравнения на похапе + Amp асинхронный сервис, генерящий png 1000x1000. Выдало где-то 17 rps, думаю - фу, говно. Пишу то же самое на расте - и эта скотина мне полторы секунды такую же картинку генерит через image-rs! Как так-то? Неужели нормальных быстрых конверторов для картинок не завезли? Завтра буду еще биндинги к ImageMagick пробовать, конечно, но чот ппц.
400 1857935
>>857933
Ты не забыл собрать в --release?
401 1857937
>>857935
В релиз не собирал, но неужели такая разница? Простой текст эта шняга отдавала под 40 rps в дебаг-режиме, я уже собирался кончить радугой - и такой облом
402 1857938
>>857937
Попробуй, сравни и расскажешь.
403 1857947
>>857937
Разница ебическая обычно, особенно во всем что связано с графикой.
404 1857958
>>857938
Охуеть, выдало 285 rps. Спасибо, растаны, возвращаете мне веру в человечество!
405 1860514
Решил вкатиться в раст. Что-то пиздец как непросто. Даже когда на перле работал и только изучал, то не был таких потуг. Там в основном пугал синтаксис и его дефолтные переменные.
Решил в pr глянуть. Полтреда срачи на тему вим классный/вим хуита для нитаких, из раста уходят разрабы и языку пизда. И как-то вообще желание пропало учить его.
406 1860555
>>860514
Ну и не учи, в чем проблемы-то?
407 1860759
>>860514

>И как-то вообще желание пропало учить его.


У меня постояно такое
Начинал плюсы, начали появляться навязчивые мысли что он мертворожден
Аналогично с растом

мы поехавшие, сопротивляйся этому
408 1860831
>>860514
Послушай лекции Кладова, он параллельно объясняет почему Раст такой охуенный и нужный
409 1860918
>>860831
Линк?
410 1860936
>>860918
Буквально первая ссылка в гугле

мимо
411 1860937
>>860759
Да, вот есть такое ощущение, что через год раст ТОЧНО ВСЁ!
Да вряд ли он умрет, если только вдруг новые мейнтейнеры не загнут его. Ну вот, опять началось
412 1860941
>>860937
После мозиловских увольнений даже серво кто-то себе под крыло взял. Раст уж точно найдёт куда примкнуть.
413 1861576
>>860941
Можно свой фонд организовать, как у пистона
414 1861818
>>804749

>В Хачкеле асинхронность типа совсем прозрачная, т.к. всё ранится в IO и отдельная async-монадка не нужна


>async-монадка через async/await


>Насколько это монадка и насколько хорошо она играет с растовскими правилами владения


Для начала тебе нужно понять что такое монада
415 1862561
>>860941
Эксперимент, видимо, закончен.
Самое забавное, тонну времени назад, тут бегали шизики, которые говорили что на таких началах раст захлебнется. Только тогда говорили что проблема не в сжв, а хипстерах.
416 1862622
Скажу честно, когда появился Rust я выдохнул с облегчением. Наконец-то Ruby перестал быть самым гейским ЯП.
417 1862643
>>862622
А как же свифт и жс?
javascript2.jpg482 Кб, 750x500
418 1862664
419 1862665
>>862643
>>862664
Жс это скорее панки
420 1862668
>>862665

>Жс это скорее панки


лолчто
unnamed.jpg48 Кб, 415x512
421 1863134
>>862664
>>862665
На пике очевидные плюсовики. А тонкая пост-постироничная шутейка как бы отдаёт дань уважения пикрил.
422 1864080
Так что случилось с растом, создали фонд или все ливнули?
IMG20201123212222272.jpg145 Кб, 1145x1280
423 1864098
https://www.roi.ru/71821/

Признавайтесь, кто затроллил РОИ?
424 1864267
>>857933

>генерящий png 1000x1000. Выдало где-то 17 rps, думаю - фу, говно.


Изучил я значит этот вопрос, возможно на пыхе хуйово оптимизирован пнг енкодер. Нужно было попробовать отключить компрессию. Сделал то же самое на пщ, с включенной компрессией 1000х1000 - выдало 15 rps. Если её выключить выходит 170-200 на разных машинах. А если ещё и использовать более оптимизированные алгоритмы то станет ещё лучше.
425 1864321
>>864267
А на расте-то с компрессией или нет?
Алсоу, ты уж засеки вчистую, сколько микросекунд занимает собственно генерация одной картинки в один поток.
426 1864415
14 постов за 14 дня. Лучше не делайте перекат. Тред мертв. Яызк тоже
427 1864443
>>864415
Каждый тред одно и тоже...
Странный ты конечно человек
428 1864532
>>864321
Да хуй знает что там в расте, я просто мимо проходил. Чтобы сгенерить одну пнг вышло 3.693 [ms] (mean). Кстати нашел ещё один bottleneck, попробуй в пыхе оптимизировать рандомную генерацию байтов. В моем случае го это ускорило с 32.301 [ms] до 3.543 [ms] (per request).
429 1866339
Тред не читай, сразу отвечай!

> Amazon: We're hiring software engineers who know programming language Rust


https://www.zdnet.com/article/amazon-were-hiring-software-engineers-who-know-programming-language-rust/
430 1868104
Нигде не могу найти объяснение такой штуке:
почему при определении диапазонов (например, 1..10) левое значение берется какое есть, а правое - меньше на единицу. Почему решили так, а не сразу вписывать нужные границы, что было бы очевиднее простым смертным
431 1868113
>>868104
Попробуй 1..=10
По поводу почему, например потому что индексы с нуля начинаются и 0..10 — это десять элементов, а не 11, как бы было с твоей хотелкой.
432 1868114
>>868104
Традиции. Предполагаю что из-за сишного
for(int i=0; i<10; i++)
433 1868122
>>868114
спасибо, думал там есть может какое-то обоснование почему именно так сделано
1605205174100.png181 Кб, 594x990
434 1868161
>>868104
Везде где есть рейнджи сделано именно так.
435 1868165
>>868161
В julia не так, в луа сорт оф есть рейнджи и тоже не так.
436 1868172
>>868161
Чето тоже хотел про ренжи написать
Одна (<) операция банально проще (<=)
(..N) просто нужно читать как "до значения меньше N"
Написав (1..99).step_by(2) на 99 применяешь это одно X < 99 действие и выходишь и лупы
Если считать включительно, то или лишняя проверка равенства на каждый шаг, или лишний степ на лупе (плюс возмжный на старте), что не так логично
437 1868188
>>868165
Этих нахуй, они поехавшие.
438 1868197
>>868188
сейчас бы записывать в поехавшие самый быстрый скриптовый язык
439 1868200
>>868197
При чем тут го?
440 1868204
>>868197
При чём тут скорость?
441 1868424
Я тут решил книгу по расту почитать и первый же пример меня в ступор ввел.

io::stdin().read_line(&mut guess).expect("Invalid input");
let guess: u32 = match guess.trim().parse() {
Ok(num) => num,
Err(_) => continue,
};

Ок, про парсинг это очевидно, читаем и возвращаем ошибку или успех. Но что-то до меня не доходит, почему в случае некорректного ввода чтение строки продолжается? Как мы это сообщили? Ведь с матче ничего про это не сказано.
442 1868427
>>868424
А, я инвалид просто. Уже не важно.
443 1868436
>>868427
Жду тебя, когда в этой книге до срезов дойдешь.. )
444 1868446
>>868436
Да я просто еблан. Не привычно видеть такой запись циклов, вот и не обращал внимания и разобрать пытался
445 1868454
>>868424
Для меня эта запись этой задачи выглядит как максимально лаконичная из всех возможных, лол
На каких языках ты до этого писал?
446 1868455
>>868454
perl и python использую сейчас, delphi когда то давно
447 1868460
когда используешь #![no_std] там нечем вывод на экран осуществить?
448 1868464
>>868460
Ну С ффишить можно без std
449 1872507
Не являюсь программистом по профессии, но очень много кодил. Иногда есть потребность в низкоуровнем языке (а к плюсам немного выгорел), скажите, насколько раст еще актуален и есть у него будущее?
450 1872922
Непонятно почему раст так мало популярен у сишников, яп намного комфортнее динозавра С++.
image.png19 Кб, 350x249
451 1873109
В предположении, что render не изменяет размер вектора и не дропает его, а slice принадлежит C++ коду, насколько это плохая идея? Что может пойти не так?
Делать копию не хочу, потому что медленно и отнимает гигабайты памяти.
452 1873112
>>872922
Уродливый синтаксис, отсутствие инфраструктуры, высокий порог вхождения, не то что кресты.
453 1873144
>>873112

> высокий порог вхождения


Из-за чего? Из-за лайфтаймов и move? Это сильно мешает кодить?
454 1873268
>>873109
Если тебе не нужен ресайз, то зачем тут вектор? Если нельзя через слайс, то лучше вектор преаллоцировать из Раста, а потом в эту память писать из плюсов.
455 1873275
>>873268
Вектор потому, что thirdparty хочет вектор.
Плюсы тоже сторонние и сами аллоцируют память.
456 1873369
>>872922

> Непонятно почему раст так мало популярен у сишников, яп намного комфортнее динозавра С++.


1) популярность растет, но медленно
2) большая стандартная либа, не везде удобно пихать, даже у плюсов в два раза меньше, не говоря про чистую сишечку
3) пока что ебатня с кроссплатформой: если для C/C++ можно просто без задней мысли кинуть код в android studio и скомпилировать (может с какими-то правками по c++stl для особых случаев), то в расте пока что не так комфортно писать кроссплатформу (даже с использованием rust-sdl)
457 1873407
>>872922
Сырость библиотек и инфраструктуры. Стандартная либа работает не везде, альтернативы нет

Идеологические различия - сишка это просто, сишка это прозрачно - с помощью присталього взгляда можно понять во что кусок кода конпелируется
458 1873465
>>873369

> Большая стандартная либа


А вот почему она такая?
Сложно уменьшить?
459 1873965
>>873275
Звучит как ёбаный ад, но если вектор правда не будет дропаться, то, наверное, заработает. Можешь попробовать переопределить в Расте глобальный аллокатор чтобы пробрасывать плюсовые функции.
460 1874122
>>873275

> thirdparty хочет вектор.


Странно. Отправь иссуе.
461 1874252
>>873965>>874122
Нашел коммент автора, нужное мне апи появится в следующей версии.
462 1874499
>>873465
>>873369
Кстати, насчёт либы: а нельзя ли разбить её на кучу крейтов и подтягивать только действительно нужные?
463 1874704
>>874499
Всё ненужное и так линкер выкинет.
464 1874865
>>874704
Чё-та я сомневаюсь, что жирные бинари по неск Мб даже после всех стрипов, panic = "abort" и прочего содержат действительно всё только нужное.
Возможно я неправ, не шарю в тонкостях линковки
465 1874938
В языке по умолчанию всё подряд мономорфируется, в результате чего каждый derive может развернуться в простыню. Но тут проблема скорее в любви к абстракциям над абстракциями, чем в языке или стандартной либе.
466 1875280
Почему исполняемые файлы такие большие, это можно исправить? https://lifthrasiir.github.io/rustlog/why-is-a-rust-executable-large.html прочитал это, и все равно не помогло - простая программа весит мегабайты. Можно написать что-нибудь в Cargo.toml что-бы он линковал библиотеки динамично для дебажного билда, а для релиза статично?
467 1875471
>>875280
Динамическая линковка — это FFI.
468 1875542
>>875471
Ну, если ты это делаешь вручную, то да. А если конпелятор уже знает, что в этой сошке по вот этому адресу лежит такая-то safe функция, то какая разница?
Я даже думаю, что со временем такую возможность запилят.
469 1875552
>>875280
А файлы-то как раз небольшие. Хеллоуворлд на Сях со статической линковкой (gcc -s -static -Os hello.c -o hello, gcc 9.3.0 под ubuntu 20.04) уже дополз до 800 килобайт. А ведь мои седые яйки помнят смазливых дельфистов, которых можно было невозбранно унизить за их систему виджетов, занимавшую аж целых 400КБ.
470 1876189
>>875280
Можно засунуть в переменную окружения RUSTFLAGS "-C prefer-dynamic"
471 1876329
>>875280
Программа может еще много весить из-за дженериков и прочего пиздеца, я бы на твоем месте сначала посмотрел на дженерики в коде и либах.
472 1876330
>>873407

> Идеологические различия - сишка это просто, сишка это прозрачно - с помощью присталього взгляда можно понять во что кусок кода конпелируется


Конечно можно, вот открываю исходный код линукса/ллвм/гцц и любуюсь на макросы, все сразу понятно и ясно, не то, что ваш убоший раст!
473 1876331
>>873112

> не то что кресты.


ВЫУЧИЛ С++
@
УХ НАКОНЕЦ НАЙДУ РАБОТУ
@
НИКУДА НЕ БЕРУТ
@
ОПЫТ РАБОТЫ 3+ ЛЕТ
@
СТАЖЕР ПОЛУЧАЕТ МЕНЬШЕ СТАЖЕРА-ПИТОНИСТА
@
НУ ЛАДНО, ПОЙДУ ХОТЯ БЫ ТУДА
@
ПЕРВАЯ СЕРЬЕЗНАЯ АРХИТЕКТУРА ПО
@
СПУСТЯ ДОЛГИЕ НОЧИ МУЧЕНИЙ НАКОНЕЦ-ТО СПРОЕКТИРОВАЛ И НАКОДИЛ
@
w: СЕГФОЛТ
@
ОКАЗАЛОСЬ, ЧТО АРХИТЕКТУРА НЕ БЕЗОПАСНАЯ
@
ПЕРЕПИСЫВАЕШЬ
@
go w
@
...
@
ПЕРЕПИСАЛ, СДАЛ
@
ДОВОЛЬНО ПОЛУЧИЛ СВОИ ХЛЕБ И СОЛЬ
@
ВСЕ ЕЩЕ СЧИТАЕШЬ, ЧТО С++ ПРОЩЕ РАСТА
473 1876331
>>873112

> не то что кресты.


ВЫУЧИЛ С++
@
УХ НАКОНЕЦ НАЙДУ РАБОТУ
@
НИКУДА НЕ БЕРУТ
@
ОПЫТ РАБОТЫ 3+ ЛЕТ
@
СТАЖЕР ПОЛУЧАЕТ МЕНЬШЕ СТАЖЕРА-ПИТОНИСТА
@
НУ ЛАДНО, ПОЙДУ ХОТЯ БЫ ТУДА
@
ПЕРВАЯ СЕРЬЕЗНАЯ АРХИТЕКТУРА ПО
@
СПУСТЯ ДОЛГИЕ НОЧИ МУЧЕНИЙ НАКОНЕЦ-ТО СПРОЕКТИРОВАЛ И НАКОДИЛ
@
w: СЕГФОЛТ
@
ОКАЗАЛОСЬ, ЧТО АРХИТЕКТУРА НЕ БЕЗОПАСНАЯ
@
ПЕРЕПИСЫВАЕШЬ
@
go w
@
...
@
ПЕРЕПИСАЛ, СДАЛ
@
ДОВОЛЬНО ПОЛУЧИЛ СВОИ ХЛЕБ И СОЛЬ
@
ВСЕ ЕЩЕ СЧИТАЕШЬ, ЧТО С++ ПРОЩЕ РАСТА
474 1876336
>>876329

>из-за дженериков


По-твоему раст собирает все возможные варианты функций для всех возможных типов, удовлетворяющих дженерику? Ты чего-то не того поел.
475 1876353
>>876330
Это очень крупыне проекты, своя специфика, и они были бы рады перейте на Rust

>>876336
Когда либа конпеляется, емнип, она код дженериков оставляет as is, чтобы эти функции можно было конпелировать в твоем приложении с неизвестными на этапе сборки либы типами
476 1876392
>>876353
Дык, либа, работающая с неизвестными на этапе сборки типами, это что-то из мира жабы и питона.
477 1876947
>>876353
Вот действительно - в крестах можно засунуть в хедер файл библиотеки тело шаблонной функции, что-бы она компилировалась вместе с программой. Можно ли так в расте? Вроде там есть для этого тип сборки
478 1877114
ебать, хелуворлд на 20 метров. спасибо, идите нахуй.
479 1877115
>>876330
линукс пишут пидарасы, и главного зовут лёня у их там.
480 1877138
>>877114
у меня на винде 150кб
15475619901409476.jpg131 Кб, 420x280
481 1877568
Аноны, а вас не смущает, что в последнее время даже зашкварные Кресты показывают больший прогресс, чем ваш Ржавый?

Сейчас смотрю достижения C++20 и вижу там корутины, концепты и compile-time функции, всё уже готовое к продакшну.
Раст же только 2 года назад стабилизировал ебаные интринсики под x86, а вот aarch64 не юзабелен даже в nightly блеать, и его даже в планах нет.

Нахуа нужен язык, который даже в далеком будущем будет сомнителен со своими злоебучими лайфтаймами, и при этом не особо-то в это светлое завтра торопится? У меня, блять, ощущение, что у пидаров из Мазилы вся надежда на то, что придёт какой-то купившийся на их пропаганду долбоёб и сделает за них всю работу.

И что толку от языка, который по скорости разработки вровень к говну мамонта++, и уже годы при этом не может его толком заменить? Помню, предыдущая попытка заменить Кресты была в виде Dlang - тот тоже 10 лет топтался на месте прежде чем на него все забили. Может быть, он был нам предупреждением?
482 1877685
>>789061 (OP)

>dvach-02.webm


Есть сорцы?
484 1877780
>>877568
У меня еще много лет назад было сомнение, что перекладывать на программиста "сборку мусора" в виде лафйтаймов не лучшая идея. У меня было предположение, что сложность будет расти со сложностью программы, но доказать я этого не мог и не хотел.

Так что получилось, кто снял розовые очки, скажите, как раст пригоден в разработке крупного ПО?
tjwl3d22p5461.png199 Кб, 2162x1334
485 1877802
486 1877813
>>877780

> как раст пригоден в разработке крупного ПО?


По-моему, крупного ПО (500KLOC+) на нём как не было, так и нет, так что всё чисто гипотетически. Точно могу сказать, что:

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

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

Вместе это дает хороший задел на повторное использование кода, в противовес тому убожеству, что мы сейчас имеем в C++ и Go.

Но вот сам язык это пиздец - в нём нет lts релиза, в нём что-то постоянно ковыряют по мелочи, а важные фичи годами не вылезают из nightly. Положиться на него вообще нельзя - со временем неизбежно понадобится какая-нибудь nightly фича, и придется искать альтернативу среди библиотек, и трястись, чтобы с неё можно было перелезть на стандарт когда поспеет.

Как мне кажется, был бы язык с меньшими амбициями - что-нибудь уровня Go с вменяемыми дизайн-решениями - он бы сейчас Ноде трубу шатал. Ну а сейчас это все равно что дом без крыши, куда его такой?
487 1877817
>>877780
Ещё насчет сборки мусора.

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

На бешеном многопотоке всё, конечно будет люто неэффективно (это можно несколько сгладить софтовыми транзакциями), но для 99% софта это означает почти полную безопасность (за исключением возможных утечек памяти) при потере производительности, эквивалентной одному-двум поколениям процессоров. И никакого 3x потребления памяти или бешеного stop-the-world. Кмк, вполне нормальный компромисс.
488 1877886
А тем временем, пока гондоти пропукивают буквы отдельными дравколами, у движка rg3d появился инстансинг.

https://twitter.com/DmitryNStepanov/status/1328797761874046977

https://rg3d.rs/
489 1877888
>>875552

>было невозбранно унизить за их систему виджетов, занимавшую аж целых 400КБ



Во времена шиндовс 9х, 7 делфи и 16-32 метров рамы это действительно было актуально.
490 1877890
>>877817

на бешенном многопотоке кроме как shared nothing в принципе ничего толкового не работает и все эти парадигмы мультитредингового программирования именно про "ООП-рыбку съесть и на бутылку не сесть".

Хотя ООП-рыбку есть не нужно а нужно конкретно и долго продумывать архитектуру и бизнес-логику что бы было shared nothing.

Но поскольку долго и вдумчиво зашквар, а рыночек так порешал что нужно быстро быстро и хуяквпродакшн, то имеем что имеем.
491 1877955
>>877888
Шиндовс 95 был уникальной системой: на среднем писюке своего времени с 4МБ оперативки он работал прямо из свопа (после загрузки оставалось как раз те самые 400КБ). Смешной факт: штатно в этой системе нечем измерить объем свободной памяти. Потому что МС знают, что если бы было чем, то их бы ждали УНИЖЕНИЯ. А Дельфы 7 вышли в 2002, тогда меньше 32МБ уже было редкостью, всё больше 64-128. Короче, технических причин ненавидеть большие бинарники не было, просто мы тогда были злобными песдюками :)
492 1878315
>>877719
Благодарю
493 1878425
>>857334
пруфы схоронил?
494 1878936
>>877802
Лол, замерте еще длину члена у сишников и ржавых, что за ебо стыд.
495 1879005
>>878936
Сидит мужик дома утром с бадуна, башка болит, денег нет. У жены просить бесполезно... Вдруг обращается к жене и говорит: — Маша, а ты читала вчера в газете о новой клинике? — Какой еще клинике? — А тут открыли новую клинику: переделывают члены на любой вкус. Всего 50 рублей стоит... — Да что ты говоришь?! На вот 50 рублей, иди и сделай себе подлинее. Мужик довольный, оделся, выходит, в дверях его останавливает жена и даетеще 50: — И попроси, чтоб еще потолще сделали. Мужик вышел, прошел с десяток метров, жена кричит с балкона: — Стой! Вот тебе еще полтинник, пусть сделают, чтоб еще изогнутый был, как в том немецком кино... Ну, приходит вечером мужик домой, бухой. Не успел порог переступить, а жена уже на него: — Ну что?! — Ох, Маша, не поверишь — такого красавца сделали: дли-и-инный, то-о-олстый... Начали гнуть — сломался! anekdotov.net
496 1879016
Как в расте создать массив в функции и вернуть его?
498 1879090
>>879042
Жесть, возвращение без точки запятой, это же лютый треш и возможность wtf-ошибки по типу "==".

Я уже не говорю о возможности пересоздать переменную с тем же именем, опять же, банально на человеческом факторе и усталости можно словить лютую жопу, как в каком-нибудь динамическом языке.
499 1879135
>>879090

>Жесть, возвращение без точки запятой, это же лютый треш и возможность wtf-ошибки по типу "==".


wat?

>Я уже не говорю о возможности пересоздать переменную с тем же именем


чиво блять?
500 1879140
>>879135

>wat?


>чиво блять?


К - конструктивный диалог
501 1879142
>>879090
Некоторые языки пиарятся что победили косяк "==" с человеческим фактором. А язык, который позиционирует безопасность, привносит сразу два а может и больше аналогичных костыля.

Очередная недальновидная хипстота а сейчас уже модное СЖВ гробит неплохой проект. Ведь тусовка важнее идеи.
502 1879145
>>879140
Тупой что ли?

>>879090

>Жесть, возвращение без точки запятой, это же лютый треш и возможность wtf-ошибки по типу "==".


Wat?

>Я уже не говорю о возможности пересоздать переменную с тем же именем, опять же


Каким образом?

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


Чиво?

Столько выебонов как будто ты что то понимаешь.
503 1879146
>>879142

>Некоторые языки пиарятся что победили косяк "==" с человеческим фактором.


Какой блять еще косяк "=="?

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


Иди лучше уроки учи, завтра в школу.
504 1879149
>>879042
А вектор как вернуть?
505 1879150
>>879042
А если ты не знаешь кол-во элементов в массиве?
506 1879152
>>879142
>>879090
>>879016
>>879149

>Как в расте создать массив в функции и вернуть его?


>А вектор как вернуть?


>Жесть, возвращение без точки запятой, это же лютый треш и возможность wtf-ошибки по типу "==".


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


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


>Очередная недальновидная хипстота а сейчас уже модное СЖВ гробит неплохой проект. Ведь тусовка важнее идеи.


LOL, школьник не знающий как возвращать значение рассуждает о дизайне языка.
507 1879205
>>879150
это пока нельзя, только если забоксишь слайс
509 1879335
>>879090

>Жесть, возвращение без точки запятой, это же лютый треш и возможность wtf-ошибки по типу "==".



Только в последней строчке блока, это случайно не сделать.
510 1879517
image.png63 Кб, 859x268
511 1879614
>>877780
https://github.com/flamegraph-rs/flamegraph

Есть вот такое мнение, например. Собсно, я у себя так и ебошу clone() при каждом затруднении.
512 1879632
>>879614
Это дорого же
513 1879640
>>879152
Ты смержил двух анонов.
Хуже нет для сообщества, когда оно из таких вот фанатиком.
Этот анон хотя бы пояснил.
>>879335
514 1879645
Я так понял в расте исключений нет, ошибки тоже как гоферы вверх перекидываете?
515 1879676
Говорят, что раст - это про байтоебство и не для пушек, бомб, отвалов жопы

Ваши аргументы?
516 1879785
>>879645
Да, но есть сахарок чтобы можно было писать()?.ванлайнеры()?.
517 1879788
>>879676
Ну понятно, язык в котором два типа String::from("строк"), просто потому что так системно удобнее, чем практичнее. Или язык который возложили подобие гц через лайфтаймы на плечи программиста. Нужен он для чего еще, когда есть уже языки которые дают более лучший контроль на системном уровне и где ты сам можешь решить когда собрать свой мусор?
518 1880080
>>879788
Гц через лайфтаймы на плечах конпелятора, а не программиста - это важный нюанс. И можно от него отказаться используя обёртки для счетчиков ссылок, прописывая статические лайфтаймы или поиграть с трейтами.

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

Кто даст тебе лучший контроль на системном уровне вместе с гарантиями этого контроля?
519 1880120
Дорогой анон, помоги мне пожалуйста. Только начал ковырять rust и уже с час ебусь с какой-то элементарной задачей. Есть код https://pastebin.com/z8hRZ7fm , линтер ругается на 26 и 31 строки "cannot move out of `self.left` which is behind a shared reference; move occurs because `self.left` has type `std::boxed::Box<dyn Expression>`, which does not implement the `Copy` trait". Вопрос что мне делать?) Как лучше разрешить проблему? Если я добавляю имплементацию Copy, то линтер ругается на другие строки, и говорит, что Copy требует Syzed. Можете ссылочку там кинуть, где можно с вот этим всем разобраться
520 1880121
>>880120

> cannot find struct, variant or union type `Number` in this scope


Положи на https://play.rust-lang.org/ так, чтобы мы видели твою ошибку.
Тред утонул или удален.
Это копия, сохраненная 20 апреля 2021 года.

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

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