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

Ответить в тред Ответить в тред
Rust #14 /rust/ /rust/ Аноним 21/07/20 Втр 13:23:38 17566931
1.png 36Кб, 256x256
256x256
2.png 115Кб, 500x790
500x790
3.jpg 36Кб, 638x479
638x479
4.png 38Кб, 1207x826
1207x826
Аноним 21/07/20 Втр 13:24:50 17566962
5.jpg 33Кб, 638x479
638x479
6.jpg 36Кб, 638x479
638x479
Аноним 21/07/20 Втр 13:26:03 17566983
Аноним 21/07/20 Втр 13:26:50 17566994
изображение.png 38Кб, 480x383
480x383
И так, что мы имеем, в предыдущей серии школотрон обосрался с шейдерами GeForce 3, украл мою зарплату за 3 месяца и запретил мне купить и вставить geForce 256 и 32 метра оперативы SDRAM.

Аноним 21/07/20 Втр 13:28:28 17567005
Кто может дать советы по дилляциям? Как лучше разрабатывать свою новую вагину? Я думаю тут будет много опытных.
Аноним 21/07/20 Втр 13:34:20 17567036
>>1756696
Почему написано borrowing если его нет на пике?
Аноним 21/07/20 Втр 13:34:31 17567047
>>1756678 →
>ПЕРЕВЕДУ СТРЕЛКИ НА КВЕЙК.
Мань, я с этого разговор с тобой начал. Ты написал "Уже рендер Q3 был красив, но морально устарел - в видеокартах начали появляться шейдеры и пошел спрос на попиксельное освещение". Спрос на попиксельное освещение в 1999 году. Охуенно. А остальное уже твои доебки до терминов, потому что ничего другого тебе не остается, кроме как пиздеть уже до конца и выдумывать на лету конфигурацию своей пеки, с купленной в 1998 AGP карточкой и неумением проапгрейдить процессор (зато с умением в бампмаппинг).
Аноним 21/07/20 Втр 13:35:39 17567068
>>1756703
Ты просто тупой С++-дебил, небось ещё и негей. А он умный растобоярин и возможно любит под хвост. Уходи, гомофоб.
Аноним 21/07/20 Втр 13:36:07 17567079
>>1756693 (OP)
>императивный язык без системы эффектов
>safety

что-то кек
Аноним 21/07/20 Втр 13:36:53 175670910
>>1756707
В нём зашито в синтаксисе 3.5 эффекта. Шах и мат!
Аноним 21/07/20 Втр 13:39:37 175671411
>>1756698
А какие игры они сделали? Не обязательно на расте. Нашел только скрин из УЕ4.
Аноним 21/07/20 Втр 13:41:09 175671612
>>1756707
Ты еще не видел сколько тысяч unsafe у них в стандартгной либе.
Аноним 21/07/20 Втр 13:47:09 175671913
>>1756716
Не просто ансейф-код, у них там оффициальный UB есть и они об этом знают:
https://doc.rust-lang.org/src/std/io/mod.rs.html#381
> // - This creates a (mut) reference to a slice of
> // _uninitialized_ integers, which is undefined behavior
> //
> // - Only the standard library gets to soundly "ignore" this,
> // based on its privileged knowledge of unstable rustc
> // internals;
А всё из-за говнотрейта Read, который рассчитан на использование только с инициализированным буфером (т.е. на выбор два стула - либо медленное чтение с предвалительным заполнением буфера нолями, либо быстрое но с UB). При том ВСЕ кто его используют с неинициализированным буфером (включая оффициальный код из библиотеки выше) по сути делают UB. И такого кода на самом деле очень дохуя.

Уже пытаются сделать мегакостыль, чтобы хоть как-то это говно исправить: https://github.com/rust-lang/rfcs/pull/2930
Аноним 21/07/20 Втр 13:48:24 175672014
изображение.png 5043Кб, 1200x1600
1200x1600
>>1756704

> с купленной в 1998 AGP карточкой

Прикинь, там даже на мамке даже USB порты были, 2 штуки. В 98 году, да. Компутахтор новый был, из магазина, бате тогда как раз за пару месяцев перед черным вторником бабос в конверте баксами дали, ну вот они с мамкой и купили пекарню для учебы. Потом я в силу своих финансовых возможностей проапгрейдил. Поскольку проц меня устраивал (менять на P2 когда уже вовсю анаонсировали 370 сокет чет шило на мыло, а на пень 3 вместе с матерью и видюхой денег не было) а видюха - нет, то все деньги ушли на GF256 и плашку на 32.

И да, вот такая у меня мать была:

Аноним 21/07/20 Втр 13:48:59 175672215
Аноним 21/07/20 Втр 13:58:06 175672816
>>1756693 (OP)
4 пик умышленное вранье, все же видели что по бенчмаркам у Раста и плюсов паритет.
Аноним 21/07/20 Втр 14:00:42 175673117
>>1756728
В скорости паритет, но не в безопасности.
Аноним 21/07/20 Втр 14:00:46 175673218
>>1756728
>4 пик умышленное вранье, все же видели что по бенчмаркам у Раста и плюсов паритет.

У крестов сейчас лучше оптимизон, чем у сей.
Аноним 21/07/20 Втр 14:01:18 175673319
>>1756731

RAII, смартпойнтеры, вот и будет безопасность.
Аноним 21/07/20 Втр 14:01:33 175673420
>>1756731
Так ты посмотри Rust поставили даже выше Си.
Аноним 21/07/20 Втр 14:01:51 175673621
>>1756728
В чём вранью. На оси ординат не просто перформанс, а контроль делённый на перформанс. Т.е. чем перформанс выше, тем язык должен быть на этой оси ниже при одинаковом контроле. Чем выше язык, тем либо выше контроль, либо ниже перформанс, либо оба. Очевидно пик создавался поехавшими хаскеллоёбами.
Аноним 21/07/20 Втр 14:02:21 175673722
>>1756703
Я вообще запостил это для демонстрации синтаксиса, но борроуинг и овнершип очень близкие концепты. Это слайд из какой-то лекции или вроде того.
Аноним 21/07/20 Втр 14:02:54 175673823
>>1756733
>RAII
>смартпойнтеры
В расте из коробки без свистоперделок
Аноним 21/07/20 Втр 14:03:14 175673924
>>1756728
По safety тоже наёб. В других языках нет всяких unsafe.
Аноним 21/07/20 Втр 14:03:56 175674025
>>1756739
В жяве кстати ансейфы есть.
Аноним 21/07/20 Втр 14:04:00 175674126
>>1756734
У тебя беды с глазами, они равны.
Аноним 21/07/20 Втр 14:05:16 175674327
Аноним 21/07/20 Втр 14:05:54 175674428
1482527565640.png 42Кб, 1207x826
1207x826
>>1756741
Я знаю что они равны, ты угараешь что ли? На пике не равны.
Аноним 21/07/20 Втр 14:06:17 175674529
Почему раст на ОП-пике безопасней жавы? Объясняйте. И да, утечки памяти в растомирке не являются чем-то плохим и есть куча безопасных способов их достичь. И кроме утечек я ничего плохого в жаве с точки зрения безопасности не знаю.
Аноним 21/07/20 Втр 14:06:45 175674630
Аноним 21/07/20 Втр 14:07:41 175674731
>>1756746
Остаётся только хаскель? Или там тоже можно на ансейфничать?
Аноним 21/07/20 Втр 14:08:05 175674832
15953270189433.png 40Кб, 1207x826
1207x826
>>1756744
> Rust поставили даже выше Си
Я про пик и говорю. На пике они равны.
Аноним 21/07/20 Втр 14:08:48 175675033
>>1756747
Не знаю насчет ансейфов, но если нужен перформанс, то они кучу странной хуйни из библиотек достают. Может и ансейфы тоже.
Аноним 21/07/20 Втр 14:09:13 175675134
>>1756747
Не так, но тоже можно. Поэтому тоже на свалку.
Аноним 21/07/20 Втр 14:10:11 175675235
1464685590691.png 42Кб, 1207x826
1207x826
>>1756745
Соглы. Пофиксил, без маркетологового булшита уже не так радужно.
Аноним 21/07/20 Втр 14:11:08 175675336
>>1756750
Ну я так думаю, что IO без ансейфов никак не сделать, ибо придётся в любом случае вызывать АПИ конкретной системы.

Значит остаются только хардварные имплементации языков без небезопасных операционных систем, небезопасного ассемблера и прочего говна.
Аноним 21/07/20 Втр 14:13:21 175675537
>>1756745
>>1756752
Вы сами с собой разговариваете? В треде всего 7 постеров.
Аноним 21/07/20 Втр 14:15:31 175675638
>>1756755
Я вообще считаю, что все кто ненавидит раст - это на самом деле один человек, который умеет писать на куче языков и непрерывно поносит этот прекрасный язык по всему интернету.
Аноним 21/07/20 Втр 14:15:56 175675739
Аноним 21/07/20 Втр 14:16:14 175675940
haskell.png 40Кб, 1207x826
1207x826
>>1756752
Соглы. Пофиксил, без маркетологового булшита уже не так радужно.
Аноним 21/07/20 Втр 14:23:32 175676241
Аноним 21/07/20 Втр 14:27:59 175676342
4312.jpg 43Кб, 1207x826
1207x826
>>1756759
Хуёво исправил. Вот окончательный вариант.
Аноним 21/07/20 Втр 14:31:51 175676743
>>1756759
>эта боль растосектанта
Аноним 21/07/20 Втр 14:32:53 175676844
>>1756756
Здесь никто не "ненавидит" раст.
Писать правду, даже неприглядную != ненавидеть.
Аноним 21/07/20 Втр 14:35:01 175676945
>>1756768
Всем похуй на твою версию правды. По нашей версии правды раст - самый быстрый и безопасный язык когда либо созданный в этой вселенной, а все кто не согласны - растофобы, расисты, нацисты и хуже гитлера. Вы просто ненавидите раст, потому что вы фашисты. Вся ваша суть существования - это ненависть ко всему вокруг.
Аноним 21/07/20 Втр 14:56:11 175678046
Какой же ахуенны тред, перекатили полтора часа как а уже на десятую часть заполнили, скоро так /зк/ до /б/ по продуктивности постинга выйдем, лол.
Аноним 21/07/20 Втр 14:56:31 175678147
>>1756769
блять ахахха нахуй
Аноним 21/07/20 Втр 14:56:33 175678248
Аноним 21/07/20 Втр 15:02:59 175679049
1592248449191.png 46Кб, 1207x826
1207x826
>>1756752
Соглы. Пофиксил, без маркетологового булшита уже не так радужно.
Аноним 21/07/20 Втр 15:04:14 175679150
>>1756780
> Какой же ахуенны тред, перекатили полтора часа как а уже на десятую часть заполнили, скоро так /зк/ до /б/ по продуктивности постинга выйдем, лол.
При том, что в треде всего 9 постеров.
Аноним 21/07/20 Втр 15:05:26 175679451
Аноним 21/07/20 Втр 15:06:50 175679652
1460669687956.png 12Кб, 434x159
434x159
Аноним 21/07/20 Втр 15:07:46 175679853
256335899669b36[...].jpg 18Кб, 320x180
320x180
>>1756790
Всё правильно. Rust вне конкуренции. Он над игрой.
Шконка - это новый пллюсодебильный язык?
Аноним 21/07/20 Втр 15:14:27 175680354
220px-Rustacean[...].png 9Кб, 220x147
220x147
>>1756769
>раст - самый быстрый и безопасный язык когда либо созданный в этой вселенной
Немного пафосно, но в целом верно.

>растофобы, расисты, нацисты и хуже гитлера. Вы просто ненавидите раст, потому что вы фашисты
Я думаю всё гораздо проще. Они просто тупые.

>Вся ваша суть существования - это ненависть ко всему вокруг.
А это прямо в точку, посмотреть хотя бы на царешиза.
Аноним 21/07/20 Втр 15:35:21 175681155
1553239798358.jpg 319Кб, 3000x2000
3000x2000
Аноним 21/07/20 Втр 15:57:59 175683256
1478619572984.jpg 338Кб, 3000x2000
3000x2000
Аноним 21/07/20 Втр 17:48:06 175690257
>>1756769
>самый быстрый
Когда LLVM в state-of-art оптимизации gcc научится, тогда и приходите. Бенчмарки сейчас это битва говна и мочи, и можно легко подобрать ситуацию, в которой один язык с перевесом одолеет второй (даже если это Haskell против C).

А самым быстрым он быть не может, т.к. ассемблер ничто не обгонит.

>безопасный
До пруверов и даже хацкеля ему очень далеко.
Аноним 21/07/20 Втр 18:11:09 175692358
>>1756902
>До пруверов и даже хацкеля ему очень далеко.
Скорее пруверам и хачкелю до полезности раста далеко, лел.

>state-of-art оптимизации gcc
Такое вот "искусство" заканчивается ругающимся Торвальдсом если повезёт, а если нет — поломкой половины мира и последующими анальными граблями ещё на несколько лет.

>А самым быстрым он быть не может, т.к. ассемблер ничто не обгонит.
Ну так ассемблер это даже и не язык программирования.
Аноним 21/07/20 Втр 18:13:53 175692659
>>1756923
>Скорее пруверам и хачкелю до полезности раста далеко
Действительно, они сильно полезнее нуля.
Аноним 21/07/20 Втр 18:14:10 175692760
>>1756902
>LLVM
В этом смысле Rust и C/C++ в одной лодке.

> в state-of-art оптимизации gcc научится
А причем тут gcc? Не уловил твою мысль. Хотя понимаю, что это просто подъёбка

>даже если это Haskell против C
А что не так с хаскелем? Их GHC хорош, пусть и чуток медленный в компиле.

>А самым быстрым он быть не может, т.к. ассемблер ничто не обгонит.
Ассемблер это не язык. Даже если ты попробуешь взять какой-нибудь хорошо оптимизированный ассемблер под твою систему, то я сомневаюсь что у тебя получится сделать более быстрый код чем на том же Си или плюсах кроме хелоуворлда, безусловно. Оптимизаторы существуют не зря. И сравнивать языки ассемблеров с адекватными языками всерьёз это просто наивняк. Про какой-то там продакшн, поддержку, порог входа вообще можно промолчать.
Аноним 21/07/20 Втр 18:15:29 175693161
>>1756923
>>1756927
>Ассемблер это не язык
Вы видимо с машинными кодами перепутали.
Аноним 21/07/20 Втр 18:22:29 175693462
>>1756931
Нет. Это ты перепутал а скорее всего и не знал. Можешь считать ассемблерные языки способом для представления машинных кодов в более-менее человеческом виде. Этих ассемблерных языков просто уйма, каждый со своими свистоперделками.

Ассемблер это программа, которая транслирует ассемблерный код в машинный. И самих этих ассемблеров тоже уйма.
C ходу: masm, nasm, fasm, zasm, tasm и т.д.
И каждый хуй может сделать свой, что собсна и делает.
Аноним 21/07/20 Втр 18:23:01 175693563
>>1756934
>ассемблерные языки
>не языки
Ок.
Аноним 21/07/20 Втр 18:24:05 175693664
>>1756926
>Действительно, они сильно полезнее нуля.
Чел, если у тебя это как-то состыкуется с гринтекстом который ты переиначиваешь — время лечится, у тебя в голове прувер поехал уже.

>>1756931
Нет, чел, ассемблер это и есть представление этих машинных кодов. Даже всякие масмы/насмы у которые всякие йоба довесы вроде меток и текстовой подстановки есть язык не поворачивается так назвать.
Аноним 21/07/20 Втр 18:24:40 175693865
>>1756936
>которые
которых есть
Аноним 21/07/20 Втр 18:33:02 175694566
1524342407244.png 61Кб, 769x714
769x714
>>1756936
>Даже всякие масмы/насмы у которые всякие йоба довесы вроде меток и текстовой подстановки есть язык не поворачивается так назвать.
Ты же просто не в теме, да?
Аноним 21/07/20 Втр 18:36:24 175694967
facepalm.png 1666Кб, 1024x576
1024x576
>>1756945
>Ты же просто не в теме, да?
Аноним 21/07/20 Втр 18:42:39 175695468
>>1756949
С чем ты не согласен? С тем что примеры выражений на скрине - не язык? Но это язык. То что диалектов ассемблера много? Так и в Си/с++ много диалектов (не только стандартов, всякие Turbo C вспомнить), да и Раст чтобы собрать бутстрапом с нуля надо диалектов 8 минимум. С тем, что ассемблер - неоднозначное слово, означающее и язык, и инструмент? Так и в русском такие слова есть, например ПЕЧЬ - устройство в котором пекут, ПЕЧЬ - готовить в печи.
Аноним 21/07/20 Втр 20:00:32 175703569
>>1756954
С тем, что ты показал не ассемблер, а какой-то язык с переменными и циклами. То, что он сделан поверх ассемблера — не значит что это ассемблер, такими ахуительными сравнениями можно всякие джавы до ассемблера опустить, ведь всё сделано над ним.
Аноним 21/07/20 Втр 20:16:06 175704170
>>1757035
mov eax, gamma и jmp alpha это у тебя уже не ассемблер? Может у тебя и dd не ассемблер?
Аноним 21/07/20 Втр 20:17:03 175704271
>>1756945
>>1756954
Ассемблерный язык - ассемблерный только потому что может однозначно быть транслирован в машинный код и обратно. То, что ты привёл на картинке не может быть транслированно в машинный код однозначно. И тут тебе нужно сделать манёвр. Либо это всё равно ассемблерный язык (с какого то хера), либо это какой-то особый язык (это так и есть).

>ассемблер - неоднозначное слово
Ассемблер вполне однозначное слово. Это программа. Просто ты запутался. В английском это слово ещё более однозначное. Assembly language & Assembler.

>ПЕЧЬ - устройство в котором пекут, ПЕЧЬ - готовить в печи.
Плохой пример, потому что это две разные части речи. Существительное и глагол. Их невозможно перепутать в контексте.

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

На практике, код написаный на ассемблере запросто может быть медленее, чем код написанный даже на плюсах и си.
https://habr.com/ru/post/254121/
Аноним 21/07/20 Втр 20:20:53 175704872
>>1757042
>https://habr.com/ru/post/254121/
пиздец зашел в комменты. Такая хуйня повторяется из раза в раз. И когда пытаешься объяснить этим зумерам, что у вас всё равно будет хуёвый, медленный код. Потому что перед компьютером сидит человек, а не робот-компилятор, то они начинают рассказывать про "руки из жопы". Та же хуйня с плюсодебилами и растом. Тычешь им в ~70% критов в популярном софте из-за проблем с памятью, а в ответ только копротивляния.
Аноним 21/07/20 Втр 20:21:42 175705073
>>1757042
>Ассемблерный язык - ассемблерный только потому что может однозначно быть транслирован в машинный код и обратно. То, что ты привёл на картинке не может быть транслированно в машинный код однозначно. И тут тебе нужно сделать манёвр. Либо это всё равно ассемблерный язык (с какого то хера), либо это какой-то особый язык (это так и есть).
Как ты ловко скипнул примеры с диалектами раста. Может по твоему и Бейсик - не язык программирования? Ну а че ведь бейсик с одного компа не запустится на другом (а должен был?)
>Ассемблер вполне однозначное слово. Это программа.
Даже если так, только даун будет притворяться что не понимает о чем идет речь.
>В этих диалектах, супер-макросах и древней документации чёрт ногу сломит.
Будто бы в расте или крестах не так.
>На практике, код написаный на ассемблере запросто может быть медленее, чем код написанный даже на плюсах и си.
Пиши нормально.
Аноним 21/07/20 Втр 20:22:38 175705174
>>1757048
Прости, а какая еще реакция может быть на людей у которых руки из жопы? Может быть называть их транс-ручными?
Аноним 21/07/20 Втр 20:23:02 175705375
Аноним 21/07/20 Втр 20:30:15 175706176
>>1757050
>Как ты ловко скипнул примеры с диалектами раста
Скинь, я посмотрю.

>Может по твоему и Бейсик - не язык программирования?
Ты гринтекстишь быстрее чем читаешь? Причем тут бейсик? Или диалекты раста? Или диалекты си? К чему это?

>Даже если так, только даун будет притворяться что не понимает о чем идет речь.
Препод в универе постоянно поправлял, если кто-то называл ассемблерный язык - ассемблером. Это как называть код на языке си - компилятором си.

Но да, ты прав. Даже если ты понял о чём я - ты дальше будешь притворяться.

>Будто бы в расте или крестах не так.
В расте нет. В плюсах хуже, но тоже нет.
Аноним 21/07/20 Втр 20:36:09 175706877
1464109266236.png 26Кб, 726x954
726x954
>>1757061
Пик. И вообще, что вы делаете со старыми карго которые не обновили? Просто выкидываете? Или придется в проект тащить несколько разных версий раста и таки разбираться в разных диалектах?
Аноним 21/07/20 Втр 20:38:19 175707278
Какие есть полезные расширения языка от сторонних разработчиков? Или просто список лучших расширений языка.
Аноним 21/07/20 Втр 20:42:11 175707879
>>1757072
>расширения языка
Шта?
Аноним 21/07/20 Втр 20:48:03 175708580
Аноним 21/07/20 Втр 20:48:24 175708681
>>1757078
То чего нет в стандарте, но уже добавили тулзами чтобы улучшить язык.
Аноним 21/07/20 Втр 20:53:52 175709282
>>1756923
>Такое вот "искусство" заканчивается ругающимся Торвальдсом если повезёт
Я не говорил, что им стоит выбросить свой оптимизатор и взять его у gcc. Но разница в результатах на разных бенчмарках показывает, что их оптимизации - непересекающиеся множества.

Если коммьюнити хочет сделать LLVM действительно лучшим, им стоит перенять недостающие оптимизации.

>Ну так ассемблер это даже и не язык программирования.
>>1756927
>Ассемблер это не язык.
Разве англоязычный термин assembly переводится не как "ассемблер"? Ну окей, язык ассемблера.

>А причем тут gcc? Не уловил твою мысль. Хотя понимаю, что это просто подъёбка
А я не уловил твою подъёбку. gcc = GNU Compiler Collection.

>А что не так с хаскелем?
Всё так, но ошибочно его часто считают медленным языком. Ну и в модные фишки вроде автовекторизации (SSE, AVX) GHC ещё не научился вроде бы.
Аноним 21/07/20 Втр 20:59:44 175709883
>>1757068
Причем тут диалекты? На пике же изображена плюсовая фан. имплементации компилятора. clang, gcc, msvc это тоже разные "диалекты" Си?

>>1757072
Что конкретно нужно? Rust неплохо расширяется внутри себя средствами самого раст. Так же есть список анстейбл фич, которые разрабатываются сейчас. Можно перейти на nightly ветку и попробовать.

Вот, аналог react/vue с JSX внутри самого Rust: https://github.com/yewstack/yew
Аноним 21/07/20 Втр 21:10:32 175710684
>>1757085
>>1757086
Сложно сказать, раст вроде не пилят вне раст блм-сообщества, но вообще там много "всякого" в унстабле, помимо странных маня-предложений, я помню, даже какой-то пидор хотел что-то похожее на эксэпшоны сделоть.
Аноним 21/07/20 Втр 21:23:46 175711985
Не понимаю зачем нужен Rust, если есть C и JS.
Аноним 21/07/20 Втр 21:32:54 175713286
Аноним 21/07/20 Втр 21:34:58 175713387
v1wide.jpg 273Кб, 2000x1024
2000x1024
>>1757119
>C
Который никому не нужен.

> JS
Rust и JS между собой не конфликтуют. JS - это скриптовый язык.

Создатель Node.js (где ядро написано на Си) Ryan Dahl сейчас работает над Deno. Это тоже рантайм для JavaScript/TypeScript, но уже он написан на Rust. Потому что Rust - это язык будущего.

https://deno.land/v1
>В последние годы языки программирования, такие как Rust и Go, значительно упростили создание сложного машинного кода; Эти проекты являются невероятно важными разработками в компьютерной инфраструктуре. Однако мы утверждаем, что по-прежнему важно иметь мощную среду сценариев, которая может решать широкий спектр проблемных областей.
Аноним 21/07/20 Втр 21:37:12 175713788
>>1757133
В дено v8 никуда не делся. А Райн Дал просто хаупо дурачок. Он пять лет назад на го убежал с теми же криками. Всем поебать.
Аноним 21/07/20 Втр 21:37:29 175713889
>>1757132
Ничего лучше js нет.
Аноним 21/07/20 Втр 21:39:43 175714290
>>1757133
> Node.js (где ядро написано на Си)
На плюсах.
Аноним 21/07/20 Втр 21:44:16 175714591
>>1757137
>А Райн Дал просто хаупо дурачок
Все дурачки кроме не написавшего ни строчки кода тебя.
Аноним 21/07/20 Втр 22:02:57 175716192
>>1757041
while (true) {}, if (huita || huita) и mask &= hui в джаве — это у тебя уже не C?
Аноним 21/07/20 Втр 22:08:11 175716593
>>1757092
>Всё так, но ошибочно его часто считают медленным языком.
Потому что это медленный язык, по всем пунктам. И любой быстрый код на нём — это императивная параша с мутабельным стейтом и сырыми указателями.
Аноним 21/07/20 Втр 22:10:26 175717094
15942636665240.jpg 19Кб, 350x301
350x301
>>1757137
Ну да, пытается сделать безопаснее хуитку которую юзает пол мира и которая зачастую торчит внаружу во весь интернет. Плюсодибилы as is.
Аноним 21/07/20 Втр 22:10:50 175717195
>>1757145
Это какой-то хуевый аргмумент. Ты же с аноном говоришь.
Но и апеллирование к личности кого-либо (в том числе создателя) и его мировозрения - это не менее хуевый аргумент. Тебе, конечно, не понять.
Аноним 21/07/20 Втр 22:16:17 175717796
>>1757165
>по всем пунктам
Но он не интерпретируемый, имеет статическую типизацию и компилируется в нативный код.

>И любой быстрый код на нём — это императивная параша с мутабельным стейтом
Если у тебя строчка для отключения ленивости - это императивная параша, тогда возможно. Так-то, конечно, придётся себя ограничивать в некоторых конструкциях языка, но в целом это всё равно выйдет в разы короче C. И да, там, где без стейта не обойтись - Haskell покажет себя плохо.
Аноним 21/07/20 Втр 22:21:49 175717997
>>1757177
> И да, там, где без стейта не обойтись - Haskell покажет себя плохо.
Аноним 21/07/20 Втр 22:33:54 175718798
pvxchv25rdb11.jpg 208Кб, 1238x696
1238x696
>>1757171
Т.е. обосновывать свою позицию тем, что кто-то просто дурачек (iq тесты провёл?) это нормально. Но как только говорят, что ты сам некомпетентый дурачек НУ ВСЕ ЖЕ МЫ ЛЮДИ НУ ЧЕГО ВЫ ОТКУДА ТЫ ЗНАЕШЬ ЯЖЕ АНОНИМ.

>апеллирование к личности кого-либо (в том числе создателя) и его мировозрения
Конечно, нельзя аппелировать к мнению изестных людей имеющих опыт в разработке прикладного ПО. Нужно слушать только хуесосов анонов с двачей. Ты когда дом строишь или хочешь себе зуб сделать - к бомжам у подъезда идёшь? Или к дворникам обращаешься?

>Тебе, конечно, не понять.
Конечно-конечно. Ведь это только ты читал, что нельзя ссылаться на авторитеты. Ты наверное это у какого-то авторитета прочитал?
Аноним 21/07/20 Втр 22:35:37 175718899
>>1757177
>Но он не интерпретируемый, имеет статическую типизацию и компилируется в нативный код.
Но он имеет GC, нет контроля над памятью, почти нет контроля над тем, во что вообще развернётся твой код и не обосрётся ли компилятор при оптимизации твоей программы.

Можно конечно ебашить unsafeWithPtr через unsafePerformIO через unsafeWrite итд, но нахуя мне так ебаться? В прод я бы такой код точно ни за что не потащил, для себя бы так писать не стал (потому что это означает отказ от всех плюх хачкеля кроме синтаксиса, с которого можно угарать в наркотрипе), и если у тебя цель именно быстро ебать байтики но без излишнего геморроя — есть раст (внезапна).

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

>но в целом это всё равно выйдет в разы короче C
А зачем тебе вообще перформанс если у тебя мерило "короче чем на С"? Делай себе цепочки из мапов и молись на то, что компилятор их сфолдит а LLVM анрольнет, лол.

>И да, там, где без стейта не обойтись - Haskell покажет себя плохо.
Так стейт для того и существует, чтобы можно было делать быстро, странно вообще такое читать.
Аноним 21/07/20 Втр 23:42:14 1757236100
>>1757188
>Но он имеет GC, нет контроля над памятью
Это не обязательно делает язык медленным. Оптимизатор вообще может преаллоцировать память или сразу вернуть результат, подсчитанный на этапе компиляции.

>почти нет контроля над тем, во что вообще развернётся твой код и не обосрётся ли компилятор при оптимизации твоей программы.
Это особенность языков программирования в целом. Хочешь знать - пиши сразу на машинном коде.

>но нахуя мне так ебаться?
С этого и стоило начать. Haskell вообще для этого не предназначен.

>и если у тебя цель именно быстро ебать байтики но без излишнего геморроя
И тут начинается проблема определения слова "быстро", ведь почти всегда можно подобрать задачу, сделанную под особенности конкретного языка. Но даже под эту задачу можно написать на Rust алгоритм O(n), а на Haskell - O(2^n), и потом бегать доказывать, какой же Rust быстрый.

>А зачем тебе вообще перформанс
Так мне он и не нужен. Но вот только это не делает Haskell медленным.
Аноним 22/07/20 Срд 00:11:45 1757247101
>>1757236
> Haskell вообще для этого не предназначен.
А для чего он вообще?
Аноним 22/07/20 Срд 00:18:36 1757251102
Сколько слежу за вашими тредами и еще не видел ни одного вопроса по языку, а только срачи c++ vs rust или если какой шиз, то сравнивают с js. Язык точно норм?
Аноним 22/07/20 Срд 00:21:20 1757253103
>>1757247
Вообще - язык-полигон для перспективных математических фич без определённых задач. Т.к. начальное коммьюнити и основные концепты - математические, это привлекает и других людей, знакомых с матаном.

На деле можно писать однострочники, уделывающие по краткости многие другие языки. Зачастую, короче выйдет только на ныне почившем APL.
Аноним 22/07/20 Срд 00:22:38 1757254104
Аноним 22/07/20 Срд 00:31:22 1757262105
>>1756693 (OP)
>4 пик
поясните за сейфити жабы
Аноним 22/07/20 Срд 00:48:21 1757278106
>>1757262
Сойдёт, но можно и получше.
Аноним 22/07/20 Срд 01:23:52 1757301107
index.jpg 12Кб, 259x194
259x194
>>1757251
>Язык точно норм?
Язык норм, но очень маленькое комьюнити (особенно русскоязычное). Постеры в треде имеют крайне смутное представление о расте, что критикующие, что защищающие. В треде уже >100 постов и только 15 постеров. Примерно такая же ситуация была и в предыдущем и ещё в других за ним.

Т.е. все эти срачи и всё что ты видишь - это пару анонов, что срутся с друг-другом. И это скорее грустно.
Аноним 22/07/20 Срд 01:26:18 1757302108
>>1757301
> уже >100 постов и только 15 постеров
Чем это плохо? Сколько должно быть?
Аноним 22/07/20 Срд 01:36:57 1757307109
15799866347060.png 374Кб, 618x480
618x480
>>1757302
Ну для примера соседние треды можно взять. Где сообщений может быть в два-три раза больше чем сейчас здесь, но и постеров в 3-4 раза больше. Ну и качество совсем иное общения. Ну конечно не прям совсем, это всё таки двач, но хотя бы обсуждают язык и тему треда. У нас же в лучшем случае ансейфы обсуждают, а в худшем просто срутся.

Позапрошлый тред это вообще ахтунг. На 560 всего ~30 постеров. Т.е. ~20 постов на каждого. Понятно, что это просто срутся 4-5 человек. Я их уже даже по стилю письма начинаю отличать друг от друга.

Не конструктивно это как-то.
Аноним 22/07/20 Срд 01:49:57 1757312110
>>1757307
Какие-то ебанутые у тебя претензии.
Аноним 22/07/20 Срд 01:52:37 1757314111
>>1757312
Действительно.

Гораздо лучше продолжать просто говниться ещё n^2-тредов, пока окончательно не проебёшь всё свободное полезное время. С такими амбициями можно и сразу на /b/ пройти.
Аноним 22/07/20 Срд 01:53:07 1757315112
Теперь это JS-тред.
Аноним 22/07/20 Срд 02:01:10 1757320113
>>1757314
Два человека уже не семёнство.
Ирл тебе тоже надо обязательно толпу собирать, чтобы пообщаться или уже в 2-4 человека нормально общается?
Аноним 22/07/20 Срд 02:49:31 1757330114
Haters gonna hate :)
От судьбы не отвертишься, как говорится. Через 15 лет на Расте будет написан весь IoT, куча критических мест в ядрах ОС будут на него переписаны (винда и линукс уже внедряют раст), тысячи нормисов из инфосек индустрии потеряют работу, а на биржах эксплоитов цена оных поднимется с текущих 2-3 миллионов долларов до 20-25, потому что взлом будет настолько сложный, что будет удаваться это сделать только если звезды на небе определенным образом сойдутся.
Вперед, Раст!
Аноним 22/07/20 Срд 02:51:33 1757332115
>Через 15 лет на Расте будет написан весь IoT
Через 15 лет IoT будет писаться на жабаскрипте
Аноним 22/07/20 Срд 02:53:10 1757333116
>>1757330
Через 15 лет будет нормальный язык системного уровня, с нормальным синтаксисом, а эта отрыжка будет на помоечке. Ну да будет пара кусков которые сейчас успеют пропихнуть, как сейчас иногда встречаются ошметки перла.
Аноним 22/07/20 Срд 02:53:58 1757334117
Аноним 22/07/20 Срд 02:54:05 1757335118
>>1757332
ага, ОСи тоже будут писаться на жабаскрипте нет
Аноним 22/07/20 Срд 02:54:58 1757336119
>>1757334
С и С++ от А до Я unsafe, но все равно находятся дауны, которые считают эти языки нормальными. Чёт ору с даунят xD
Аноним 22/07/20 Срд 02:58:57 1757338120
>>1757336
Они не нормальные, они прекрасные языки. В отличии от.
Аноним 22/07/20 Срд 03:00:17 1757339121
>>1757335
Их же еще в 2000е на сишарпе переписали
Аноним 22/07/20 Срд 03:02:08 1757340122
>>1757338
>весь С и С++ - один сплошной UB
>прекрасные языки

Все ясно, плюсовики они такие
Аноним 22/07/20 Срд 03:02:56 1757341123
>>1757339
Да, сижу ща пилю дрова на usb под линь на сишарпе, все так делают
Аноним 22/07/20 Срд 03:03:01 1757342124
>>1756719
А каковы масштабы этого? Я правильно понимаю что любая программа на Расте читающая что то из файлов или терминала автоматически UB? И все гарантии это "мамой клянусь у авторов стд есть понимание внутреннего устройства"
Аноним 22/07/20 Срд 03:04:19 1757343125
>>1757336
Так они и не рекламируют себя как ансейф.
Аноним 22/07/20 Срд 03:06:08 1757344126
>>1757335
Оси вообще писаться не будут, все уже написаны давно
Аноним 22/07/20 Срд 03:08:09 1757345127
>>1757343
Ты понял что вообще сказал?
А кто себя рекламирует, как АНСЕЙФ?
Вдумайся еще раз в написанное.

Спроси любого челика, который работает в отрасли системной безопасности, он тебе скажет, что по-хорошему весь мир должен перестать писать на С/С++ (сам он в глубине души этого не хочет, ибо потеряет работу, если это произойдет, ну или придется ему перекатываться в другую область ИБ), потому что это дырявая блевотина из-под коня, а не языки. Дедовская отрыжка сорокалетней давности.
Аноним 22/07/20 Срд 03:08:25 1757346128
>>1757342
> у авторов стд
У них, у авторов ллвм, у авторов ос, у авторов цп и остального железа, у компьютер саентистов, у физиков итд.
Аноним 22/07/20 Срд 03:09:56 1757347129
>>1757344
Походу ты не ведаешь что в эмбедщине творится. Берут щепотку линуксового кода и наворачивают кучу кастомного говна, иногда откровенно проприетарного. РТОС тоже бывает много кастомных. ОСи не ограничиваются виндой на компьютере твоей бабки, анон.
Аноним 22/07/20 Срд 03:10:17 1757348130
>>1757345
Никто такой чуши не скажет, кроме пары проплаченых дурачков.
Аноним 22/07/20 Срд 03:11:51 1757349131
>>1757345
> кто себя рекламирует как ансейф
Угадай.
Аноним 22/07/20 Срд 03:14:51 1757351132
>>1757347
По такому сценарию их и пишут на жс, в таком случае. См runtimejs
Аноним 22/07/20 Срд 03:16:27 1757353133
>>1757348
Открой CVE и посмотри что творится. 2к20 год на дворе, а проблемы с безопасностью как в 90ых, только сверху кучу митигаций навернули, чтобы усложнить, но не искоренить.
Каждый второй CVE с критическим CVSS - результат ошибок работы с памятью.
Нет никакого смысла продолжать цепляться за это говно, только легаси держит эти языки. Все, кто пишут новые проекты на сиплюсах, конченные ебанаты. Благо, много компаний это осознали и новые проекты на них стараются действительно не писать.
Сиплюсы были заебись потому, что не было альтернатив раньше. Да и сейчас они резко не подвинутся, тупо из-за огромной кучи вонючего легаси, но со временем это обязано произойти. Благо, все к этому идет, медленно, но уверенно.
Аноним 22/07/20 Срд 03:32:35 1757356134
>>1757342
> Я правильно понимаю что любая программа на Расте читающая что то из файлов или терминала автоматически UB?
Не любая. Конкретно в СТД UB находится только внутри BufReader. Если использовать трейт Read напрямую предварительно инициализировав массив нолями, то юб не будет. Но очень многие библиотеки ради скорости используют неинициализированные массивы (что логично - нахуя заполнять массив данными, которые моментально будут переписаны?) и автоматом получают UB.
Аноним 22/07/20 Срд 03:32:47 1757357135
>>1757347
>Через 15 лет на Расте будет написан весь IoT
>Походу ты не ведаешь что в эмбедщине творится
>Через 15 лет
>творится
Ты наркоман ебаный
Аноним 22/07/20 Срд 03:40:49 1757359136
>>1757353
Ахуеть. И где же были альтернативы, если их небыло? Ада, агла, паскаль, оберон, симула, алгол
Аноним 22/07/20 Срд 04:59:53 1757369137
>>1757356
Не очень верится в то что UB бывает локальным и не протекает.
Аноним 22/07/20 Срд 05:07:11 1757371138
>>1757369
Ты про что? Я говорю, что не сам трейт Read генерирует UB, а его пользователи при определённом паттерне использования (если ты не используешь BufReader, то кода с ним в твоём бинарнике не будет вообще как бы).

Стоит заметить, что в расте есть АПИ которые генерируют всегда UB при использовании, например [1] и на самом деле дохуя кода, который не мигрировал на MaybeUninit (либо используют MaybeUninit::uninit().assume_init(), что необходимо для трейта Read), в котором эту проблему решили.

[1]: https://doc.rust-lang.org/std/mem/fn.uninitialized.html
Аноним 22/07/20 Срд 05:08:23 1757372139
>>1757353
В первый же написанный для Хрома или операционки модудь Коляны воткнут ансейф, ну и чем тут поможет Раст?
Аноним 22/07/20 Срд 05:13:49 1757374140
ScreenshotBrave[...].png 202Кб, 1080x1920
1080x1920
Аноним 22/07/20 Срд 05:57:49 1757390141
Думал в расте адекватное сообщество, а тут блядь филиал психбольных байтохлюпиков, сосите хуй, раст говно и кресты ему не переплюнуть
Аноним 22/07/20 Срд 06:05:27 1757395142
>>1757390
В жс вкатывайся. Он заебись.
22/07/20 Срд 06:07:10 1757396143
Аноним 22/07/20 Срд 06:17:01 1757405144
Аноним 22/07/20 Срд 06:21:36 1757407145
>>1757390
>Думал в расте адекватное сообщество
Почему ты так думал? Эксперементальные языки всегда привлекали в основном фриков и поехавших.
Аноним 22/07/20 Срд 06:23:11 1757408146
>>1757407
Js тоже эксперементальный язык, но там адекватное сообщество. И все очень образованные.
Аноним 22/07/20 Срд 07:19:25 1757424147
>>1756752
Хаскель вроде довольно быстр.
Аноним 22/07/20 Срд 07:29:31 1757427148
>>1757098
> Причем тут диалекты? На пике же изображена плюсовая фан. имплементации компилятора.
Ты тупой? Он собирает только первый шаг. Все дальнейшие версии собираются уже растом. Но растом разных версий. Т.е. в более ранних будет другой синтаксис.
Аноним 22/07/20 Срд 07:39:42 1757428149
>>1757427
Синтаксис одинаковый (синтаксис отличается только у 2018/2015 редакций, но компилятор поддерживает обе), разница только в АПИ внутри стандартной библиотеки. В расте всегда компилятор пишется так, чтобы собираться предыдущей версией (причём бывает так, что собирается предыдущей, но не может собрать сам себя, лол).
Аноним 22/07/20 Срд 10:54:48 1757478150
>>1757408
>Js
>Все очень образованные
Ты не мог становиться толще, и твой тип переменной yoba переполнился до нуля.
Аноним 22/07/20 Срд 11:27:46 1757502151
>>1757236
>Так мне он и не нужен.
Ну и как ты вообще оперируешь словом "быстрый" по отношению к языку, если ты на нём ничего требовательного к перформансу не писал?

>Это не обязательно делает язык медленным.
>Так мне он и не нужен. Но вот только это не делает Haskell медленным.
Давай-ка я тебе кину твой де тейк
>И тут начинается проблема определения слова "быстро"
для меня быстрый язык — это тот, с которым нужно меньше ебаться чтобы он работал быстро. Можно утрахаться и с джавой, чтобы инкрементить там указатели и компилировать АОТ, только вот я потрачу на это как минимум в 3 раза больше времени, чем просто ебануть этот же алгоритм на плюсах/расте.

Хаскель в плане ебли за перформанс — это вообще лидер, надо выкинуть почти всё что есть в языке, оставив из стдлибы только то, что интерфейстится к С или где имя импорта заканчивается на .Unsafe. Именно это и
>делает Haskell медленным.
Аноним 22/07/20 Срд 11:28:41 1757504152
>>1757408
>Js тоже экскрементальный
Поправил.
Аноним 22/07/20 Срд 11:52:14 1757524153
РЯЯЯ СЕЙФ, РЯЯЯ АНСЕЙФ #14
Аноним 22/07/20 Срд 12:42:55 1757542154
А приемущественно, какой IDE пользуются для раста?
Аноним 22/07/20 Срд 12:46:24 1757544155
>>1757542
Visual Studio Code + Rust Analyzer.
Аноним 22/07/20 Срд 12:50:09 1757547156
Аноним 22/07/20 Срд 12:52:20 1757549157
>>1757547
Отладка доступна только в платном CLion.
Аноним 22/07/20 Срд 13:30:08 1757564158
>>1757374
там на самом деле много чего помимо unsafe функций
Аноним 22/07/20 Срд 13:31:09 1757565159
>>1757544
VSCode такая параша, идите нахуй
Аноним 22/07/20 Срд 13:37:33 1757573160
Аноним 22/07/20 Срд 13:39:10 1757575161
>>1757502
Открою тебе небольшой секрет - не бывает "медленных" компилируемых языков - бывают компиляторы, генерирующие субоптимальный набор машинного кода.

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

>для меня быстрый язык — это тот, с которым нужно меньше ебаться чтобы он работал быстро
Haskell работает быстро, а быстрее можно почти всегда - пиши сразу на assembly/машкоде. Единственная нужная оптимизация там - это правильно расставить флаги и отключить ленивость в функциях, принимающих много данных.

>Хаскель в плане ебли за перформанс — это вообще лидер
На деле никто за перформанс там не борется, кроме полтора шизов на бенчмарках.

>Именно это и
>>делает Haskell медленным
Нет, не делает. Хороший компилятор мог бы сам провести все те оптимизации, которые ты предлагаешь делать ручками (кроме тех, которые являются оптимизациями алгоритмов).
Аноним 22/07/20 Срд 13:45:26 1757582162
>>1757374
Сможешь ли ты так же быстро найти опасные места в хромиуме/блинке?

> third_party

Ну и на скрине как раз правильно сделанный ансейв.
Аноним 22/07/20 Срд 14:04:07 1757598163
>>1757582
>Сможешь ли ты так же быстро найти опасные места в хромиуме
Покажи исходники на расте в хромиуме.
>в хромиуме
А что, разве Раст не в мозилле сделали?
> third_party
Так раст тянет все крейты с собой.
Да и какая разница, взломают браузер через компонент third party или какой то другой?
>Ну и на скрине как раз правильно сделанный ансейв.
Коляны одобряют.
Аноним 22/07/20 Срд 14:09:07 1757607164
>>1757598
> исходники на расте в хромиуме
Опасные места в с++ коде.

> какая разница
Есть разница.

> Коляны одобряют
Ты не сможешь без дополнительного ансейва заюзать этот трейт, а значит при коммите доебутся.
Аноним 22/07/20 Срд 14:32:31 1757626165
>>1757607
>Опасные места в с++ коде.
Причем тут с++? Покажи где раст в хроме. Я сходу не нашел.
>Есть разница.
Какая? Это то что притащил с собой раст.
Аноним 22/07/20 Срд 15:16:14 1757650166
>>1757374
Всё-таки раст - это фейл, но не потому что концепция плохая. Говорим про бороучекер, говорим про unsafe блок, всё нахуй, хомяки в панике ищут везде это ключевое слово, потому что боятся его как огня => у них в башке уже серьёзное непонимание, мол, зачем нужен раст, если там есть unsafe блоки. Не, фирмы туда точно не пойдут.
Аноним 22/07/20 Срд 15:56:08 1757688167
>>1757650
Надо было другое ключевое слово выбирать
Аноним 22/07/20 Срд 15:59:19 1757695168
>>1757688
Если цель "продать и похуй", то возможно. А так вполне нормальное слово.
Аноним 22/07/20 Срд 15:59:25 1757697169
>>1757650

Ну не выходит одновременное скакание на хуйцах и рыбку съесть, тут или байты пердолить или ядро в соточку.
Аноним 22/07/20 Срд 16:01:58 1757703170
>>1757650

Ну они сами виноваты, добавили фактически ключевое слово ЗАШКВАР в язык и теперь получили закономерные АУЕ дилеммы в духе "как не зашквариться ходя на дальняк"
Аноним 22/07/20 Срд 16:03:44 1757705171
1444856531593.png 699Кб, 800x1233
800x1233
>>1757697
Есть цпп где по дефолту быстро и для безопасности натыкиваешь ассерты.
Есть руст где по дефолту безопасно и для скорости натыкиваешь ансейфы.
Аноним 22/07/20 Срд 16:10:38 1757715172
>>1757705
>Есть руст где по дефолту безопасно и для скорости натыкиваешь ансейфы.

Но, см >>1757703

unsafe в среде сойбоев признано чем то вроде goto или singleton и если по масти писать на сях быстро тебе не запрещают, то по масти писать быстрые программы на расте это зашквар, пока зеон платинума хватает - не выебывайся.
Аноним 22/07/20 Срд 16:13:09 1757717173
>>1757715
Даже если бы там было please_be_gentle_with_me {}, то все равно бы были претензии.
Аноним 22/07/20 Срд 16:13:40 1757719174
>>1757697
>Ну не выходит одновременное скакание на хуйцах и рыбку съесть
По факту суть не в этом, но хомяк бы понял это именно так.
>>1757703
>добавили фактически ключевое слово
Ты вообще в мане читал, что такое unsafe?
Аноним 22/07/20 Срд 16:15:13 1757722175
qq1.png 548Кб, 1000x970
1000x970
Аноним 22/07/20 Срд 16:15:57 1757724176
>>1757715
Ты так говоришь как будто дело в слове, а не в том что оно убирает нахуй всю безопасность.
Аноним 22/07/20 Срд 16:17:43 1757726177
>>1757715
>чем то вроде goto
При этом goto это НОРМА.
Аноним 22/07/20 Срд 16:18:30 1757727178
>>1757724
>оно убирает нахуй всю безопасность
Оно не убирает нахуй всю безопастность.
Аноним 22/07/20 Срд 16:18:44 1757728179
Аноним 22/07/20 Срд 16:18:47 1757729180
>>1757719
>Ты вообще в мане читал, что такое unsafe?

Ты читал, я читал, сойбой у которого раньше 32гб хватало на все а если что, ПМ клиента еще на тарифный план в облаке разведет - не читал, у него unsafe это ФУБЛЯДЬ ФУНАХУЙ КТО ЭТО СДЕЛАЛ ГДЕ ЭТОТ БАЙТОЕБ СУКА.
Аноним 22/07/20 Срд 16:23:11 1757733181
>>1757728
>Есть цпп где по дефолту быстро и для безопасности натыкиваешь ассерты.
>Есть руст где по дефолту быстро и для безопасности натыкиваешь ассерты
Вот валидный пост, а не то клоуничество.
Аноним 22/07/20 Срд 16:23:48 1757735182
>>1757727
А, то есть это дисфункциональный кейворд, типа как register в с++ и ничего не делает?
Аноним 22/07/20 Срд 16:28:30 1757743183
>>1757735

Это противоречивый кейворд в результате которого будут с одной стороны школотроны с их "МАМА СМАТРИ КАК Я КРУТО ХАКСОРЮ БАЙТЫ НА ИНТРИНСИКАХ AVX ИНСТРУКЦИЯХ ПОКА ТЕЧЕТ МОЙ ЛЮБИМЫЙ КЕПЧУК", с другой стороны будут сойбои с менторским тоном оттопырив мизинчик пояснять этим школотронам стоимость четырехголового зеона платинум по сравнению со стоимостю факапа по вине сегфолта, а то и кражи базы из-за одной AVX инструкции.
Аноним 22/07/20 Срд 16:29:54 1757746184
>>1757743

В итоге, вангую, галеры будут в кодстайлах ЗАПРЕЩАТЬ UNSAFE и на всех семинарах распинаться про какой же UNSAFE ФУУУУУ.
Аноним 22/07/20 Срд 16:33:05 1757752185
>>1757735
>то есть это дисфункциональный кейворд?
Ну, серьёзно почитай уже мануал.
Аноним 22/07/20 Срд 16:41:35 1757764186
>>1757733
А ансейфы для чего? Только лишь для железа и ОС?
>>1756719
>>1757356

> Есть руст где по дефолту быстро и для безопасности натыкиваешь ассерты
И дохуя в той же стдлибе ты видишь ассертов?
Аноним 22/07/20 Срд 16:47:09 1757770187
Аноним 22/07/20 Срд 17:00:45 1757786188
>>1757764
Вопрос не в том сколько я вижу или не вижу ассертов. Rust ~ C. Ты просто почему то думаешь, что Rust далеко ушёл от C в плане безопастности, но он ушёл от него ровно на столько, на сколько у тебя статически анализируема твоя программа, вернее, сделать определённые выводы из этого анализа - не больше, не меньше +/- возможности объяснить этому анализатору доп. параметры. По факту это улучшенный в некотором смысле всем известный C, хомяки просто подумали, что это ЕБАТЬ СЕЙФ, хотя тут нужно сказать, что его продали хомякам под этим лозунгом, возможно даже другие хомяки продали, что тащемта вина этих самых лгбт блм разработчиков.
>>1757770
Есть эльф, который экспортит функцию, которая, допустим, вообще не изменяет ничего вне своего фрейма, я использую эту функцию, т.е. через ужасный unsafe - всё, пиздец, побежишь жаловаться на реддит?
Аноним 22/07/20 Срд 17:07:42 1757794189
1581797130339.jpg 59Кб, 576x384
576x384
>>1757786
Вижу, не вижу. Ушёл, не ушёл. Больше, не меньше. Плюс, минус. Хули ты как девочка 15 летняя?
Аноним 22/07/20 Срд 17:52:33 1757827190
Аноним 22/07/20 Срд 19:19:04 1757900191
Даже анальная жижа типа хаскеля и близко не подобралась хотя бы к определению практической реализации сейфовости
Раст уже по скорости около с, уже имеет заебатый пакет менежер, при этом уже требуя в разы меньше ебли с памятью
Аноним 22/07/20 Срд 19:21:39 1757904192
>>1757900
Даже жаваскрипт быстрее и безопаснее раста, мань.
Аноним 22/07/20 Срд 19:33:08 1757911193
>>1757900
>жижа типа хаскеля и близко не подобралась хотя бы к определению практической реализации сейфовости
Хаскель - тоже ЯП общего назначения, и там тоже есть unsafe. Но на деле его используют только в бенчмарках.

Так-то есть ещё пруверы, в которых подорваться можно разве что на FFI (если он там есть).
Аноним 22/07/20 Срд 20:05:01 1757938194
>>1757911
На деле на сейфовость положили хуй и даже основные принципы её придерживания вынесли в отдельный экстеншон
Кроме раста не осталось ни одного языка хотя бы пытающегося в серьёзную сейфовость
Аноним 22/07/20 Срд 20:18:02 1757949195
>>1757938
Перетолстил под конец.
Аноним 22/07/20 Срд 20:24:22 1757952196
image.png 11Кб, 578x70
578x70
Аноним 22/07/20 Срд 20:28:04 1757957197
>>1757607
>>1757598
>>1757626
Дурачек. Тебя спрашивают сможешь ли ты так же быстро найти unsafe в C++, где потенциально сидит ошибка? Хули ты дауном прикинулся?
Аноним 22/07/20 Срд 20:34:17 1757963198
>>1757650
>>1757703
>>1757688
Вы видимо в других языках не слышали про unsafe подмножества?
Аноним 22/07/20 Срд 21:04:11 1757979199
1499630783627.jpg 30Кб, 480x360
480x360
https://500mile.email is a curated list of absurd software bug stories.

потому что в других не сижу
Аноним 22/07/20 Срд 21:04:17 1757980200
>>1757957
Полегче на поворотах. Еще раз повторяю - покажи код на расте в Хроме. Если там ансейф на ансейфе - это самообоссывание.
Аноним 22/07/20 Срд 21:09:56 1757981201
unsafe.png 681Кб, 793x822
793x822
Угараю с вашего треда. В который раз всё к одной и той же ебале скатывается.
Аноним 22/07/20 Срд 21:17:31 1757986202
>>1757980
Объясняю на пальцах.

Чел скинул пик, в котором нашел 3к ансейфов. По вашей версии это пиздец пиздецов, так? Ведь ансейф это опасно, уязвимо и пр.
Ему ответил анон
> Сможешь ли ты так же быстро найти опасные места в хромиуме/блинке?

Т.е. сможешь ли так же быстро и просто найти потенциально уязвимые и опасные места в коде на C++? Просто поиском по ключевым словам?

В ответ на это начались какие-то тупейшие манёвры, аля "покажи мне код на расте в хроме". О чем тут можно спорить, если вы элементарные тейки воспринять не в состоянии?
Аноним 22/07/20 Срд 21:31:04 1758001203
>>1757986
Так Раст, выходит, небезопасный. Что и требовалось доказать.
Аноним 22/07/20 Срд 21:47:48 1758011204
f3e98f4124f8268[...].jpg 42Кб, 524x316
524x316
>>1758001
>Так Раст, выходит, небезопасный. Что и требовалось доказать.
Аноним 22/07/20 Срд 21:55:11 1758015205
>>1757575
>Haskell работает быстро, а быстрее можно почти всегда - пиши сразу на assembly/машкоде.
Справедливо. Дальше спорить смысла нет. Ты поехавший.
Аноним 22/07/20 Срд 22:00:45 1758020206
>>1757986
Пчел, но маневрируешь только ты.
Я в третий раз прошу - покажите мне код на расте в Хром(иум)е. Ведь апологеты Раста в этом треде безустанно повторяют, что в браузерах огромная проблема с уязвимостями и поэтому туда непременно нужен безопасный раст, и еще эти апологеты утверждают что если нужен безопасный раст то не надо пользоваться unsafe. Но вот я открыл сорцы Мозиллы Файрфокс, т.е. продукта который делается авторами Раста, и там куча ансейфов (не 3к, конечно, это поиск по всем файлам в т.ч. документации, конфигам) После чего ты начинаешь маневрировать не видя противоречия заявленным свойствам языка.
Аноним 22/07/20 Срд 22:11:42 1758026207
>>1758020
Так выходит, что в коде на расте (по-твоему же примеру с фаерфоксом) все небезопасные места в коде, явно обозначены, верно?
Аноним 22/07/20 Срд 22:13:41 1758027208
>>1758020
Хотя бы попробуй собрать хромиум с О3
Аноним 22/07/20 Срд 22:15:36 1758031209
>>1758027
У меня нет компа который потянет сборку хрома.
Аноним 22/07/20 Срд 22:17:03 1758032210
>>1758026
Если ансейф функцию с ненайденным уб юзает другая функция, ее третья, ее четвертая, то что будет?
Аноним 22/07/20 Срд 22:18:06 1758035211
>>1758020
>заявленным свойствам языка
Эти "заявленные свойства языка" только в твоей голове. Ты их сам выдумал и сам с ними воюешь.

>апологеты утверждают
Какие апологеты? Такие же долбоёбы из треда как и ты?

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

>что в браузерах огромная проблема с уязвимостями и поэтому туда непременно нужен безопасный раст
Не только в браузерах, вот Microsoft https://www.zdnet.com/article/microsoft-70-percent-of-all-security-bugs-are-memory-safety-issues/
Вот, кстати, репы от них же
https://github.com/microsoft/winrt-rs
https://github.com/microsoft/com-rs
Аноним 22/07/20 Срд 22:18:10 1758036212
>>1758020
Ты тупой нахуй или как? При аудите кода можно сосредоточить проверки на ансейф блоках, потому что вне них ты не можешь выстрелить себе в ногу. А имея четко ВИДИМЫЕ блоки кода, где потенциально может быть уязвимый код, все усилия тестеров устремляются туда. Засим и шанс выловить баг гораздо выше, нежели оставить все как есть.
У хрома примерно 80 миллионов строк кода (включая все-все-все). Грубо говоря, как думаешь, лучше чтобы 80 миллионов строк кода были ансейф или чтобы были 2-3к ансейф блоков, куда можно устремить все усилия для поиска возможных багов?
Полная безопасность в системщине нереально при данной архитектуре железа, но то, что раст делает системщину НАМНОГО безопаснее - факт. Он четко обозначает опасные места. В сиплюсах у тебя все от первой до последней строчки кода - один сплошной ансейф. Чисто по теории вероятности в такой кодовой базе будет больше багов.
Аноним 22/07/20 Срд 22:20:24 1758040213
>>1758036
> бессвязный поток маркетингового булшита от сектанта
Аноним 22/07/20 Срд 22:20:56 1758041214
>>1758032
>то что будет?
Будет поиск ошибки в дебаггере прямо как в плюсах. Только сужен он будет до области unsafe кода.
Аноним 22/07/20 Срд 22:21:48 1758043215
015.png 54Кб, 434x327
434x327
>>1758040
> бессвязный поток маркетингового булшита от сектанта
Аноним 22/07/20 Срд 22:24:22 1758044216
>>1758040
Чел тебе всё правильно расписал, дурачек.
Аноним 22/07/20 Срд 22:46:32 1758060217
>>1758040
>пуксреньк ряяяя раст не может быть лучше сиплюсов ряяяя ансейф ррряяя

Плюсодебилов даже могила не исправит. Земля тебе сегфолтом.
Аноним 22/07/20 Срд 22:49:55 1758064218
ни плюсы ни раст не могут быть безопаснее жс
Аноним 22/07/20 Срд 22:50:45 1758065219
Аноним 22/07/20 Срд 22:51:30 1758066220
1502110373801.jpg 87Кб, 1200x675
1200x675
>>1758036
> В сиплюсах у тебя
> один
> ансейф
Аноним 22/07/20 Срд 22:52:27 1758069221
Аноним 22/07/20 Срд 22:55:35 1758078222
>>1758044
Кроме маняфантазий про безопасный раст. Покажите безопасное приложение на расте масштаба хрома.
Аноним 22/07/20 Срд 22:58:39 1758089223
Аноним 22/07/20 Срд 22:59:46 1758090224
hojas-de-bistur[...].jpg 16Кб, 600x600
600x600
uc766ff21a8ef8b[...].jpg 14Кб, 800x420
800x420
b2e7fb629d83311[...].JPG 70Кб, 1500x1485
1500x1485
Аноним 22/07/20 Срд 23:00:51 1758093225
>>1758078
Тыж сам только что пиздел про фаерфокс. Или уже не щитово?
Аноним 22/07/20 Срд 23:03:30 1758101226
image.png 206Кб, 800x293
800x293
Аноним 22/07/20 Срд 23:03:45 1758102227
9376148095006.jpg 44Кб, 800x800
800x800
Аноним 22/07/20 Срд 23:07:35 1758106228
1.jpg 34Кб, 800x263
800x263
2.png 77Кб, 500x235
500x235
3.jpg 32Кб, 750x440
750x440
>>1758101


C++ — пик 1
Rust — пик 2
JS — пик 3
Аноним 22/07/20 Срд 23:09:04 1758108229
>>1758093
В файрфоксе сколько cve открытых?
Аноним 22/07/20 Срд 23:09:50 1758109230
Сколько жс-завистников в треде, мамочки. Так и не смогли осилить язык высокого уровня. Дебилы.
Аноним 22/07/20 Срд 23:11:49 1758113231
1.jpg 61Кб, 512x353
512x353
2.jpg 232Кб, 2100x1386
2100x1386
3.jpg 103Кб, 1500x1814
1500x1814
>>1758109
>Сколько жс-завистников в треде, мамочки. Так и не смогли осилить язык высокого уровня. Дебилы.

C++ — пик 1
Rust — пик 2
JS — пик 3
Аноним 22/07/20 Срд 23:12:43 1758116232
>>1758109
Рождённый ползать — летать не может.
Аноним 22/07/20 Срд 23:26:00 1758125233
WSM1WaVVDHYdpQJ[...].png 424Кб, 523x707
523x707
>>1758108
К чему ты это спрашиваешь? Хочешь сказать, что в хроме их нет? Или что наличие cve обнуляет импакт от Rust?

Мне это напоминает мем про илона маска.

== ВЫ НАХОДИТЕСЬ ЗДЕСЬ ==

Когда на расте появится софт уровня хрома или какая-то часть хрома/винды/{аппнейм} будет переписана на него, то что ты будешь говорить? Или вы правда думаете, что это настолько нереалистичный сценарий? Ведь в ваших представлениях никто никогда не переписывает старый коммерческий код, да? А вероятность, что появится хоть какая-то серьёзная альтернатива плюсам или самому расту в ближайшие 5 лет - просто ничтожна, но к тому времени сам раст станет ещё популярней и больше.

Я всегда скриню самые лютые прогнозы про провал раста, чтобы лет через пяток показывать другим как прорывные технологии встречают сопротивление среди дураков и луддитов.
Аноним 22/07/20 Срд 23:35:36 1758129234
rust.png 249Кб, 701x700
701x700
Аноним 22/07/20 Срд 23:37:44 1758131235
>>1758015
>Справедливо. Дальше спорить смысла нет
На Haskell 20% усилий на оптимизации (отключение ленивости, флаги, оптимизации алгоритмов) дадут 80% ускорения (от 100% теоретически возможных). Так-то почти все unsafe-функции небезопасны только для многопотока (т.к. в них нет мьютексов), а указатели оставлены больше как возможность, а не как пространство для оптимизаций.

А если ты берёшь хацкель (язык с GC!) для real-time приложений, то земля тебе пухом.

>Ты поехавший
Я не растосектант.
Аноним 22/07/20 Срд 23:42:07 1758133236
rust.png 203Кб, 701x700
701x700
Аноним 22/07/20 Срд 23:51:05 1758137237
>>1758125
Когда появится большой софт на расте, им заинтересуются и будут ломать. И потом те кто кукарекали про безопасность будут молча сидеть в стыде.
Аноним 23/07/20 Чтв 00:04:34 1758143238
>>1758137
>им заинтересуются и будут ломать
Безусловно. Только сколько будет стоить взломать такой софт ты конечно не уточняешь и уж тем более не уточняешь стоимость фикса.
Аноним 23/07/20 Чтв 00:13:19 1758148239
>>1758137
Есть логические баги, от которых раст не спасает. Пока люди пишут код - инфосек будет жив.
Но есть целый класс багов, связанных с порчей памяти. Эта шняга сдохнет как только раст взойдет на пьедестал. Учитывая, что как раз баги с памятью чаще всего ведут к исполнению произвольного кода, и что 80% критических багов тоже относятся к этой категории, то выстрел раста уволит несколько сотен тысяч ИБшников по всему миру, которве занимаются лоу лвл безопасностью. Бедолаги уже от невроза наверное впопыхах учат жс и планируют перекат в веб инфосек, где все только начинается)
Аноним 23/07/20 Чтв 00:20:44 1758156240
>>1758143
Как и растовики не уточняют стоимость переписывания всего на раст.
Аноним 23/07/20 Чтв 00:25:29 1758157241
>>1758156
>переписывания всего
Ну да, ведь нужно СРАЗУ ВСЁ переписать на раст...
Аноним 23/07/20 Чтв 00:26:20 1758158242
>>1758157
А что, если не сразу переписывать а постепенно то это как то удешивит тотал? Пиздец ты воробушек.
Аноним 23/07/20 Чтв 00:27:42 1758160243
Аноним 23/07/20 Чтв 00:28:24 1758162244
>>1758160
Нет.
Как надо потратить N часов так и останется.
Аноним 23/07/20 Чтв 00:30:10 1758164245
>>1758162
Квалификация и рыночек.
Аноним 23/07/20 Чтв 00:32:50 1758165246
>>1758164
Рыночек вас и так бесплатно гроздьями вешает, лол, куда дешевле то.
Аноним 23/07/20 Чтв 00:38:45 1758168247
>>1758158
Плохо, что в мелксофте не такие умники как ты сидят. Они то и не знали, что можно только модули на раст переписать потому что так дешевле, а не сразу всю винду.
Аноним 23/07/20 Чтв 00:41:58 1758170248
>>1758162
>Как надо потратить N часов так и останется.
Пиздец у тебя с матешей туго. Ты думаешь переписать весь хром это столько же по времени как и переписать, например, какой-нибудь css-парсер?
Аноним 23/07/20 Чтв 07:23:22 1758246249
Safe!
Fust!
Rust!
Аноним 23/07/20 Чтв 10:05:54 1758285250
>>1758158
Есть код, который и так приходится переписывать как в случае с тем же Фаерфоксом или писать с нуля.
Аноним 23/07/20 Чтв 10:52:47 1758312251
Rust in Peace
Аноним 23/07/20 Чтв 11:35:11 1758345252
>>1758129
>>1758133

О, БАИВЫЕ КАРТИНОЧКИ уровня 7В уже подвали, найс, уровень аргументации растодебилов растет.
Аноним 23/07/20 Чтв 11:37:24 1758348253
>>1758345

Ща, погоди, еще макрос со стрелочкой и дебичи в масках из /hw/ подкатят.
Аноним 23/07/20 Чтв 11:44:20 1758351254
изображение.png 340Кб, 512x393
512x393
Аноним 23/07/20 Чтв 13:50:47 1758476255
>>1758170
У меня с матешей все отлично.
Переписать N модулей 1 человеком за M лет = Переписать N модулей M людьми за 1 год.
Аноним 23/07/20 Чтв 14:52:29 1758504256
>>1758345
>О, БАИВЫЕ КАРТИНОЧКИ уровня 7В
Сорян, ты перепутал. Я не твой одноклассник.
Аноним 23/07/20 Чтв 14:56:32 1758509257
>>1758504

>РЯЯЯЯ, ГОВОРИШЬ НА МЕНЯ ПЕРЕВОДИШЬ НА СЕБЯ

А чего текстом, смишные макросы со стрелочкой в цвет дефолтной темы не нашел? И плачущих амудебичей еще не приволок, странно.
Аноним 23/07/20 Чтв 15:07:41 1758512258
123.jpg 94Кб, 701x700
701x700
>>1758131
Я конечно не тот анон, что начал хуярить картиночки, а тот что написал что хачкель медленный, но не присоединиться к нему уже не могу.
Аноним 23/07/20 Чтв 15:33:35 1758524259
>>1758476
Вопрос был:
>Ты думаешь переписать весь хром это столько же по времени как и переписать, например, какой-нибудь css-парсер?
Ты высрал:
>Переписать N модулей 1 человеком за M лет = Переписать N модулей M людьми за 1 год.
Чувствуешь разницу между одним модулем и всей аппой с n>1 модулями?

Ну и твои представления об этом — просто дикий наивняк. Это работает так только в голове зумера-долбоёба ни написавшего ни строчки кода. Если переписывание одного конкретного модуля может стоить 100k$, то переписывание 10 модулей программы может запросто обойтись в десятки миллионов, а всей программы в сотни миллионов долларов. Сложность/стоимость/время написания самих модулей может варьироваться и расчитывается оно нелинейно, не думаешь? Так же на цену переписывания влияет ситуация на рынке...Но это вообще забей, тебе до этого далеко.
Аноним 23/07/20 Чтв 15:35:24 1758526260
>>1758509
>>1758345
Как правило, когда кто-то тригерится на боевые картиночки, то это значит что это его задело.
Аноним 23/07/20 Чтв 15:44:47 1758535261
>>1758524
Переписывание одного модуля вообще никак не повлияет на безопасность хрома (ну это если мы допустим, что на расте действительно переписали безопасно, а не через ансейфы, хехе). Хром станет безопасным только когда перепишут все модули. Поэтому растовикам и неприятно упоминать, что переписывание всего на раст обойдется в
>запросто обойтись в десятки миллионов, а всей программы в сотни миллионов долларов.
Аноним 23/07/20 Чтв 15:49:31 1758539262
>>1758535
Скорее всего этого и не произойдет, ибо экономически это пиздец как невыгодно.
Но в будущем, при условии что раст выстрелит, гугл могут написать новый йоба-браузер и задепрекейтить хром. Хомячкам скармливать что-то новое в красивой оберточке - проще простого, особенно когда этим занимается такой гигант, как гугл.
Аноним 23/07/20 Чтв 15:52:01 1758540263
>>1758539
Вот когда напишут, тогда и приходите.
Аноним 23/07/20 Чтв 18:55:25 1758670264
>>1758539
Будет как-то так:
1. Эппл заебётся пилить своё поделие на устаревшем вебките
2. Форкать хром как-то слишком мейнстримно для них, форкнут ФФ - тем более, шта
а. родитель раста как раз в эппл пилит свифт
б. по части лгбт/блм продвинутости мозилла и раст сейчас ушли далеко вперёд, Эппл и тут надо будет догонять
3. Погрязший в уязвимостях Гугл форкнет эпплоподелие
получится повтор цикла
KHTML -> WebKIT -> Chrome, только вместо KHTML будет ФФ
Аноним 23/07/20 Чтв 22:32:48 1758816265
Аноним 23/07/20 Чтв 23:18:17 1758842266
code.png 14Кб, 442x484
442x484
Вопрос знатокам

Решил угареть по расту, пишу вот утилитку для себя по уцелевшим воспоминаниям раст бука.

По коду:
push должен имплементироваться страктом
header, footer могут имплементироваться страктом
body, content никогда не должны быть имплементированы для стракта


Создал трейт для того, чтобы раздавать его остальным структурам и не писать лишний код, но сука не знаю как сделать, чтобы работало body. Я понимаю, что видимо трейтами подобную задачу не решить, но может хоть дорогу верную подскажите. Писать бойлерплейт с fn body для каждой сущности (а их там штук 10 будет) совсем некрасиво выходит.
Аноним 24/07/20 Птн 00:42:01 1758891267
>>1758842
Трейт это просто набор методов которые можно вызвать. Поэтому "не должны быть имплементированы" лишено смысла.

В остальном я нихуя не понял, но похоже у тебя много очень похожих структур и может тебе просто поле с енумом добавить?
И точно ли нужен тебе этот трейт?
Может вообще все типы/структы переосмыслить?
Можно еще макросами попробовать.
Аноним 24/07/20 Птн 00:55:51 1758893268
>>1758891
>Можно еще макросами попробовать.
Я так понял это ещё больший геморрой.

>и может тебе просто поле с енумом добавить?
Можешь объяснить что имеешь ввиду? Я не совсем понял.

>Поэтому "не должны быть имплементированы" лишено смысла
Если не задавать определения для метода трейта без реализации, то компилер будет ругаться. А значит не лишено?

>В остальном я нихуя не понял, но похоже у тебя много очень похожих структур
Да. У меня куча (10+) "классов" с одинаковыми "свойствами", почти все они должны переопределять только один метод - push (логика в котором отличает их друг от друга). Но я не знаю как подобное реализовать на Rust. Гугл ответов не дал. Я не верю, что в расте такое нельзя провернуть, но как нагуглить точнее не знаю.

>Может вообще все типы/структы переосмыслить?
Единственное, что я придумал - просто сделать огромные функции. Но это дико уродливо.

У меня видимо ООП головного мозга, но я не понимаю как сделать это красивей и лаконичней в данном случае. Прошу помощи.
Аноним 24/07/20 Птн 02:00:27 1758904269
>>1758893
> для метода трейта без реализации
Это как раз наоборот, должны быть имплементированы.

> куча (10+) "классов" с одинаковыми "свойствами"
Нужны ли тебе эти 10 "классов"? Или лучше оставить один, добавить поле kind и, в зависимости от того что там, делать разные вещи в push.
Аноним 24/07/20 Птн 02:16:57 1758910270
>>1758904
>лучше оставить один, добавить поле kind и, в зависимости от того что там, делать разные вещи в push
Вот это современный и безопасный подход, браво.

И чем это лучше C со структурой, в которой есть указание типа и указатель на void?
Аноним 24/07/20 Птн 02:19:05 1758912271
>>1758904
>Или лучше оставить один, добавить поле kind и, в зависимости от того что там, делать разные вещи в push.
Как это? C помощью match? Думаю получится как очень уж монструозно и уродливо. Или можно это как-то по другому обработать?

Можно в принципе вызывать функцию push для каждого, но проблема в том, что некоторые ещё могут переопределять методы header и footer.
Аноним 24/07/20 Птн 02:20:57 1758915272
>>1758910
>И чем это лучше C со структурой
А как бы ты подобное на си провернул? Там же даже до плюсов не было екстендов с методами, насколько я помню. Тебе бы такую же ебалу бы пришлось делать. Но при этом ещё и с возможностью словить ub при выходе за какую нибудь границу массива.
Аноним 24/07/20 Птн 02:31:35 1758921273
>>1758912
>>1758910
Я не знаю задачу и меня смущает именно
> куча (10+) "классов" с одинаковыми "свойствами"
Аноним 24/07/20 Птн 02:32:28 1758922274
>>1758915
>Тебе бы такую же ебалу бы пришлось делать
Так в этом и проблема. Твой подход настолько же современ, насколько и подход ненавистных тебе сишников.

>А как бы ты подобное на си провернул?
Начнёт с того, что я бы в любом случае старался избегать подобных велосипедов, и взял бы другой язык - посахарнее, в котором подобное можно делать из коробки. Но если бы понадобилось - я бы воспользовался макросами или препроцессором для генерации логики, и добавил туда побольше assert'ов.

>Но при этом ещё и с возможностью словить ub при выходе за какую нибудь границу массива.
Хочешь сказать что в Rust, если ты читаешь указатель на тип a, когда там тип b - будет не тоже самое?
Аноним 24/07/20 Птн 02:39:25 1758927275
>>1758921
Суть токова, у меня есть код на другом языке. Там есть класс от и него наследуется 10 других классов, они переопределяют метод push, а некоторые ещё переопределяют методы header и footer. Очень всё аккуратно.

Я ради тренировки решил эту утилитку переписать на расте, но не понимаю как это сделать лаконичней средствами раста.

>>1758922
>Твой подход настолько же современ, насколько и подход ненавистных тебе сишников
Какой мой подход? О чём ты?

>Но если бы понадобилось - я бы воспользовался макросами или препроцессором для генерации логики, и добавил туда побольше assert'ов
>Хочешь сказать что в Rust, если ты читаешь указатель на тип a, когда там тип b - будет не тоже самое?
Ты просто не понимаешь о чём говоришь. Абсолютно. Не вижу смысла тут о чём то рассуждать.
Аноним 24/07/20 Птн 02:51:31 1758930276
>>1758927
>Какой мой подход?
This:
>лучше оставить один, добавить поле kind и, в зависимости от того что там, делать разные вещи в push.
Аноним 24/07/20 Птн 02:54:08 1758933277
>>1758930
Такой большой, а двачами пользоваться не научился. По твоему мнению это я сам себе отвечал?
Аноним 24/07/20 Птн 02:57:50 1758934278
>>1758933
>Такой большой, а двачами пользоваться не научился
Так самокритично. А теперь перечитай ещё раз ветку триолога. Если ты не он, то какого чёрта ты отвечал на посты, в которых я задавал вопросы ему?
Аноним 24/07/20 Птн 02:59:38 1758935279
>>1758934
>Если ты не он, то какого чёрта ты отвечал на посты, в которых я задавал вопросы ему?
Что я ещё должен не делать?
Аноним 24/07/20 Птн 06:02:11 1758973280
image.png 2216Кб, 1500x998
1500x998
image.png 1291Кб, 900x606
900x606
image.png 2528Кб, 1600x1162
1600x1162
Ппц, расту теперь чтобы самоутвердится надо с js сравниться?
Вот реальное положение.
1. С++ // Популярная "рабочая лошадка" уже много лет.

2. Rust // Никому не нужно ржавое говно, но за то мог безопасно садиться на воду.

3. JS // Частный спортивный самолет, конечно, грузоподъемность не такая как у боинга, но за то на нём может научиться летать каждый.
Аноним 24/07/20 Птн 06:05:04 1758974281
>>1758973
>fix
зато

Для любителей покопаться в говне нелогичной орфографии.
Аноним 24/07/20 Птн 10:35:49 1759060282
>>1758973
747 как раз списывают в хлам, символично. А раст, это скорее эйрбас, который больше думает за пилота.
Аноним 24/07/20 Птн 11:42:24 1759106283
>>1759060

Большую ёбу от эйрбаса (A380) так-то тоже списывают. Авиаперевозки изменились, возить пачками в охулиард паксов через международные ёба-терминалы стало невыгодно.
Аноним 24/07/20 Птн 12:03:19 1759119284
>>1759106
И тем не менее, символичен именно выбор картинки, ведь что кресты, что 747 - оба подходят под определение
>Популярная "рабочая лошадка" уже много лет
и обоих потихоньку списывают на свалку.
Аноним 24/07/20 Птн 12:13:01 1759123285
>>1758842
Тащемта, либо пишешь имплементацию трейта для всех типов, либо занимаешься вот таким динамикомакакенгом https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=13d3baccaaeffff4868d46f529a3683a
можно с макросами
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=dcc77c1da1ea7d4b162b21451a232cee
а можно разобраться с proc_macro и запилить это в виде
#[derive(GenerateMneEtuHuituSuka)]
struct ...

>>1758910
Тем, что это типобезопасно, с борроу чекером и куртизанками чел. Раст и есть C с навороченными типами. Отказ от всех подобных плюх — это именно продуманное решение, к которому приводит идеология explicit over implicit. Какое нибудь наследование и уж тем более интерфейсы, позволяющие регулировать поля — это вот нихуя не zero cost abstraction (первый тащит динамеческий диспатч с виртуальными таблицами и прочим, а второй это всё + ещё кучу метаинформации, с которой можно чуть ли не исходники восстанавливать как в джаве/шарпе/обжс).
Аноним 24/07/20 Птн 14:59:56 1759226286
>>1758910
Ты не объяснил нормально, что тебе нужно. Можешь сделать что-то такое:

struct {
body : Body
kind: Kind
}

enum kind {
A(i32)
B((i32,f32))
}

body обработаешь один раз, а более конкретные данные через матч.
Аноним 24/07/20 Птн 16:12:37 1759277287
>>1759123
Спасибо, интересно. Попробую.

>>1759226
Тоже спасибо. Но тот чел - не я.
Аноним 24/07/20 Птн 16:19:45 1759285288
struct.png 12Кб, 433x319
433x319
>>1759123
>можно с макросами
Единственное что меня смущает. Неужели нет нормальных способов определить структуру, которая по полям полностью соответствует другой структуре или дополняет её обычным способом? Они просто обязаны запилить что-то подобное, я так щитаю.

Да и трейты, которые могут обращаться к свойствам очень бы не помешали.
Аноним 24/07/20 Птн 17:24:59 1759326289
>>1759285
Можно и внутри макроса создавать структуры, но если они не все одинаковые будут, то там начинается ебля с :tt, :item и скобочками. Проще отличающиеся руками запилить. Наследования в расте не было, нет и не будет, потому что наследование — антипаттерн из мира ООП; хочешь наследования — Python/C++ brr.

Трейты не могут обращаться к свойствам, потому что это тебе не методы. Если хочешь обращение к свойствам, то делаешь `trait GiveBody: ?Sized { fn give_body(&self) -> Cow<str>; }`, имплементишь для каждой своей структуры, а потом делаешь `fn body_shaker<T: GiveBody>(body_giver: &T) {}` или `trait BodyShaker: GiveBody {}` и уже можешь там везде использовать `body`.
Аноним 24/07/20 Птн 17:41:12 1759333290
>>1759285
>Да и трейты, которые могут обращаться к свойствам очень бы не помешали.
Я в том же сообщении писал чому их нет
>интерфейсы, позволяющие регулировать поля — это вот нихуя не zero cost abstraction (первый тащит динамеческий диспатч с виртуальными таблицами и прочим, а второй это всё + ещё кучу метаинформации, с которой можно чуть ли не исходники восстанавливать как в джаве/шарпе/обжс).
из вариантов — макачить на этих самых процедурных макросах в которых можно прям ручками писать в AST, но это тоже костыли не хуже уровня плюсовых SFINAE/итд. Но хоть появились не случайно, лол.
Аноним 24/07/20 Птн 17:42:59 1759336291
Аноним 24/07/20 Птн 17:47:57 1759339292
>>1759326
>>1759333
>>1759336
Спасибо. У меня просто ооп мозга. Понимаю, что плодить 10 одинаковых структур без наследования это мрак и дурной подход, но с трудом представляю как это сделать по другому. Буду пытаться ковырять по вашим примерам.
Аноним 24/07/20 Птн 18:39:50 1759385293
Привет, анон. Скинь ссыль на телеграм чат про ембед на Расте.
Аноним 24/07/20 Птн 19:57:30 1759450294
>>1759339
>без наследования это мрак и дурной подход
Ну так сделай своё наследование, если так уж приспичило. Тебе ничего не мешает это сделать, но и также можешь сделать это, как анон >>1759336 говорит.
Аноним 24/07/20 Птн 22:29:05 1759519295
>>1759336
>Procedural macros are unhygienic. This means they behave as if the output token stream was simply written inline to the code it's next to. This means that it's affected by external items and also affects external imports.
Очередная прекрасная безопасная возможность языка :3
Аноним 24/07/20 Птн 22:34:26 1759525296
>>1759519
Говно если и вылезет, то при конпеляции.
Аноним 24/07/20 Птн 23:24:38 1759564297
>>1759519
А что нибизапаснова-то?
Аноним 24/07/20 Птн 23:26:44 1759567298
>>1759564
Ты будешь думать что твой код делает одно. А кто то напишет функцию с именем от чего у тебя совсем другое наворотится. Прям в лучших традициях препроцессора Си
Аноним 25/07/20 Суб 00:14:46 1759614299
15949332304910.jpg 190Кб, 756x751
756x751
>>1759567
Ситуацию эту просимулируй, покеж.
>А кто то напишет функцию
>Procedural macros
> функцию
чел..
Аноним 25/07/20 Суб 03:26:05 1759659300
>>1759567
Всё всплывёт при компиляции.
Аноним 25/07/20 Суб 07:55:14 1759700301
>>1759659
>unhygienic
>Всё всплывёт при компиляции.
Не все.
Аноним 25/07/20 Суб 08:27:32 1759707302
Аноним 25/07/20 Суб 08:49:17 1759714303
>>1759707
Например ты будешь думать что у тебя программа считает с двойной точностью, а она считает с одинарной.
Аноним 25/07/20 Суб 13:56:12 1759832304
>>1759714
И при чём тут вообще макросы-то?
Аноним 25/07/20 Суб 14:10:42 1759843305
>>1759832
Потому что макросы unhygienic
Аноним 25/07/20 Суб 14:33:45 1759878306
>>1759339

`boilerspawn! { MyStruct, MyOtherStruct, … }`

Это если они прямо совсем идентичные. Если с маленькими изменениями, то там надо в кроличью нору :tt, :item и &()* заползать, но это я уже говорил.
Аноним 25/07/20 Суб 14:36:57 1759885307
>>1759878
А, кстати, можно делать несколько impl блоков на одну структуру. Так что если различий структурных нет, только методы отличаются, то после макроса делаешь

impl MyStruct {
fn kek() {}
}
impl MyOtherStruct {
fn lol() {}
}

даже если внутри макроса уже есть блоки `impl MyStruct` и `impl MyOtherStruct`.
Аноним 25/07/20 Суб 14:38:17 1759889308
Аноним 25/07/20 Суб 14:47:59 1759918309
>>1759889
Там то просто ошибка. А может быть что не тот тип подцепится.
Аноним 25/07/20 Суб 14:49:57 1759920310
>>1759918
Что? Там вместо f64 используется f32 (на что и указывает type_name). В макросе можно f64 сделать алиасом для любого типа и этот алиас будет действовать и за пределами макроса.
Аноним 25/07/20 Суб 14:50:00 1759921311
>>1759889
А нормальный пример без умышленного прострела ноги можно?
>>1759843
Hygienic макросы в нормальных языках называются функциями, лол.
Аноним 25/07/20 Суб 14:55:16 1759926312
1461270191636.png 50Кб, 1887x591
1887x591
>>1759920
Хз так и должно быть?
Аноним 25/07/20 Суб 14:56:02 1759927313
>>1759921
А нормальные примеры ты будешь потом ручками проверять, вслед за ансейфом, еще и все макросы, все использования макросов, и все использования имен использующихся в макросах.
Аноним 25/07/20 Суб 14:58:14 1759932314
>>1759926
Да, раст жалуется, что твой новый тип f64 не соответствует именованию типов принятому в растокоде (с большой буквы, КамелКэйс). Можно поставить #[allow(non_camel_case_types)] в макросе и варнинг уйдёт.
Аноним 25/07/20 Суб 15:05:30 1759939315
>>1759889
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=b8d7eb3e6147bdc688a6247f23496f22
Баюс-баюс

>>1759926
Ну а как по воему макросы должны работать в байтойобском языке? Написал такой макросик с ассемблером чтобы подхачить стек, переопределил всё что нужно, а компилятор такой — иди-ка ты нахуй, другалёчек, тут низя какать в AST? Это же Раст а не не хачилелиспы.
Аноним 25/07/20 Суб 15:09:40 1759942316
>>1759939
> Баюс-баюс
> 1234.9_f64
Ну да, а если убрать суффикс, то замены даже не заметишь, потому что у раста есть неявные преобразования у числовых литералов. Шикарный способ выстрелить себе в ногу.
Аноним 25/07/20 Суб 15:18:24 1759948317
>>1759942
> Неявные типы в литералах Rust, сделанные для удобства; фиксится добавлением типа к литералу.
> Неявные преобразования чисел (и булей) в C; не фиксится ничем.
Аноним 25/07/20 Суб 15:18:44 1759949318
>>1759939
Вот и не забудь нигде проставить когда все 30млн строк кода Хрома перепишешь.
Аноним 25/07/20 Суб 17:17:07 1760025319
Аноним 25/07/20 Суб 18:39:08 1760064320
>>1759942
Шикарный, правда выдуманный на 120%.

>>1759949
О, вы из 80-х? Нам тут в 2к20 линтеры завезли для такого, можно даже PR-ы автоматически заворачивать если там что-то не так.

>>1760025
> This is a duplicate of the already fixed #73609
>It seems like this bug somehow slipped into beta :/
Это называется перестановочки в мозилле. Зато эффективные кобанчики денех с нон профит прожектов сэкономили))0
Аноним 25/07/20 Суб 18:43:25 1760066321
>>1760064
> It seems like this bug somehow slipped into beta :/
Он slipped не просто в бэту, а в релизную версию 1.45. И нашёл баг какой-то хуй из стэковерфлоу. Что смешно версия 1.45.1 даже ещё не вышла, а те кто по какой-то причине будут конпелировать на 1.45 получат потенциальные UB и без ансейфов с колянами.
Аноним 25/07/20 Суб 18:44:51 1760068322
1500888136122.jpg 71Кб, 1280x720
1280x720
>>1759889
Бля, а я думал он заорёт что-то вроде "f64 defined multiple times".
Аноним 25/07/20 Суб 18:52:25 1760070323
>>1760068
Если поставить в начале use core::f64;, то заорёт. Хуй их знает зачем они разрешили переопределять типы из prelude (т.е. типы автоматически импортирующиеся в каждой программе в расте).
Аноним 25/07/20 Суб 18:56:37 1760073324
Ребята, а если не юзать ансейф, то UB все равно может быть в некоторых ситуациях?
Аноним 25/07/20 Суб 18:59:34 1760076325
>>1760073
Если будет баг в либах или самом расте.
Аноним 25/07/20 Суб 19:00:33 1760078326
>>1760073
Да. Нагадить могут компилятор, сгенерировав говно вместо кода (как в баге выше), крейты, апи стандартной библиотеки, которые могут иногда выдавать UB если не повезёт [1], операционная система, железо.

[1]: https://github.com/rust-lang/rust/issues/10389
Аноним 25/07/20 Суб 19:06:59 1760082327
>>1760066
Видимо с с беты ничего такого не нашли и выпустили, типичное дело. Тащемта, даже гуглы с эплами переодически пропускают вещи и более детские ошибки с их-то ебическими бюджетами и уровнями QA, вспомнить всякие экраны с пинами который можно обойти через камеру/нотификейшены или как фб месяц назад и ещё неделю назад ронял 3/4 приложений в мире из-за того, что у них в SDK не было проверок на nil.
>И нашёл баг какой-то хуй из стэковерфлоу
Ну так 80% багов всегда находят юзеры а не разработчики.

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

>>1760070
Скорее всего там вообще никаких проверок на эту тему и нет, т.к. не было кейса когда до такой хуйни неумышленно кто-то додумался.
Аноним 25/07/20 Суб 19:10:04 1760083328
>>1760082
> Скорее всего там вообще никаких проверок на эту тему и нет, т.к. не было кейса когда до такой хуйни неумышленно кто-то додумался.
В целом это сделано специально чтобы можно было добавлять новые элементы в prelude без поломки обратной совместимости. Но ведь можно было хотя бы элементарные типы запретить переопределять.
Аноним 25/07/20 Суб 19:42:28 1760094329
Знаю основы C/C++/немного жабы, учусь в этом направлении.
Хочу сам для себя для души попробовать Rust.
Но не хочу ограничиваться одной консолью, возникает вопрос, можно ли написать GUI или хотя бы работать с ВЕБ-ятиной без жопоебли? На сколько это реализовано для удобства программиста?
Аноним 25/07/20 Суб 19:45:16 1760097330
>>1760094
> можно ли написать GUI или хотя бы работать с ВЕБ-ятиной без жопоебли
Нет, и нет (если речь про фронтэнд). Всё сырое в альфа (или пре-альфа) состоянии. Если речь про бэкэнд, то можно попробовать. Сам балуюсь с graphql [1] на расте и выходит ничо так. Но всё равно сыровато.

[1]: https://github.com/async-graphql/async-graphql
Аноним 25/07/20 Суб 19:51:52 1760099331
>>1760082
>Конечно, оно у тебя даже в какой нибудь джаве (или, проти господи, хачкеле) может вылезти.

Не может. Только если это будет динамическая либа, написанная на небезопасных языках вроде С или С++, и там будет эдж кейс, который наебнет прогу, но не сам код на джаве/хачкеле
Аноним 25/07/20 Суб 19:55:14 1760100332
>>1760094
>можно ли написать GUI
Можно.

>работать с ВЕБ-ятиной без жопоебли?
Нельзя, только с поёбкой в сраку, причём если это бэк — то всё равно тормозить всё будет IO+база, а если фронт — ну просто земля тебе пухом.

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

>На сколько это реализовано для удобства программиста?
На 0. Это язык дле ебли байтиков, с кучей анальных ограничений чтобы отлавливать максимальное кол-во косяков в компайлтайме.
Для удобства программиста есть языки вроде питона/руби/шарпа/свифта/котлина/итд.

>Хочу сам для себя для души попробовать Rust.
Чтобы попробовать его "для души" надо хотя бы пару лет поотлавливать сегфолты в каких нибудь плюсах, чтобы понимать почему раст сделан вот так и почему это лучше, иначе ты просто нихуя не поймёшь и забьёшь поборовшись с компилятором пару вечеров.
Аноним 25/07/20 Суб 20:00:33 1760104333
>>1760099
Ага, не может такого быть, как и утечек памяти которые даже на этих языках как-то появляются и всего остального.
А учитывая что та же жава сейчас выходит каждые пол года (а не как раньше раз в 10 лет, 9 из которых — это обкатка 1,5 новых "фич") и туда уже пихают почти всё, что есть в этих ваших модных языках — я бы на твоём месте свечку так не держал.
Аноним 25/07/20 Суб 20:03:10 1760106334
>>1760104
Утечка памяти это как бы не UB. В расте так вообще утечка считается абсолютно безопасной вещью и никак не возбраняется.
Аноним 25/07/20 Суб 20:12:29 1760113335
>>1760064
Мм, линтер с искусственным интеллектом? Он прямо все 30кк строк каждый раз проверит на предмет что твой коммит не изменит семантику какого то макроса?
Аноним 25/07/20 Суб 20:14:30 1760114336
>>1760082
А, ну раз гуглы и фейсбуки роняют, то и безопасному языку можно ) пздц,
Аноним 25/07/20 Суб 20:18:12 1760118337
>>1760106
Ну а что, все правильно. Зато так точно не будет use after free.
Аноним 25/07/20 Суб 20:23:40 1760121338
>>1760083
Мне кажется проблема скорее в этом, а не в макросах.

Вообще этот дроч на обратную совместимость по-моему везде больше проблем приносит, чем толку. Но у меня почти нихуя опыта в больших и долгих проектах.
Аноним 25/07/20 Суб 20:32:56 1760125339
>>1760106
>Утечка памяти это как бы не UB
А я сказал обратное?

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

>>1760114
А в чём предъява-то? Ну выпустили версию с багом и выпустили, ты в этом находишь какой-то сакральный смысл? Или у тебя в жс мире принято прыгать на новый релиз сразу после выхода, а не сидеть в проде на LTS?

>>1760121
>обратную совместимость по-моему везде больше проблем приносит
Да не по твоему, оно так и есть по факту, причём оно так везде — и в промышленной области, где есть вот такое говно как плюсы/джава/кобол и ты будешь на нём писать потому что уже написаны хуйлионы строк, и в научной (где есть какая-то конъюнктура и тебя будут поливать говном а если ты ещё и не 0 в ней, то запишут в плоскоземельщики и предадут анафеме нахуй на неправильное мнение, например — если что-то пёрнешь про истерию с потеплением), и в социальной (совки и прочая ортодоксия), и везде.
Аноним 25/07/20 Суб 20:37:27 1760129340
>>1760121
В макросах эта проблема выражается в перенятом из плюсовских макросов namespace clash (что особенно весело если название модуля в области видимости макроса совпадает с названием крейта из которого макросу нужно взять пару типов).
Аноним 25/07/20 Суб 20:49:36 1760135341
>>1760125
>А в чём предъява-то?
В том что кто то возьмет язык потому что его разрекламировали как безопасный, а потом у него боинг упадет а ему такие - ну а чо, у фейсбука сайт тоже падал ))
Аноним 25/07/20 Суб 21:18:46 1760151342
>>1760135
>самолёты
>самая последняя версия компилятора))0
В жс-макакены уже берут даже неумеющих читать?
Аноним 25/07/20 Суб 21:23:24 1760153343
>>1760151
А надо брать предпоследнюю, где еще больше багов? Справедливо.
Аноним 25/07/20 Суб 21:28:16 1760156344
>>1760153
Бля, чел реально аутист. Ты прочитал что я тебе писал?
Аноним 25/07/20 Суб 21:32:28 1760159345
>>1760151
> >самая последняя версия компилятора))0
Ну вот и возьмут версию 1.45 вместо последней, лел. К тому же у раста ЛТС версий нет. Любая версия кроме последней - неподдерживаемая.
Аноним 25/07/20 Суб 21:36:04 1760161346
1444974627180.jpg 20Кб, 500x284
500x284
> Each Rust release is tested against all crates on crates.io - including running their tests - and none were affected.
А вот это мне понравилось. Даже и не знал.
Аноним 25/07/20 Суб 22:13:08 1760179347
>>1760161
Только вот тестируют на линуксе, а значит виндовсо- и мако- специфичный код в пролёте (ну и плюс вроде как тестируют только на x86_64).
Аноним 25/07/20 Суб 22:27:58 1760188348
1556767253530.png 303Кб, 840x699
840x699
>>1760161
А что если в коде который выполняет тесты баг и он не отлавливает ошибки?
Аноним 25/07/20 Суб 22:45:58 1760199349
Аноним 25/07/20 Суб 23:39:44 1760237350
>>1760097
>можно ли написать GUI
>Нет
А чому нет? Если я не чужое собираюсь использовать, а писать с нуля своё, например.
Аноним 25/07/20 Суб 23:57:00 1760247351
>>1760100
Ты что то путаешь. Раст это язык специально для фронтенда веб макак.
Аноним 26/07/20 Вск 09:28:33 1760418352
>>1760237
Если только на винапи или winrt (современный аналог винапи начиная с виндовс 8 или 10). Только для них есть адекватные биндинги. Ну ещё немного гтк. Всё остальное в (пре-)альфа состоянии.
Аноним 27/07/20 Пнд 12:52:14 1761433353
>>1760070
Чтобы можно было делать всякие штуки вроде
use InlinableString as String;
Иногда дефолтный выбор не является лучшим.
Аноним 27/07/20 Пнд 12:55:45 1761436354
>>1761433
И сломать все вызовы функций со сторонних модулей, которые ожидают стринг, а не твоё говно? Это тебе не С++ хеадеры. Тут такая замена сработает только внутри одного файла.
Аноним 27/07/20 Пнд 13:17:32 1761445355
bug1.png 27Кб, 611x307
611x307
bug2.png 36Кб, 610x172
610x172
>>1760025
Местный расист-кун был прав, лучше бы баги правили, а не ебались в жопы и неграм ботинки целовали.
Аноним 27/07/20 Пнд 13:26:46 1761452356
>>1761445
А он был пофикшен на момент репорта.
Аноним 27/07/20 Пнд 13:34:16 1761454357
>>1761452
Ну.. ок. А пацаны на стейбле с 1.45 сидят сейчас?
Аноним 27/07/20 Пнд 13:38:05 1761456358
Аноним 27/07/20 Пнд 14:35:24 1761493359
image.png 100Кб, 1920x964
1920x964
>thread 'main' panicked at 'attempt to add with overflow
Почему это не проверяется на этапе компиляции? и как побороть кстати? я решил не терять интерес и не вникать в тонкости - сразу в бой, а тут такое и как дальше с этим быть непонятно
Аноним 27/07/20 Пнд 14:37:50 1761494360
>>1761493
> Почему это не проверяется на этапе компиляции?
Возможно проверяется. Хороший оптимизатор вполне может выкинуть все вычисления и оставить в мейне только вызов паники.
Аноним 27/07/20 Пнд 14:39:16 1761496361
>>1761494
А как пофиксить? Я что-то не соображаю, что не так
Аноним 27/07/20 Пнд 14:43:02 1761497362
>>1761496
Это переполняется arg: i32. Если поставить меньше циклов, то работает. А как это поправить, сделать проверку на размер i32? Это получается что у меня программа может упасть в неожиданных местах? Бред
Аноним 27/07/20 Пнд 14:43:35 1761498363
>>1761496
Ну у тебя arg в функции slow постоянно увеличивается, так что паника будет либо в пятой, либо в седьмой строке. Либо где-то вместо плюса должен быть минус, либо вместо i32 нужно использовать i128 (или какой-нибудь BigInt, если и 128 бит не хватает).
Аноним 27/07/20 Пнд 14:44:17 1761499364
>>1761497
> Это получается что у меня программа может упасть в неожиданных местах?
В релизной версии не упадёт, а выдаст мусор (там проверок на переполнение нет).
Аноним 27/07/20 Пнд 14:45:03 1761500365
>>1761497
А тебе надо чтоб как было? В релизе оверфлов без паник будет. Так же есть методы овефловинг_мул, сатуратинг, чекед итд
Аноним 27/07/20 Пнд 14:45:09 1761501366
>>1761499
>В релизной версии не упадёт, а выдаст мусор
Ещё лучше. Что-то он мне перестал нравиться
Аноним 27/07/20 Пнд 14:46:28 1761502367
>>1761501
Я тебе открою тайну - любой язык так сделает. В расте обещают только memory safety, а от логических ошибок компилятор не защитит.
Аноним 27/07/20 Пнд 15:30:09 1761548368
>>1761493
> Почему это не проверяется на этапе компиляции?
Лол. Я хотел посоветовать ему использовать константные функции, но вместо этого нашёл баг в компиляторе, где раст иногда не проверят переменные на переполнение в константах.
Аноним 27/07/20 Пнд 16:59:09 1761614369
>>1761501
>Ещё лучше. Что-то он мне перестал нравиться

Используй крейт для длинной арифметики, если не хватает четырех\восьми байт. Таки не Питон, за тебя это никто не сделает.
Аноним 27/07/20 Пнд 17:04:18 1761622370
>>1761614
> четырех\восьми байт
В расте есть и 16-байтовые типы: i128/u128, но в его примере их тоже не хватит.
Аноним 27/07/20 Пнд 18:36:58 1761691371
>>1761445
LLVM говна в штаны залило
Аноним 27/07/20 Пнд 18:38:57 1761695372
В расте есть Контракты? (Contracts)
Аноним 27/07/20 Пнд 18:46:15 1761700373
>>1761691
Нихуя. Это раст сам себе залил. Конкретно оптимизации в компиляторе, если два раза присваиваются константы.
Аноним 27/07/20 Пнд 19:35:02 1761726374
Аноним 27/07/20 Пнд 20:14:53 1761758375
>>1761695
Это типо чё? Какая-то динамическая хуйня для пидоров?
Аноним 27/07/20 Пнд 20:17:36 1761762376
>>1761758
Это типо ассертов, только круче.
Аноним 27/07/20 Пнд 20:21:04 1761763377
>>1761762
А в чём крутость относительно ассертов?
Аноним 27/07/20 Пнд 20:22:59 1761765378
Аноним 27/07/20 Пнд 20:24:37 1761767379
Аноним 27/07/20 Пнд 20:25:19 1761768380
>>1761763
Нашёл такое https://crates.io/crates/contracts это оно? Если да, то нахуй не нужно, это ёбаный раст, ты бы ещё для сей такое предложил.
Аноним 27/07/20 Пнд 20:26:25 1761770381
>>1761767
Я как бы не тот, кто спрашивал. А тот проект имеет последний коммит в 2016 году и реализован на ещё тогдашних костыльных макросах, которые в современном расте не работают.
Аноним 27/07/20 Пнд 20:37:30 1761775382
>>1761758
Предусловия и постусловия
>>1761768
В кресты добавляют.
Аноним 27/07/20 Пнд 20:45:13 1761782383
>>1761775
Кресты - язык для игрушек и всяких микросервисов.
Аноним 27/07/20 Пнд 20:46:59 1761785384
>>1761782
Раст - язык ни для чего.
Аноним 27/07/20 Пнд 20:52:39 1761788385
>>1761785
Быстренько отбомбился.
Аноним 27/07/20 Пнд 21:25:03 1761805386
>>1761788
Ну и зачем ты нам об этом сообщил?
Аноним 27/07/20 Пнд 21:31:02 1761810387
>>1761805
Зачем ты продолжаешь бомбить, долбоёб?
Аноним 27/07/20 Пнд 22:06:03 1761850388
>>1761810
Бомбишь тут только ты, растаман))
Аноним 27/07/20 Пнд 22:39:30 1761873389
>>1761770
Все проекты на которые есть ссылки из википедии довольно мертвы, что немного намекает на нужность этих контрактов.
Аноним 27/07/20 Пнд 22:41:09 1761874390
>>1761614
>>1761622
Можете вкратце пояснить, как надо поступать чтобы не было переполнения? Длинную англ статью нет желания читать. Пожалуйста, аноны
Аноним 27/07/20 Пнд 22:42:16 1761876391
>>1761874
Чтобы при переполнении этот int равнялся int_max или -int_max, как вообще задетектить переполнение чтобы прога не упала? Это жизненно необходимо
Аноним 27/07/20 Пнд 23:08:35 1761886392
Аноним 27/07/20 Пнд 23:20:31 1761891393
Аноним 27/07/20 Пнд 23:24:13 1761893394
Аноним 27/07/20 Пнд 23:24:52 1761894395
>>1761886
> overflowing_add
Разве не saturating_add?
Аноним 27/07/20 Пнд 23:26:28 1761895396
>>1761894
Зависит от того как тебе надо.
Аноним 27/07/20 Пнд 23:29:23 1761897397
>>1761895
Он написал что ему надо. Чтобы при переполнении, был либо i32::MAX (в случае сложения) либо i32::MIN (в случае вычитания).
Аноним 27/07/20 Пнд 23:31:49 1761898398
>>1761895
overflowing_add по сути аналогичен оператору +, только ещё возвращет булево значение которое указывает на переполнение и не паникует в дебаг-билдах.
Аноним 27/07/20 Пнд 23:32:53 1761899399
Аноним 27/07/20 Пнд 23:34:15 1761901400
>>1761873
Это говорит о кривости и нестабильности раста
Аноним 27/07/20 Пнд 23:36:25 1761904401
Аноним 27/07/20 Пнд 23:38:32 1761905402
>>1761765
Ну и кому в 2020 может понадобиться устаревшая эфелепараша, м?
Аноним 27/07/20 Пнд 23:45:58 1761908403
>>1761904
Никто не асилил добавить фичу.
Аноним 27/07/20 Пнд 23:49:34 1761912404
>>1761908
5 лет назад добавили, но никому не понадобилось.
Аноним 27/07/20 Пнд 23:57:49 1761916405
Аноним 28/07/20 Втр 00:01:00 1761918406
>>1761886
Но это всё равно какой-то пиздец. Получается, я не могу гарантировать, что внешние данные всегда поместятся в такой промежуток чтобы прога не упала. Получается всегда надо их клампить

>>1761893
Не, спасибо, это тестовый пример который я переписал из js. Проверяю, как работает асинк в жс если интересно асинк однопоточный, slow выполнится перед fast в любом случае
Аноним 28/07/20 Втр 00:02:14 1761920407
>>1761918
>Проверяю
*иду к этому, завтра продолжу
Аноним 28/07/20 Втр 00:05:55 1761924408
>>1761918
> Получается, я не могу гарантировать, что внешние данные всегда поместятся в такой промежуток чтобы прога не упала.
Это во всех яп так. Только в жс не 32 бита, а 52, лол.
> в жс если интересно асинк однопоточный, slow выполнится перед fast в любом случае
В расте поточность задаётся перед вызовом функции (либо при инициализации реактора, если используешь стандартный оператор await).
Аноним 28/07/20 Втр 00:15:47 1761929409
>>1761918
Ты не поверишь, но для этого придумали типы данных. Т.е. никто в здравом уме не работает с сырыми цифрами, если нужен диапазон. Более того, если ты просто клампаешь, тебе вообще пофиг на то что пользователь вводил выходит?
Аноним 28/07/20 Втр 07:43:22 1762006410
Аноны, я тут что подумал. Помните, почему выстрелил x86? Во многом потому, что почти сразу была альтернативная реализация, не было лочки на одного вендора. Есть некие спеки, набор команд, есть варианты этого дела в кремнии от 2-3 производителей.
Если посмотреть на конпеляторы, то там наблюдается похожее: есть спеки жабы и пара реализаций, есть стандарт и куча реализаций сей/плюсов, у питона есть стандарт и всякие juthon/nuitka.
А у раста спеков + альтернативной реализации нет, только rfc и сразу код, нахуй. С одной стороны это плюс, так как снижает градус бюрократизма и ускоряет внедрение новых фич, а с другой - отпугивает крупных игроков, которым не хочется попадать в зависимость от того, какие гормоны сейчас пьёт кучка лгбт-шизиков.
Я хз, как решить эту проблему, не снижая скорости разработки, но как-то вот так. Ещё я боюсь, что с выкристаллизовыванием центрального комитета у раста может получиться как у питона, когда, например, бюрократы наверху придумали фичу "for/else", а обычные программеры сперва не поняли как ей пользоваться, а потом не поняли зачем.
Аноним 28/07/20 Втр 08:33:14 1762020411
Аноним 28/07/20 Втр 08:41:37 1762024412
>>1762006
>Помните, почему выстрелил x86?

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

Так то и моторолла 68к выпускалась хуевой тучей производителей по всему миру.

Затем, за счет изысканий интела в микроархитектуре были похоронены RISC-архитектуры, кроме ARM, которая тоже вовремя включилась в изыскания по микроархитектурам.
Аноним 28/07/20 Втр 08:44:09 1762026413
>>1762024

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

И да, если бы IBM запатентовал бы полностью свою пеку, а коммодор не запатентовал амигу - то история могла бы пойти по-другому, у амиги полноценный шиндовс с окнами и полноцветная графика со спрайтами и прочим 2д-ускорением вместо CGA еще в 83 году была.
Аноним 28/07/20 Втр 08:44:57 1762029414
Аноним 28/07/20 Втр 08:49:06 1762033415
>>1762006
Забей. Раст это хобби, которое работает только в файрфоксе или в качестве баловства используется в малочисленных проектах. Жто хобби превратится в инструмент версии 1.0 только лет через 30, и то при условии, что на его развитие на забьют как забили на какой нибудь руби.
Аноним 28/07/20 Втр 08:55:39 1762037416
>>1762033

Для того чтобы вознести сисярп ввысь из могилы достаточно было двух проектов - Xamarin и Unity3D.
Аноним 28/07/20 Втр 09:03:01 1762042417
Аноним 28/07/20 Втр 10:03:39 1762078418
>>1762037
Сисярп не позиционировал себя как замену плюсам, а только как замену жабе, при этом развиваться он начал в 2000-х, когда самой жабе было 5 лет. Т. е. ты сравниваешь конкуренцию с 35+ летним языком (потому что плюсы это развитие сишки, а не проект с нуля), с конкуренцией с 5ти летним языком.
Аноним 28/07/20 Втр 10:05:30 1762083419
>>1762024
Ты меня не опроверг, в любом случае, спрос на PC был именно благодаря наличию альтернатив - не было боязни оказаться у разбитого корыта из-за того, что единственный производитель решил свернуть не туда. А уже альтернативы были благодаря открытости.
Раст же вроде бы и открыт, но пока не имеет ни альтернативных имплементаций, ни какого либо стандарта, на основе которого они могли бы появиться - во многом из-за высокой скорости выхода новых версий с новыми фичами, которые тут же начинают использоваться сторонними крейтами.
Вот, например, захочет Oracle выпустить Enterprise Rust версии 1.45, когда на дворе давно будет 1.50 - есть сейчас какой-то способ ограничить версии используемых крейтов, типа "версия 0.77 крейта foo не работает с этой версией раста, используйте 0.74", ну и автоматом брать не выше 0.74, если стоит ✡ ?
Аноним 28/07/20 Втр 10:12:45 1762089420
>>1762083
У крейта можно поставить минимальную версию. Убедить людей поддерживать старую версию компилятора - это вопрос работы с сообществом.
Аноним 28/07/20 Втр 10:20:05 1762090421
>>1762078

>а не проект с нуля

> Rust
Аноним 28/07/20 Втр 10:22:05 1762092422
Аноним 28/07/20 Втр 10:30:04 1762093423
>>1762090
Что не так, сычуш? Первые стандарты C++ были мало отличимы по синиаксису от С, их трудно было различать. Твой раст изначально пилился шизиком на коленке и не имел общего синтаксиса с плюсами или сишкой
Аноним 28/07/20 Втр 10:38:38 1762098424
>>1762089
> поставить минимальную версию
В том и дело, что есть зависимость, зависимость зависимости, зависимость зависимости зависимости и так далее. Что-то уже использует фичи позднее 1.45, что-то нет. Нужно, чтобы ты просто пишешь foo = "✡", а cargo уже всё разрулил. Х.з., возможно эта проблема надуманная.
Но главная проблема - что разработкой раста рулит мозилла и кучка истеричных пидарасов, а крупные вендоры пока принюхиваются, но прямо не участвуют - она остаётся.
Аноним 28/07/20 Втр 10:39:56 1762099425
>>1762098
> Но главная проблема
Нет никакой проблемы.
Аноним 28/07/20 Втр 10:53:29 1762104426
image.png 114Кб, 1920x964
1920x964
>>1761924
>>1761929
Да, если подумать то в любом случае надо проверять данные. Если в релизе не падает от такого - то ок. Жалко что стак трейс не пишет.



А есть вариант, чтобы fast не ждала выполнения slow? Мне казалось, что синтаксис языка специально придуман чтобы самостоятельно разбивать на потоки, такое бывает вообще?)
Аноним 28/07/20 Втр 10:57:49 1762105427
Аноним 28/07/20 Втр 10:58:31 1762106428
>>1762104
> А есть вариант, чтобы fast не ждала выполнения slow? Мне казалось, что синтаксис языка специально придуман чтобы самостоятельно разбивать на потоки, такое бывает вообще?)
Ты не совсем понимаешь смысл асинхронщины. Асинхронные функции просто позволяют писать асинхронный код как синхронный. Проще говоря после каждого вызова await функция автоматом возвращает результат в самый верх рантайму (в твоём случае рантайм - это функция block_on) и тот ждёт когда результат доступен и продолжает выполнение функции с того момента где она остановилась. Вот и всё. Всё остальное делается только средствами самого рантайма.
Аноним 28/07/20 Втр 11:00:01 1762107429
>>1762105
Тогда slow не вызовется совсем. У раста асинхронные функции ленивые - при вызове они просто инициализируют память, а запускаются только при вызове await.
Аноним 28/07/20 Втр 11:04:05 1762108430
Аноним 28/07/20 Втр 11:05:50 1762109431
>>1762108
Правда сам рантайм block_on однопоточный (он выполняется только в текущем потоке), так что разницы скорее всего не будет. Тебе нужен будет более крутой рантайм с несколькими потоками, например async-std или tokio.
Аноним 28/07/20 Втр 11:19:13 1762113432
>>1762099
1. Случайно у себя в фейсбуке/вк называешь пидарасов пидарасами, а нигеров нигерами.
2. Какой-то озорник находит твой гитхаб/линкдин и стучит куда надо.
3. Тебя вносят в специальный список тех, кому запрещено пользоваться растом. Т.е. дома-то ты сможешь им пользоваться, но захочешь написать приложение на расте - и тебя забанят в маркетах согласно лицензии.
Аноним 28/07/20 Втр 11:20:53 1762114433
Короч нужна семантика fire&forget. Как это в расте делается?
Аноним 28/07/20 Втр 11:22:03 1762115434
>>1762113
4. Просыпаешься на лекции.
Аноним 28/07/20 Втр 11:22:16 1762116435
>>1762114
А причём тут раст? Берёшь зажигалку/спички и делаешь свой фаер и форгет.
Аноним 28/07/20 Втр 11:23:44 1762117436
>>1762113
>3. Тебя вносят в специальный список тех, кому запрещено пользоваться растом. Т.е. дома-то ты сможешь им пользоваться, но захочешь написать приложение на расте - и тебя забанят в маркетах согласно лицензии.

Ну так это не только раст ожидает но и отстальные отрасли. Свободное общество потребления закрывают, если ты еще не понял, будет полтора миллиардера - илитария, рабы и вот как раз небинарные вахтеры-вертухаи, с помощью которых илита будет править быдлорабами.
Аноним 28/07/20 Втр 11:28:51 1762124437
Аноним 28/07/20 Втр 11:41:08 1762139438
Аноним 28/07/20 Втр 11:51:57 1762151439
>>1762024
Что такое суд Intel vs Cyrix?
Аноним 28/07/20 Втр 12:19:52 1762166440
сап анон.
планирую вкатится в rocket.rs, как он в плане вебсервисов? И как сам раст в плане вебсервисов, не зря учу именно его?
Аноним 28/07/20 Втр 12:49:32 1762186441
>>1762166
Рокет буквально в ближайшее время перекатывается на ветку 0.5, которая будет асинхронной и будет компилироваться на стейбл компайлере. Зависимость есть, брат жив.
Аноним 28/07/20 Втр 13:08:17 1762198442
>>1762166
Зря. Язык без будущего.
Аноним 28/07/20 Втр 13:21:37 1762203443
15954838433150.mp4 1090Кб, 1280x720, 00:00:04
1280x720
Аноним 28/07/20 Втр 14:12:39 1762237444
Аноним 28/07/20 Втр 15:06:14 1762288445
>>1762203
Вот это подрыв, кек.
Аноним 28/07/20 Втр 21:51:38 1762621446
>>1758101
сколько нужно js-кода, чтобы прострелить рельсу?