М.Двач / Программирование

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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

Rust #87 15 сен, 17:07 1062380 В конец треда | Веб

35 Кб, 1680x126047 Кб, 1200x80051 Кб, 672x371

Тред убийцы c++.

https://www.rust-lang.org
https://doc.rust-lang.org/book/
https://rustbyexample.com/
https://github.com/rust-unofficial/awesome-rust

Старый тред тонет тут >>956909 (OP)

Ответы062391062819063802063814082418095915105831106168112111146693

15 сен, 17:18 2 1062391

>>1062380 (OP)

Зачем нужен раст, когда есть молодежный кристал?

Ответы062393062394

15 сен, 17:25 3 1062393

>>1062391
GC

15 сен, 17:27 4 1062394

>>1062391
Ну и
> The project is in alpha stage: we are still tweaking the language and standard library.

15 сен, 18:41 5 1062432

В чем его преимущества перед ноджс?

Ответы062434062583094951

15 сен, 18:46 6 1062434

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

Ответы064575080928

15 сен, 23:09 7 1062583

>>1062432
В том, что для nodejs нативные модули пишутся не на говноязыках, а на годноте. Npm давно использует rust у как средство улучшения developer experience

Ответы062704

15 сен, 23:10 8 1062584

Пилю маленький игорь на сабже, полет нормальный.

Ответы088159

16 сен, 10:26 9 1062704

>>1062583
На чем пишутся модули, на C или JS (хочу понять что ты называешь годнотой)? Каким образом NPM использует Rust, это ты сам придумал?

Ответы062731062739

16 сен, 11:52 10 1062731

>>1062704
https://www.youtube.com/watch?v=GCsxYAxw3JQ

16 сен, 12:13 11 1062739

>>1062704
Вместо C можно (нужно) использовать Rust

16 сен, 15:03 12 1062819

>>1062380 (OP)
Объясните, зачем в раст добавили сишное говно - строки cstring? Почему нельзя было просто взять и сделать язык без наследия далекого прошлого?

Ответы062821

16 сен, 15:05 13 1062821

>>1062819
>This type serves the primary purpose of being able to safely generate a C-compatible string from a Rust byte slice or vector. An instance of this type is a static guarantee that the underlying bytes contain no interior 0 bytes and the final byte is 0.
Очевидный интероп.

Ответы062825

16 сен, 15:09 14 1062825

>>1062821
>интероп
Ну и кому он еще нужен?

Ответы062826

16 сен, 15:10 15 1062826

>>1062825
Всем кто пишет проекты сложнее laba3.exe
Биндинги к сишным либам по твоему получаются магическим образом?

18 сен, 10:06 16 1063385

https://github.com/ctjhoa/rust-learning

19 сен, 08:58 17 1063762

Так-с, чего молчим? Никто не хочет абстракции с нулевой стоимостью?

19 сен, 13:42 18 1063802

>>1062380 (OP)
Есть расширение для VS17 или лучше расширение для VS code адекватное для компиляции и отладки?

19 сен, 14:11 19 1063814

>>1062380 (OP)
Интересный язык. Правда, сложно заставить себя писать именно на расте, а не на Си с растовским синтаксисом.

Ответы063815

19 сен, 14:12 20 1063815

>>1063814
Это нормальная история при перекате на новый язык.

113 Кб, 1190x1698
20 сен, 09:19 21 1064164

Туториал о том как сделать игорь.
http://piston-tutorial.logdown.com/pages/table-of-contents

21 сен, 00:52 22 1064450

Насколько ржавчина надежна/безопасна? Можно ли, не открывая растономикон, написать сломанную программу с сегфолтами, переполнениями буфера и прочим добром? Или все, что написано на чистом расте, гарантированно корректно?

Ответы064469

21 сен, 05:26 23 1064469

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

Ответы064708

21 сен, 13:46 24 1064575

>>1062434
Rust это Google Cardboard

21 сен, 18:26 25 1064685

Насмотрелся роликов на ютубе про безопасный Раст. Начал писать. Чтобы открыть окошко в виндовз мне нужно вызвать с десяток unsafe функций с сырыми указателями. Да и вообще поймал себя на том, что слишком часто я использую эти "опасные" операции. Либо надо полностью менять ментальность, либо одно из двух.

Ответы064690064707064866

21 сен, 18:42 26 1064690

>>1064685
Ну ты придумал. Окошки на винде открывать.
Возьми Qt ил Gtk или что попроще.

Ответы064857

21 сен, 19:55 27 1064707

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

Ответы064798

21 сен, 19:59 28 1064708

>>1064469
>Можно.
А небольшой пример такого кода где найти?

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

Ответы064710064971

21 сен, 20:05 29 1064710

>>1064708
>А небольшой пример такого кода где найти?
Херачиш унсейф.

>Странный тезис. Код, который иногда падает с сегфолтом, сложно назвать надежным.
Надежность\безопасность ЯП\среды, и реализованного на этом ЯП кода - вещи разные.

Безопасна ли машина с подушкой безопасности? - безопасна.
Безопасно ли врезаться в столб на скорость 200км в час с не пристегнутыми ремнями?

Ответы064715

21 сен, 20:18 30 1064715

>>1064710
Да даже с престегнутым и с рабочей подушкой безопасности так себе идея. Но фанатикам не объяснить.

> Купили как-то суровым сибирским лесорубам японскую бензопилу.
> Собрались в кружок лесорубы, решили ее испытать.
> Завели ее, подсунули ей деревце.
> «Вжик» — сказала японская пила.
> «У, бля...» — сказали лесорубы.
> Подсунули ей деревце потолще. «Вж-ж-жик!» — сказала пила.
> «Ух, бля!» — сказали лесорубы.
> Подсунули ей толстенный кедр. «ВЖ-Ж-Ж-Ж-Ж-Ж-Ж-ЖИК!!!» — сказала пила.
> «Ух ты, бля!!» — сказали лесорубы.
> Подсунули ей железный лом. «КРЯК!» — сказала пила.
> «Ага, бля!!!» — укоризненно сказали суровые сибирские лесорубы! И ушли рубить лес топорами…

Ответы064807

21 сен, 23:23 31 1064798

>>1064707
И что же конкретно тебя разочаровало?

Ответы064806064865

22 сен, 00:07 32 1064806

>>1064798
А я тут причем?

Ответы064856

22 сен, 00:08 33 1064807

>>1064715
>Но фанатикам не объяснить.
Да то не фанатик, а просто ребенок, который мало чего в этом самом программировании понимает.

22 сен, 04:02 34 1064856

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

Ответы064865

22 сен, 04:05 35 1064857

>>1064690
Ты думаешь, они какое-то другое виндовз апи там используют?

Ответы064912

22 сен, 06:22 36 1064865

>>1064856
Ну да, из опыта.
Из наблюдений, здравого смысла, и выводов.

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

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

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

>>1064798
>И что же конкретно тебя разочаровало?
IT как таковое. Качество людей в нем работающих.
Не переношу бракоделов, профанов, и самодуров. Нет уважения к своему труду.

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

Ответы064916146689

22 сен, 06:24 37 1064866

>>1064685
> Чтобы открыть окошко в виндовз мне нужно вызвать с десяток unsafe функций с сырыми указателями.
Ты явно преувеличиваешь.
Насколько я помню, винапи вполне элементарно.
Даже на ассемблере беспроблемно окошечки создавать.

Ответы064931

22 сен, 11:15 38 1064912

>>1064857
Только что компилил проект на виртуалке с виндой. крейт winapi прекрасно сконпелился.

22 сен, 11:17 39 1064916

>>1064865
Там во всех областях. Красоту нужно уметь видеть, это субъективная история. Если ты не видишь её, то это не значит что её не видят другие.

А что касатеся "шахтеров", то что в этом удивительного? Профессия новая, особенно на постсоветском пространстве.

Ответы065071

22 сен, 11:43 40 1064931

>>1064866
В расте вызов сишной функции и передача raw поинтеров считается опасным кодом.

Ответы094951

22 сен, 14:11 41 1064971

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

Ответы070429080914

22 сен, 19:12 42 1065071

>>1064916
Можно всё.

494 Кб, 1306x736
4 окт, 00:05 43 1070228

Делаю игорь для дрочения хираганы. Зависимость есть, брат жив.

4 окт, 05:16 44 1070417

Бред уровня запрета ЦП. Избежать ошибок можно только одним способом - не быть криворуким дауном. Для этого не надо создавать ещё один бесполезный язык и говорить, что он лучше C/CXX.

Ответы070428070461071226072003072056094951113004146691

4 окт, 06:57 45 1070428

>>1070417
> Избежать ошибок можно только одним способом - не быть криворуким дауном
Работает только в проектах уровня лаба1.

4 окт, 06:59 46 1070429

>>1064971
Ты не понимаешь что такое "утечка памяти".

Ответы080623

4 окт, 11:13 47 1070461

>>1070417
Пиши на ассемблере, хуле ты как не мужик.

5 окт, 19:16 48 1071226

>>1070417
> не быть криворуким дауном
Аюсолютно каждый программист криворукий даун в той или иной степени. Поэтому лучше пользоваться языком который позволит автоматически избегать определённого класса ошибок.

7 окт, 15:38 49 1072003

>>1070417
Все ошибаются.

sage 7 окт, 17:10 50 1072056

>>1070417
На любое обвинение у сибляди есть универсальный ответ - "криворукость". Этим сиблядь как-бы намекает, что что все вокруг криворуки - т.е. сотрудники микрософта и интеля, пишущие кривые драйвера и библиотеки, прыщебляди, пишущие дырявое ведро своей системы вот уже не первый десяток лет, просто другие сибляди из соседнего подвала полусвовковой шаражки, в которой сиблядь работает. А вот сама сиблядь - сука граф Шарль Ожье де Бац де Кастельмор д’Артаньян среди педерастов, владеющий техникой левитации, предсказания будущего и написания небыдлокода на сишке. К сожалению, простым смертным едва ли не удастся увидеть творения сенсея, так и будут они работать с глючным говном криворуких интелевских и микросовтовских инжеренов, внезапно падающим от какого-нибудь buffer overflow, несмотря на зиллионы человекочасов, проёбанных на его тестирование и отладку.

Ответы072062080931

7 окт, 17:18 51 1072062

>>1072056
Сагу то за что прилепил, ирод?

Ответы072066

7 окт, 17:25 52 1072066

>>1072062
паприколу

Ответы072068

7 окт, 17:27 53 1072068

>>1072066
> #[allow(шутник_дохуя)]

23 окт, 17:37 54 1080623

>>1070429
Утечка памяти это когда память проебывается все больше и больше по мере работы программы. Что не так?

Ответы080897

23 окт, 23:52 55 1080897

>>1080623
Внешне оно выглядит так. Но к твоему циклу не имеет никакого отношения.

Ответы081398

24 окт, 00:15 56 1080914

>>1064971
Утечка - это если к динамической памяти нет вообще никакого способа обратиться. Если же ты никогда не теряешь ссылки, то всегда сможешь увидеть в отладчике странный вектор на миллиард элементов или типа того. Т.е., память просто избыточно выделяется, а не утекает.

Ответы081398

24 окт, 00:43 57 1080928

>>1062434
Раст это хипстерские очки с розовыми стеклами.

Ответы080930

24 окт, 00:46 58 1080930

>>1080928
С хуя бы? Розовые стекла в хачкеле, например. С дырочками.

24 окт, 00:47 59 1080931

>>1072056
>граф Шарль Ожье де Бац де Кастельмор д’Артаньян
Сука орнул с поста. Но идика ты нахуй, все заебись на С написано и у интела и у прыщеблядей, прыщикс вообще самое лучшее что создавали за последние десятки лет программисты. Единственное в чем я с тобой согласен это про майкрософт, там действительно пиздецовые дауны на С так наговнокодили что пиздец.

Ответы081013

24 окт, 09:03 60 1081013

>>1080931
График уязвимостей в ядре покажи-ка?

Ответы081347

24 окт, 19:55 61 1081347

>>1081013
Я хуй знает я не слежу за графиками, ибо какой от этого толк? Даже если там и у прыщикса больше чем у спермы, то толко потмоу что прыщикс разрабатывают в сотни раз больше людей чем сперму, и еще учитывай что в сперме намеренно делются уязвимости для различных спец. служб, как недавно было с атаками шифровальщиков которые использовали уязвимости сделанные специально для АНБ.

Ответы128426

24 окт, 21:09 62 1081398

>>1080897
Ну согласен, с циклом плохой пример пусть это будет рекурсия.
>>1080914
>Т.е., память просто избыточно выделяется, а не утекает.
Это и называется утечка, когда в память выделяется, но обратно не высвобождается.

Ответы081583

25 окт, 06:35 63 1081583

>>1081398
Если память используется, то это не утечка.

Ответы081637

25 окт, 10:56 64 1081637

>>1081583
Чет ты сочиняешь уже
Утечка памяти (англ. memory leak) — процесс неконтролируемого уменьшения объёма свободной оперативной или виртуальной памяти компьютера, связанный с ошибками в работающих программах, вовремя не освобождающих ненужные уже участки памяти, или с ошибками системных служб контроля памяти.

Ответы081649084307

25 окт, 11:21 65 1081649

>>1081637
Мань, че ты тупенький такой? Сам же пастишь:
> неконтролируемого уменьшения объёма
Если ты жрешь много памяти и у тебя есть на неё указатели, то это контролируемое уменьшение. Потому что ты всегда можешь её освободить. Но если ты проебал указатель, то есть физически освободить сама программа её уже не может, это как раз "неконтролируемое" уменьшение.

Ответы081762084375

25 окт, 15:31 66 1081762

>>1081649
Кек, то что ты пытаешься втереть вообще не существенно. Даже если в теории ты можешь контролировать разбухшую память, но в программе такое поведение не предусмотрено, то это все равно будет утечкой. О чем ты пытаешься кукарекнуть уже относится к безопасности памяти, то, от чего раст защищает в 100 и 100 случаев если не врубать unsafe.

Ответы081794

25 окт, 16:14 67 1081794

>>1081762
>раст
>врубать unsafe

so laba1.rs

26 окт, 19:33 68 1082418

>>1062380 (OP)
Чо там с const generics? HKT до 2.0 не появятся, я так понял а тогда уже и голанх 2 подъедет со своими дженериками

28 окт, 10:20 69 1083135

У раста есть какой-то казуальный режим для плебса, который пишет на питоне и JS?

Ответы083182083450094951

28 окт, 13:32 70 1083182

>>1083135
Go

28 окт, 22:40 71 1083450

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

Ответы083570

29 окт, 00:08 72 1083506

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

Ответы147026

29 окт, 00:10 73 1083507

Мне кажется как казуальный раст нужно упоминать кристал. Только там вроде пока мультитрединг внятный не сделали.

Ответы104259

29 окт, 05:29 74 1083570

>>1083450
>простота
простота != легкость (в изучении)

30 окт, 16:04 75 1084307

>>1081637
>неконтролируемого
Из твоей же вики:
A space leak occurs when a computer program uses more memory than necessary. In contrast to memory leaks, where the leaked memory is never released, the memory consumed by a space leak is released, but later than expected. [3]

Ответы084311084693

30 окт, 16:09 76 1084311

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

30 окт, 17:40 77 1084375

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

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

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

С таки то подходом после закрытия приложения память все равно освободится так что утечки нет1111)))))))

Иди сделай бочку, реатрд.

31 окт, 00:01 78 1084693

>>1084307
>space leak is released, but later than expected.
Ну а к чему относить поведение которое не пробывает ссылки ( например язык с гц) но из-за ебанутого кода никогда не очищает накапливающуюся память?

Ответы084713085589

31 окт, 00:27 79 1084713

>>1084693
Уже 10 раз объяснили:
> A space leak occurs when a computer program uses more memory than necessary.
Если память жрется больше чем надо, никогда не чистится, то это не утечка памяти. А space leak. "программа жрет много памяти потому что хуевый алгоритм". Называй как хочешь.

Языки с гц могут течь, например, если гц делает reference count.

Ответы084822

31 окт, 07:58 80 1084822

>>1084713
>In contrast to memory leaks, where the leaked memory is never released, the memory consumed by a space leak is released, but later than expected.
Ты сам себе противоречишь.

Ответы085354

1 ноя, 10:05 81 1085354

>>1084822
вы заебали со своей памятью. лучше бы по теме что-нибудь писали

Ответы085442

1 ноя, 14:52 82 1085442

>>1085354
Например?
Я пилю игрушку, например. Две недели пытался завести её на андроиде, но нихуя не вышло. Плюнул, пилю под декстоп пока.

Ответы085776

1 ноя, 18:04 83 1085589

>>1084693
>Ну а к чему относить поведение которое не пробывает ссылки ( например язык с гц) но из-за ебанутого кода никогда не очищает накапливающуюся память?
Утечка памяти.

1 ноя, 22:37 84 1085776

>>1085442
Как пытался завести? Я тоже хочу написать игру.

2 ноя, 20:15 85 1086342

Какие есть для Rust веб-фреймворки?

2 ноя, 20:30 86 1086357

Так короче растоблядки. У вас есть минута чтоб пояснит ьмне чем ваш раст лучше golang или D?

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

Ответы086358086569088326094951

2 ноя, 20:31 87 1086358

>>1086357
В Ди есть гарбедж коллектор, а в Ржавом не нужен из-за передачи ownership'а и прочих плюшек.
Голанг не имеет такой развитой системы макросов.

Ответы086462

2 ноя, 22:12 88 1086462

>>1086358
А как в ржавом тогда ресурсы особождаются? Время же недетерминированно становится. Например, если удаляется какой-то сложный объект который влечет за собой кучу деаллокейтов ? В то время как в языке с GC, это удалится потом и не вызовет задержки программы.

Ответы086471

2 ноя, 22:21 89 1086471

>>1086462
Время каждого ресурса определено статически с помощью системы типов.

Ответы086996

3 ноя, 01:00 90 1086569

>>1086357
Гарбадж коллектор, долбоёб, неужели не очевидно?

Ответы086625

3 ноя, 04:18 91 1086625

>>1086569
Долбоебина, может сначала бы прочитал дальнейшие посты, прежде чем высирать тут что-то?

4 ноя, 07:52 92 1086996

>>1086471
>Время каждого ресурса определено статически с помощью системы типов.
Вот это действительно хорошо заделали. А пример можешь привести? А то меня всё время смущало, вот вроде бы скорость, детерминированность, безопасность, а как освобождать глубоко вложенную структуру, так и мало того кто последний тот и ебётся, так и ещё свалится с запросто. Тут вообще комбо получается: переполнение стека, да ещё и в деструкторе.
мимо другой анон

Ответы087937092620

5 ноя, 20:22 93 1087632

кто-нибудь из присутствующих пробовал писать игрушки на расте с использованием piston или amethyst? если да, то отпишитесь как полет

6 ноя, 17:51 94 1087937

>>1086996
>Вот это действительно хорошо заделали. А пример можешь привести?
Фак. Написал длинную телегу и куда-то не туда нажал.
На каждый объект в Расте может быть либо одна ссылка, через которую объект можно менять, либо сколько угодно read-only. Кроме того, ссылка не может жить дольше, чем объект, на который она ссылается. Передача же не по ссылке - это аналог std::move в плюсах.

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

Система не идеальна, и для некоторых вещей нужен unsafe-блок, который позволяет использовать обыкновенные указатели. В таком случае на программисте лежит ответственность сделать так, чтобы в интерфейсе поддерживался инвариант из начала поста.

Ответы088155111575

7 ноя, 08:07 95 1088155

>>1087937
Мы с тобой побеседовали хорошо, жаль что про разное только. Изначально анон поинтересовался за финализацию и детерменированность времени на неё. Ну например для структуры N = Z | S N реализованной на, пусть будет, Arc сложность деструкции линейна по времени, а в наивной реализации ещё и по стековой памяти. Для структур же более ветвистых - сложность только растёт. Добавив что если используется какой-то абстрактный типаж, то о времени деструкции сказать вообще вряд ли что-то возможно не рассматривая весь код. И если ресурсом пользовались несколько потоков, то освобождать её предстоит последнему, чем могут быть неприятно удивлены апологеты сборки мусора. Вот я и подумал было, услышав про статическое определение времени каждого ресурса, что решается именно эта проблема.

Ответы088250

7 ноя, 08:29 96 1088159

>>1062584
Что пилишь, анонче?

Ответы091861

7 ноя, 10:43 97 1088181

Какая-то смесь Python, C++, не?

Ответы088243097516

7 ноя, 13:15 98 1088243

>>1088181
Если точнее, то haskell и c++

Ответы097516

7 ноя, 13:27 99 1088250

>>1088155
Я просто мимо проходил, лол

Использование Arc - это перенос гарантий из статики в рантайм, т.е. компилятор тут ничем не поможет, увы. А многопоточность чисто на борровинге будет максимальным пердолингом.

Ответы088257

7 ноя, 13:45 100 1088257

>>1088250

Ну вон тот же rayon как сделан. Гарантированно безопасные unsafe блоки заэнкапсулированы внутри, а апи чисто safe

7 ноя, 16:45 101 1088326

>>1086357
>чем ваш раст лучше golang или D
Всем лучше.
Какой вопрос - такой ответ

Ответы089128094060

9 ноя, 11:16 102 1089128

>>1088326
Таки верно. Можно считать, что он на ступень эволюции выше (на 2 выше go)

14 ноя, 15:51 103 1091861

>>1088159
Что-то типа кликера.

15 ноя, 23:00 104 1092620

>>1086996
Лучше всего посмотреть любую презентацию про Rust. Вот натолкнулся на очередную youtu .be/oIikwmeGVYY
Вполне ничего

16 ноя, 18:58 105 1092990

Питонисту тяжело будет в раст вкатиться?

Ответы093097094048

16 ноя, 22:06 106 1093097

>>1092990
Если кроме пиздона ты ничего больше не видел, вероятно сложновато.

18 ноя, 19:31 107 1094048

>>1092990
Все равно вкатывайся. Материалы хорошие. Узнаешь основы функциональщины, типизации.

18 ноя, 21:10 108 1094060

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

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

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

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

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

18 ноя, 21:10 108 1094060

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

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

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

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

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

Показать весь текст
Ответы094144094599094702

19 ноя, 02:36 109 1094144

>>1094060
>И один хер придётся использовать небезопасные блоки кода
1. Почему придется?
Стейтмент так себе.

>невозможностью реализовать добрую половину привычных структур данных
Все там можно.

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

>Дополню вопрос: если отбросить инсинуации злопыхателей про попилы мозиловских денег, он для каких задач и для какой аудитории вообще изобретался?
Создавался как то, что должно было появиться, но вместо чего появился С++.

Ответы094175111578

19 ноя, 07:24 110 1094175

>>1094144
>Стейтмент так себе.
>Все там можно.

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

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

Ответы094185094186094522094713

19 ноя, 08:09 111 1094185

>>1094175
>но былой стремительностью такой подход уже не похвастается
Храните в HashMap, кто вам запрещает-то?..

Ответы094584

19 ноя, 08:12 112 1094186

>>1094175
>либо монитором защищать либо передавать обёртку
либо EnterCriticalSection() и затем LeaveCriticalSection()

Ответы094584

19 ноя, 18:52 113 1094522

>>1094175
http://bluss.github.io/ixlist/target/doc/ixlist/struct.List.html

Ответы094584

19 ноя, 20:21 114 1094584

>>1094185
>Храните в HashMap, кто вам запрещает-то?..
Ты про какой-то волшебный HashMap в котором сложность доступа к элементу не O (ln(n)) и даже меньше константной сложности проверки индекса и обращения к элементу в массиве? Не очень тебя понял по-видимому.

>>1094522
>instead of pointers we use indices into a backing vector
Впрочем, ты уговорил. Подход немного непривычный, не самый шустрый, но вполне обоснованный при данных условиях.

>>1094186
>EnterCriticalSection
Ну она ж аргумент принимает? Где-то хранить его надо между вызовами, ведь не каждый поток в свою критическую секцию заходит.

Ответы094774

19 ноя, 20:37 115 1094599

>>1094060
>он для каких задач и для какой аудитории вообще изобретался?
Наркоман? На их сайт зайти и прочитать не можешь? Пиздец, вот вроде пишет человек пост: длинный, грамотным русским языком, вопросы всякие вполне обоснованные задает... а потом в самом конце берет ушат собачьего дерьма, выливает на себя и начинает ногами дрыгать: "я в дерьме! я говно ем!" - пиздец, нахуй так жить-то?

Ответы094943

20 ноя, 00:17 116 1094702

>>1094060
>И один хер придётся использовать небезопасные блоки кода

Не нужно. Нужно использовать новую парадигму, а не свои привычные костыли из c++

Ответы094943

20 ноя, 00:52 117 1094713

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

20 ноя, 02:55 118 1094774

>>1094584
>волшебный HashMap
Да, выжирающий сотни памяти, он перестраивает хеш-индекс во время работы и даёт почти мгновенный доступ к данным.

>>EnterCriticalSection
>Ну она ж аргумент принимает?
Она переключает режим выполнения, чтобы работал только вызвавший её поток, а потом другая функция его возвращает в тот же режим как было. Всё это костыли, естественно.

Ответы094943

20 ноя, 14:36 119 1094943

>>1094599
>ушат собачьего дерьма, в дерьме, говно ем
Не ты ли несколько тредов назад выкладывал фрагмент кинца от небезызвестного Паоло Пазолини? Многие были восхищены.

>>1094702
>Не нужно.
Не буду иронизировать. Да и в целом посыл правильный, разве что код будет уже не "blazingly fast". Только один же чёрт придётся взаимодействовать с чужим кодом использующим старую костыльную парадигму. Ну и может это лично для меня слишком всё в новинку, но как-то слабо представляю как можно организовать какое-либо событийно ориентированное взаимодействие с таким подходом. То есть процедуры обратного вызова всякие, передачу сообщений. Как, например, вообще стандартным образом реализуется оконная система?

>>1094774
>почти мгновенный доступ к данным
Мы, похоже, беседуем каждый о своём. Я изначально посетовал что обращение вида @list[index] будет медленнее чем ref^ (прямой указатель). Это даже без проверки индекса на выход из диапазона. Ты же после этого рассказываешь о наистремительнейшем HashMap, и я не понимаю что ты имеешь в виду. Вряд ли же предполагается что пусть сколь угодно хорошо оптимизированный алгоритм в котором количество сравнений зависит от общего количества элементов, превосходит по скорости алгоритм в котором сравнений максимум два для любой длинны.

>Она переключает режим выполнения, чтобы работал только вызвавший её поток
Так и есть. Я помню про функцию с таким названием из WinApi. Её закрывающая пара - LeaveCriticalSection. Даже если предполаголось что-то растоспецифичное с таким же именем, готов предположить что оно и работает подобным образом. Поправь меня если не так.
Так вот я о чём, чтобы переключить режим выполнения и вернуть в тот же режим как было, как ты варазился, она принимает по ссылке некую структуру. И тут вопрос где её расположить. Если в статической памяти то придётся использовать небезопасные блоки кода т.к. при входе и выходе в неё будет призводиться запись. Если же хранить её на стеке или как-то связать с объектом-обёрткой то опять же надо в глобальной переменной хранить флаг её инициализации иначе другой поток запросто получит копию в которую позже и войдёт асинхронно, но одновременно с предыдущим, распуская пиздой по рукавам те инварианты, что были заложенны авторами сторонней библиотеки написанной для экслюзивного использования на куда менее прогрессивном языке.

20 ноя, 14:36 119 1094943

>>1094599
>ушат собачьего дерьма, в дерьме, говно ем
Не ты ли несколько тредов назад выкладывал фрагмент кинца от небезызвестного Паоло Пазолини? Многие были восхищены.

>>1094702
>Не нужно.
Не буду иронизировать. Да и в целом посыл правильный, разве что код будет уже не "blazingly fast". Только один же чёрт придётся взаимодействовать с чужим кодом использующим старую костыльную парадигму. Ну и может это лично для меня слишком всё в новинку, но как-то слабо представляю как можно организовать какое-либо событийно ориентированное взаимодействие с таким подходом. То есть процедуры обратного вызова всякие, передачу сообщений. Как, например, вообще стандартным образом реализуется оконная система?

>>1094774
>почти мгновенный доступ к данным
Мы, похоже, беседуем каждый о своём. Я изначально посетовал что обращение вида @list[index] будет медленнее чем ref^ (прямой указатель). Это даже без проверки индекса на выход из диапазона. Ты же после этого рассказываешь о наистремительнейшем HashMap, и я не понимаю что ты имеешь в виду. Вряд ли же предполагается что пусть сколь угодно хорошо оптимизированный алгоритм в котором количество сравнений зависит от общего количества элементов, превосходит по скорости алгоритм в котором сравнений максимум два для любой длинны.

>Она переключает режим выполнения, чтобы работал только вызвавший её поток
Так и есть. Я помню про функцию с таким названием из WinApi. Её закрывающая пара - LeaveCriticalSection. Даже если предполаголось что-то растоспецифичное с таким же именем, готов предположить что оно и работает подобным образом. Поправь меня если не так.
Так вот я о чём, чтобы переключить режим выполнения и вернуть в тот же режим как было, как ты варазился, она принимает по ссылке некую структуру. И тут вопрос где её расположить. Если в статической памяти то придётся использовать небезопасные блоки кода т.к. при входе и выходе в неё будет призводиться запись. Если же хранить её на стеке или как-то связать с объектом-обёрткой то опять же надо в глобальной переменной хранить флаг её инициализации иначе другой поток запросто получит копию в которую позже и войдёт асинхронно, но одновременно с предыдущим, распуская пиздой по рукавам те инварианты, что были заложенны авторами сторонней библиотеки написанной для экслюзивного использования на куда менее прогрессивном языке.

Показать весь текст
Ответы095018095347

20 ноя, 14:53 120 1094951

>>1062432
>>1086357
В чём преимущество перфоратора перед дрелью? Дрели перед перфоратором?
>>1064931
Как ты думаешь, для чего вообще в расте придумали "опасный код"?
>>1070417
То что создание новых языков и переписывание всего под них приводит к убыткам это правда. Но так же правда и то, что поддержка и развитие легасей крайне дорогое, без особой надежды на улучшение ситуации в будущем.
>>1083135
Пиши без использования ссылок. Копируй/клонируй всегда и везде.

Ответы095350

20 ноя, 17:19 121 1095018

>>1094943
>Не ты ли несколько тредов назад выкладывал фрагмент кинца от небезызвестного Паоло Пазолини?
Увы, ты промахнулся.

Кстати, позволю себе замечание по поводу содержания остального поста. Что ты, блядь, хочешь-то от нас от них?! Тебе, блядь, дали язык, на котором можно писать чуть ли не в функциональном стиле с ебаной кучей статических проверок без гц и быть на 10-15% медленее си. Тебе дали возможность писать на си с нескучным синтаксисом и тем же тулингом, когда эти 10-15% тебя не устраивают или когда компилятор анально насилует тебя в жопу. Вместо того, чтобы возрадоваться и поблагодарить Бога за это, ты приходишь в этот итт тред и начинаешь лечить про то, что хэшмапы медленные. Сука, блядь, так хули тебе надо-то?!

Ответы095026095099095340

20 ноя, 17:39 122 1095026

>>1095018
Он из тех кто против и ищет подтверждения своим убеждениям.

20 ноя, 19:36 123 1095099

>>1095018
Сможет ли Раст обогнать С после всех оптимизаций?

Ответы095106

20 ноя, 19:59 124 1095106

>>1095099
Да. Пиздуй контрибьютить в llvm и rustc.

21 ноя, 05:07 125 1095340

>>1095018
>Сука, блядь, так хули тебе надо-то?!
Ты прям срузу с козырей. Потолковать хочу за всякие нюансы, попиздеть по большей части для души. Сама система типов, и правда не может не вызывать восхищения. Вот мне и интересно является ли она во всей своей чистоте и ортогональности практичной и достаточной для какого-либо маломальски серьёзного промышленного проекта. И как адаптируются традиционные подходы в переложении на неё. И какие подобная адаптация может скрывать за собой опасности.
Вот и интересуюсь.
Тут же наверняка есть люди что пишут на расте какое-то серьёзное ПО, участвуют в крупных проектах, кто-то и окажется готов поделиться мнением. Указать на какую-либо избыточность или недостаточность языка или одного из его элементов, посетовать на те случаи где они заебались бороться с borrow checker'ом и где наоборот он их сильно выручил. Хватает ли им скорости хэшмапов или приходится использовать unsafe. В одиночку это было бы в любом случае гораздо сложнее, а тут целый тред по языку создан.

Ответы095382

55 Кб, 421x700
21 ноя, 05:49 126 1095347

>>1094943
>Я изначально посетовал что обращение вида @list[index] будет медленнее чем ref^ (прямой указатель).
1. Это еще не факт. Без тестов говорить не о чем.

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

3. Модель выделения и освобождения памяти для твоего волшебного списка, влияет на производительность на порядок больше способа связывания.
Что приводит нас к пункту 4.

4. Имеет смысл о чем-то говорить сравнивая конкретные реализации. Есть серьезные подозрения, что код на сишечке, с тем же функционалом, может оказаться как минимум громоздким и страшным, а еще может и медленнее в итоге работать.

5. Для крит важного кода, вроде realtime систем, есть ассемблер. Та-же си не очень то тут работает.

6. Иди лучше мамке своей посетуй.

6.1 Поболтать оно конечно бывает интересно, но о чем тут собственного говорить и размышлять? Когда и так все ясно? А сама тема не стоит и выеденного яйца.

Мимо анон.

Ответы095860

20 Мб, webm,
1112x900, 4:00
21 ноя, 06:04 127 1095350

>>1094951
>То что создание новых языков и переписывание всего под них приводит к убыткам это правда
Ну, далеко не всегда.
Скажем даже так, в 2017 году это утверждение скорее всего ложно.

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

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

3. В 2017 году СКОРОСТЬ разработки выросла в разы, и это не просто для красивой циферки в версии и чтобы казаться современными молодежными, просто информация в мире стала перемещаться в сто раз быстрее чем в 2000 году, и в 1000 раз быстрее чем в 1980. Мир ускорился, нужны новые современные решения сейчас, еще вчера, неделю назад.

А кто-то IE6 поддерживать пытается, а потом из ЦРУ утекает эксплойт и останавливаются целые заводы в разных странах, потому что на них Windows XP стояла, блядь.
Легаси в 2017 - непозволительная роскошь.
Это как блядь лампочки накаливания вместо LED использовать.

Ответы095392096691

21 ноя, 08:17 128 1095382

>>1095340
>Сама система типов, и правда не может не вызывать восхищения.
Ага! Я так и знал, что ты мазохист, содомит и бдсм-извращенец, бгг.

> или приходится использовать unsafe
This.

Я не пишу на расте, но еще в прошлом посте написал про си с нескучным синтаксисом. Ансейф - это не какой-то смертный грех, это просто способ не пиздовать в си, а писать сишный код прямо тут же, в расте. Тайпчекер же нужен не ради самого себя, а для гарантий. Там, где ты можешь (думаешь, что можешь) предоставить эти гарантии сам, можно его выключить. Если тебе нужны не простые хэшмапы, а WOW SO HASHMAP 2000% BONUS CRITICAL SPEED ACHIEVEMNT UNLOCKED BAYTOŒB PWND, то ты просто берешь и пишешь их без задней мысли. Главное, как всегда, изолировать это говно и тестировать это говно. Тут, блядь, нет какого-то "АХАХАХ ВОТ Я ВАМ ГОВОРИЛ АНСЕЙФ ВЕЗДЕ ТАЙПЧЕКЕР СОСНУЛ РАСТ НИНУЖОН)))00", - он изначально таким и задумывался, блядь. Это не баг, это фича.

Ну и это.
> Тут же наверняка есть люди что пишут на расте какое-то серьёзное ПО, участвуют в крупных проектах
> 2ch.hk
> серьёзное ПО, участвуют в крупных проектах
> 2ch.hk

Ответы095860

21 ноя, 08:58 129 1095392

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

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

Ответы095415

21 ноя, 10:35 130 1095415

>>1095392
>А лампочки накаливания имеют куда более естественный, близкий солнцу, спектр излучения, от них меньше устают глаза
Необразованный безмозглый дегенерат.
Иди в /ra/ чтобы тебя там хоороошенькго обоссали. Я даже начинать не буду.

>Лично моё мнение таково, что переписывают чаще в процессе глубокого изучения, а не ради насущной необходимости
Стандартное объяснения почему компаниянейм создала пиздатый продуктнейм - "нас заебало стороннее легаси говно и нам пришлось сделать свое."

>Нет ничего плохого в IE6
>Ты какой-то странный.
Сук пиздос.

>что переписывают чаще в процессе глубокого изучения
Да блядь просто берешь и создаешь нужный тебе функционал.
90% всего уже есть в стандартной библиотеке. А если нет, то на помойку этот язык.

Ответы095422

36 Кб, 500x608
21 ноя, 11:46 131 1095422

>>1095415
Ты какой-то буйный. Сходи-ка на хуй на всякий случай.

Ответы095508095678

21 ноя, 14:16 132 1095508

>>1095422
Я не он но ты хуйю несешь. LED в 10 раз экономичнее и глаза от него не устают. У меня вся квартира ими обмазана. Профит от LED настолько очевиден что его не заметил только полный слепец.

Ответы095572095584

21 ноя, 16:45 133 1095572

>>1095508
Да причём тут экономичность. Вдруг мне просто нравится тёплый ламповый свет? Люди даже камины дома сооружают, на дровах, Карл. У того буйного проблемы с подбором аналогий, всё что я хотел сказать. Я даже не понял что он хотел сказать своими длиннопостами, какие-то разрозненные бессистемные аргументы без тезиса и вывода.

Ответы095645095681

21 ноя, 17:27 134 1095584

>>1095508
Речь о спектре излучения, але.

Ответы095645095684

21 ноя, 19:20 135 1095645

>>1095584
>>1095572
Это я к тому, что профит от использования LED с головой перекрывает лампы накаливания. Тоже самое с использованием легаси.

Ответы095654095845

21 ноя, 19:36 136 1095654

>>1095645
Ну не знаю. libpng тоже переписываешь каждый раз? Везде биндинги, везде FFI. Это тоже легаси? Как бы зачем переписывать то что вылизывалось чуть ли не десятилетия?

21 ноя, 20:02 137 1095678

>>1095422
Я сказал, что не собираюсь обучать подобного дебила. Иди в /ra/.

Ответы095690

21 ноя, 20:08 138 1095681

>>1095572
>Вдруг мне просто нравится тёплый ламповый свет?
1. Есть лед с Ra 95-98, даже лучше чем у ламп накаливания.
2. Необучаемый, думает, что лед лампы не могут светить теплым светом?

>мне просто нравится
Заебись.
А ничего, что речь шла о ЭКОНОМИЧЕСКОЙ ЦЕЛЕСООБРАЗНОСТИ, а не о том, что какой-то пизде нравится, или не нравится?
Тебе никто не запрещает хоть дуговыми лампами освещаться хоть свечами, хоть газовыми светильниками.

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

>У того буйного
>Ты какой-то буйный
Задеваю твою женскую гордость?
Мужчина не должен привлекать к себе внимание, если ему нечего сказать.

Ответы095690

21 ноя, 20:12 139 1095684

>>1095584
>Речь о спектре излучения, але.
А что спектр излучения?
А ты среднюю дисперсию посчитал для спектра солнца\лампы накаливания и солнца\LED ?

21 ноя, 20:20 140 1095690

>>1095678
>>1095681
Я уже понял что в /ra/ лишний раз лучше не заходить. Что ты так орёшь-то? Сам небось своими светодиодами барыжишь? Экономическая целесообразность как раз таки очень спорная, светодиоды стоят сильно дороже ламп накаливания, прослужит столько же, так же сгорит, а электричества на всю стоимость лампы не сэкономит.

Ответы095698095700

21 ноя, 20:49 141 1095698

>>1095690
>светодиоды стоят сильно дороже ламп накаливания, прослужит столько же, так же сгорит,
А вот это пиздеж. На LED лампы одна лишь гарантия 2 года. Стоит они 100рублей примерно. Охуеть как дорого.

21 ноя, 20:53 142 1095700

>>1095690
1. Ты пишешь как манерный гей.
2. Даже относительно дорогие леды даже если допустить их малый срок службы, окупаются за счет стоимости электричества. Разница, внезапно, десятикратная.
А так то у меня 10$ LG с 2013 года в ванне светит.

Ответы095701

21 ноя, 20:55 143 1095701

>>1095700
Чем тебе не угодили геи?

Ответы095709

21 ноя, 21:13 144 1095709

>>1095701
>Чем тебе не угодили геи?
Все в порядке с геями, только мы тут RUST обсуждаем, а не женские чувства косметику и наряды.
Для геев есть /ga/.

21 ноя, 21:29 145 1095715

fn yoba () {
let mut vc = vec![1, 2, 3];
let r0 = &mut vc[0];
let r1 = &mut vc[1];
}

Так, это вполне закономерно не компилируется. Хотя для разных полей структуры вполне канает. А какой тут правоверный способ получить изменяемые ссылки на заведомо разные элементы массива?

Ответы095846

21 ноя, 23:16 146 1095805

Что за ебантизм этот ваш раст https://play.rust-lang.org/?gist=33c938daad857749a42b5add67732492&version=stable

Ответы095812

21 ноя, 23:22 147 1095812

>>1095805
Просто ты долбоеб.
https://play.rust-lang.org/?gist=66dde1409bcd0bcd9c646a3c1bd497b0&version=stable

Ответы095815

21 ноя, 23:23 148 1095815

>>1095812
Но про долбоеба это же не точно?

Ответы095817

21 ноя, 23:27 149 1095817

>>1095815
Судя по тому что ты пытаешься assert_eq юзать в качестве условия, точно.

Ответы095818

21 ноя, 23:27 150 1095818

>>1095817
Да я полчаса назад начал его тыкать.

Ответы095820

21 ноя, 23:30 151 1095820

>>1095818
Значит ты пиздец зеленый, раз не знаешь что такое assert.

Ответы095822

21 ноя, 23:32 152 1095822

>>1095820
В Go такого нет.
Как у вас получить последний эелемент слайса?

Ответы095824095950

21 ноя, 23:36 153 1095824

>>1095822
Ага, по-даунски как в го

22 ноя, 00:19 154 1095845

>>1095645
Ты просто мастер хуевых аналогий. Иди линукс переписывай.

Ответы095932

22 ноя, 00:19 155 1095846

>>1095715
rc?

Ответы095863

22 ноя, 00:34 156 1095860

>>1095347
>Это еще не факт. Без тестов говорить не о чем.
Я почти уверен. Да и дизассемблировать не так уж и сложно для проверки.

>код с указателями на сишечке
Если ты пропустил скучное предисловие, то там сравнивали с go и d. И на них это будет вполне себе безопасно. Давай, заяви про GC и пойдём по второму кругу.

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

>может оказаться как минимум громоздким и страшным
А может и оказаться настолько охуительным что его в музей сдадут. Чего тут гадать-то.

>Для крит важного кода, вроде realtime систем, есть ассемблер
Не, ну а как же абстракции с нулевой стоимостью? А так тебя послушать получается что либо "runs blazingly fast", либо " prevents segfaults, and guarantees thread safety".

>о чем тут собственного говорить и размышлять
Ну можно ещё попиздеть за мужеложцев и преимущества светодиодных ламп. Хуле ещё остаётся.

>>1095382
Не, ну а где собираются серьёзные системные программисты как не на двощах. В Mozilla Research что ль, скажешь тоже. А вообще от твоего сообщения какой-то тоскливой холодной безысходностью за здорово веет, прям хоть в петлю завязывайся. Вроде как вот тебе интрумент для создания красивого правильного, но нерабочего кода, а вот для чтоб работало, но через хуй колено. Всё ж развивается ПО, развиваются трансляторы, языки нескучные появляются, может и заебенят такое что все охуеют.
А вообще при таком количестве ограничений как в ржавом, могли бы взаимные ссылки нормально сделать, и прочие писечки на манер гарантии тотальности.

Ответы095870095877

22 ноя, 00:46 157 1095863

>>1095846
Я нубас просто, не расскажешь подробнее?

Ответы095867

22 ноя, 00:56 158 1095867

>>1095863
Чувак, прочитай растбук для начала - они гораздо лучше меня все объяснят.

22 ноя, 01:04 159 1095870

>>1095860
>А вообще от твоего сообщения какой-то тоскливой холодной безысходностью за здорово веет
Щито? Ты его мессаджа не понял, видимо.

> интрумент для создания красивого правильного, но нерабочего кода
Ээ... Щито?

> а вот для чтоб работало, но через хуй колено
Чего блядь?

> А вообще при таком количестве ограничений как в ржавом, могли бы взаимные ссылки нормально сделать
Ээ... Так как бы "такое количество ограничений как в ржавом" как раз и нужно, чтобы избежать взаимных ссылок и подобной хуйни. У меня такое чувство, что тебе тоже надо посоветовать прочитать растбук.

> гарантии тотальности
Ээ, расскажешь, как через афинные типы делать тоталити чек?

Ответы096219

22 ноя, 01:13 160 1095877

>>1095860
>Я почти уверен. Да и дизассемблировать не так уж и сложно для проверки.
Вместо тестов дезассемблировать?

> то там сравнивали с go и d. И на них это будет вполне себе безопасно
Ну и на расте будет безопасно.

>Заявление слишком сильное и категоричное
Это ты его так просто чувсвуешь.

>Но тут соглашусь, нужно исходить из задач.
Ну вот и славно.

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

>Не, ну а как же абстракции с нулевой стоимостью?
Нормально, не болеют, в церковь ходят, живут скромно но не бедствуют.

>А так тебя послушать получается что либо "runs blazingly fast", либо " prevents segfaults, and guarantees thread safety".
Любому здравомыслящему человеку, должно быть понятно, что общего решения быть в природе не может, но для некоторых случаев получается сделать и быстро и безопасно.

>Ну можно ещё попиздеть за мужеложцев и преимущества светодиодных ламп. Хуле ещё остаётся.
Нет, увольте.

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

22 ноя, 01:13 160 1095877

>>1095860
>Я почти уверен. Да и дизассемблировать не так уж и сложно для проверки.
Вместо тестов дезассемблировать?

> то там сравнивали с go и d. И на них это будет вполне себе безопасно
Ну и на расте будет безопасно.

>Заявление слишком сильное и категоричное
Это ты его так просто чувсвуешь.

>Но тут соглашусь, нужно исходить из задач.
Ну вот и славно.

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

>Не, ну а как же абстракции с нулевой стоимостью?
Нормально, не болеют, в церковь ходят, живут скромно но не бедствуют.

>А так тебя послушать получается что либо "runs blazingly fast", либо " prevents segfaults, and guarantees thread safety".
Любому здравомыслящему человеку, должно быть понятно, что общего решения быть в природе не может, но для некоторых случаев получается сделать и быстро и безопасно.

>Ну можно ещё попиздеть за мужеложцев и преимущества светодиодных ламп. Хуле ещё остаётся.
Нет, увольте.

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

Показать весь текст
Ответы096219

22 ноя, 06:08 161 1095915

>>1062380 (OP)
Пишут ли уже игори на расте?

Ответы095951

22 ноя, 08:13 162 1095932

>>1095845
Это не я начал.

22 ноя, 09:15 163 1095950

>>1095822
https://play.rust-lang.org/?gist=1b7ce5c87de05e0733759e8a7936f382&version=stable
unwrap() нужен потому что последнего элемента в общем случае может и не быть, поэтому ты получаешь Option<T>. В продакшн коде менять на expect или паттерн матчинг

22 ноя, 09:17 164 1095951

>>1095915
Пишут мелкие поделки всякие. Наркоманы пилят amethyst. ggez для 2д норм. piston очевидный.

22 ноя, 12:13 165 1096000

Ебанутся, оказывается String это не str. Вы там совсем ебанулись, аллё?

Ответы096004

22 ноя, 12:21 166 1096004

>>1096000
Ебануться, оказывается масссив это не слайс. Вы там совсем ебанулись, аллё?

22 ноя, 19:54 167 1096219

>>1095870
>Ты его мессаджа не понял, видимо.
Да вроде бы понял, но судя по количеству "Щито" в ответе - немного по-своему. Поясню. То что ты говоришь про тестирование и изолирование, в контексте вопроса использования небезопасного кода - безусловно правильно, только уж слишком универсально. Что-то в духе пиздато делай - пиздато будет. Также и сионист будет пояснять за с/спп, у меня, дескать, не течёт нихуя, я весь код изолирую, и ты так делай. Да не раз же в тредах было.

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

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

>как через афинные типы делать тоталити чек
Тут я не матёрый дока нихуя, но что-то типа: на каждом шаге один элемент должен быть структурно меньше предыдущего. Есть же языки с подобным, даже императивные. Да и данные благодаря системе типов организуются древовидно в основном А выкинуть Rc<RefCell<什么>> так и вообще всё строго будет .

>>1095877
Ну ты прям громишь по всем пунктам. Спасибо за щеку не накидал ничего.

Ответы096257096318

22 ноя, 20:46 168 1096257

>>1096219
>я весь код изолирую
Ты хуйню какую-то несешь, скажу прямо. Если одну и ту же функциональность можно реализовать либо на си, либо в два раза быстрее, чем на си, в четыре раза надежнее и без серьезных потерь в производительности, то рационально выбрать второй вариант. Где второй вариант недоступен, там приходится выбирать первый. Количество таких мест надо минимизировать, сами места изолировать. Капитан очевидность, привет. При чем тут сионисты с крестоносцами и как можно "весь код изолировать" - хуй тебя знает.

> универсального формализма
> универсального
> формализма

> люди-то годами работают
Что-то из разряда "бля, ну научному методу уже 2 сотни лет в обед, хули до сих пор не открыли все законы природы" или скорее даже "бля, ну математике уже 2 тыщи лет в обед, хули до сих пор что-то там придумывают".

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

> отсутсвие циклических ссылок тут лишь средство
Да я вроде обратного и не утверждал, не? Отсутствие побочных эффектов - тоже "лишь средство", например. Да и вообще программирование как деятельность - это "лишь средство". И чо? А циклические ссылки - это в любом случае code smell.

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

Ответы097510

57 Кб, 604x400
22 ноя, 23:02 169 1096318

>>1096219
>Вот мне и взрустнулось маленько, вроде и двадцать первый век, а некоего универсального формализма для написания заведомо безопасных быстрых программ так и не появилось. Предвосхищая аргументы "Любому здравомыслящему человеку, должно быть понятно" и "возьми и сделай" замечу что я-то философствую с дивана, но люди-то годами работают, могли бы и расстораться.
Такого формализма быть не может, в виду не Господь полной природы вычислительных систем с которыми мы работаем.

И даже если бы и Господь полная система была, формализмами она бы все равно не оперировала бы.

Раст - неплохой ЯП, двигающийся в правильном направлении, ЯП должен программиста дрючить, и бить по рукам за любое отступление от здравого смысла и единственного решения.
Правда, разрабы решили пихать в него слишком много языковых возможностей, что приведет к деградации и рабству.
Это собственно самый главный грех С++, попытка включить в себя все что только можно.

Специализация - благо.
Излишество синтаксиса - грех.

Ответы097510

23 ноя, 18:43 170 1096691

>>1095350
Можно сурс?

Ответы096723

23 ноя, 19:47 171 1096723

>>1096691
>Можно сурс?
Полея Увода

25 ноя, 05:40 172 1097510

>>1096257
Ладно, убедил по большей части.
Аналогии про научный метод и математику, всё ж слишком уж широкие. Про написание корректного ПО выпущенны тонны различной литературы с наборами правил и рекомендаций. Так что тут проблема лишь в том что они написанны на человеческом, а не на языке некоторой строгой формализации.

>Для диванного философа ты как-то хуевато с логикой дружишь.
Причину и первопричину конечно же. К чему так остро острить.

>это в любом случае code smell
Вот прям так и в любом? Я понимаю что для безопасного управлению памятью ацикличность очень удобна, но как быть с сущностями призванными соответствовать объектам предметной области, там: муж - жена, страна - столица, призывник - военкомат и прочие? В расте у нас выбор: либо rc, который также может приводить к утечкам (хотя и могли бы добавить механизм позволяющий ислючить перекрёстное владение, достаточно просто не настолько катострофически сложно), либо индексы. И с индексацией ещё одна проблема: чёрт с ней со скоростью, но мы, замечу пользуясь языком с весьма хардкорной типизацией, вынужденны пользоваться числами, строками, да чем угодно вместо конкретных объектов. Ноль, "Иван Василиевич", 777 запромест какого-нибудь UserEntry. И тут псевдонимы типов спасают едва-едва. Хотя, я не уверен, можно в расте определить не просто численный тип, а численный тип определённый как индекс, некоего массива?

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

>сабтьюринговость достигается запретом явной рекурсии, например
А с неявной проще, или что ты имеешь в виду? Вот, на всякий случай код на дафне:

function Fac(n: int): int
decreases n
{
if n <= 0 then 1 else n * Fac(n - 1)
}

На ATS, тоже что-то подобное встречалось.

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

>Излишество синтаксиса - грех.
Так-то да, но на фоне осальных монсров какие в расте сильно избыточные конструкции?

25 ноя, 05:40 172 1097510

>>1096257
Ладно, убедил по большей части.
Аналогии про научный метод и математику, всё ж слишком уж широкие. Про написание корректного ПО выпущенны тонны различной литературы с наборами правил и рекомендаций. Так что тут проблема лишь в том что они написанны на человеческом, а не на языке некоторой строгой формализации.

>Для диванного философа ты как-то хуевато с логикой дружишь.
Причину и первопричину конечно же. К чему так остро острить.

>это в любом случае code smell
Вот прям так и в любом? Я понимаю что для безопасного управлению памятью ацикличность очень удобна, но как быть с сущностями призванными соответствовать объектам предметной области, там: муж - жена, страна - столица, призывник - военкомат и прочие? В расте у нас выбор: либо rc, который также может приводить к утечкам (хотя и могли бы добавить механизм позволяющий ислючить перекрёстное владение, достаточно просто не настолько катострофически сложно), либо индексы. И с индексацией ещё одна проблема: чёрт с ней со скоростью, но мы, замечу пользуясь языком с весьма хардкорной типизацией, вынужденны пользоваться числами, строками, да чем угодно вместо конкретных объектов. Ноль, "Иван Василиевич", 777 запромест какого-нибудь UserEntry. И тут псевдонимы типов спасают едва-едва. Хотя, я не уверен, можно в расте определить не просто численный тип, а численный тип определённый как индекс, некоего массива?

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

>сабтьюринговость достигается запретом явной рекурсии, например
А с неявной проще, или что ты имеешь в виду? Вот, на всякий случай код на дафне:

function Fac(n: int): int
decreases n
{
if n <= 0 then 1 else n * Fac(n - 1)
}

На ATS, тоже что-то подобное встречалось.

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

>Излишество синтаксиса - грех.
Так-то да, но на фоне осальных монсров какие в расте сильно избыточные конструкции?

Показать весь текст
Ответы097517097690

25 ноя, 06:06 173 1097516

>>1088181
>>1088243
Если ещё точнее, то Haskell и C

25 ноя, 06:29 174 1097517

>>1097510
>Ну вся эта полнота
Я речь веду о конкретной полноте, Господь-полноте.

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

Ответы102675

25 ноя, 19:42 175 1097690

>>1097510
> Про написание корректного ПО выпущенны тонны различной литературы с наборами правил и рекомендаций.
Так уж и тонны? Все-таки ПО с доказательством корректности - это ОЧЕ узкая ниша, 95% софта это ненужно.

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

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

> Причину и первопричину конечно же.
Бля, ну я не шарю в вашей философской фене, что написано - я то и читаю.

> как быть с сущностями призванными соответствовать объектам предметной области
Щито? Блядь, ты понимаешь, что ты сейчас поставил на один уровень работу с памятью и моделирование предметной области? Это просто пиздец, курсивом.

> вынужденны пользоваться числами, строками, да чем угодно вместо конкретных объектов
Ой блядь. Чувак, будет время - загугли на ютубе "values of values". Я не знаю, что такое "конкретные объекты". В расте есть структы, больше ничего не нужно.

> не просто численный тип, а численный тип определённый как индекс, некоего массива?
При чем тут это вообще? Не улавливаю, куда тебя понесло. В общем случае - это зависимые типы. Конкретно с индексами повыебывались в nim'е, емнип.

> тип на данные которого может быть всегда только одна ссылка
Ну, не одна, а ноль или одна. И не "ссылка на данные" (ссылок (иммутабельных) ты сколько угодно можешь на данные иметь), а само значение типа. Грубо говоря, в обычной логике мы принимаем как данность следствия типа x => x and x. В афинной - ты можешь только либо использовать в правой части букву из левой один раз, либо не использовать ни разу.

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

> А с неявной проще, или что ты имеешь в виду?
Ну если у тебя явная рекурсия запрещена, то ты как бы можешь ввести свои нескучные операторы рекурсии со своими нескучными типами, что позволит тебе обойтись без кривых костылей вроде "decreases n".

25 ноя, 19:42 175 1097690

>>1097510
> Про написание корректного ПО выпущенны тонны различной литературы с наборами правил и рекомендаций.
Так уж и тонны? Все-таки ПО с доказательством корректности - это ОЧЕ узкая ниша, 95% софта это ненужно.

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

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

> Причину и первопричину конечно же.
Бля, ну я не шарю в вашей философской фене, что написано - я то и читаю.

> как быть с сущностями призванными соответствовать объектам предметной области
Щито? Блядь, ты понимаешь, что ты сейчас поставил на один уровень работу с памятью и моделирование предметной области? Это просто пиздец, курсивом.

> вынужденны пользоваться числами, строками, да чем угодно вместо конкретных объектов
Ой блядь. Чувак, будет время - загугли на ютубе "values of values". Я не знаю, что такое "конкретные объекты". В расте есть структы, больше ничего не нужно.

> не просто численный тип, а численный тип определённый как индекс, некоего массива?
При чем тут это вообще? Не улавливаю, куда тебя понесло. В общем случае - это зависимые типы. Конкретно с индексами повыебывались в nim'е, емнип.

> тип на данные которого может быть всегда только одна ссылка
Ну, не одна, а ноль или одна. И не "ссылка на данные" (ссылок (иммутабельных) ты сколько угодно можешь на данные иметь), а само значение типа. Грубо говоря, в обычной логике мы принимаем как данность следствия типа x => x and x. В афинной - ты можешь только либо использовать в правой части букву из левой один раз, либо не использовать ни разу.

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

> А с неявной проще, или что ты имеешь в виду?
Ну если у тебя явная рекурсия запрещена, то ты как бы можешь ввести свои нескучные операторы рекурсии со своими нескучными типами, что позволит тебе обойтись без кривых костылей вроде "decreases n".

Показать весь текст
Ответы102675

4 дек, 12:22 176 1102675

Я пардон за задержку.

>>1097517
>Господь-полноте.
Повторюсь. Не нужно.

>>1097690
>зависит от предметной области, от бизнеса
Ну во-первых и тут есть разнообразые решения в виде проверок, включая статические, пред/пост условий, инвариантов объекта, зависимых типов; но я всё же про корректность в более узком смылсе: безопасность при работе с памятью, отсутствие гонок - те вещи которые нам гарантируются в русте, ну и гарантии терменируемости, отсутствие взаимоблокировок и утечек - те, которых пока там нет.

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

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

>values of values
Не то видео, где патлач с маком заявляет о преимуществах неизменяемых сущностей над изменяемыми? Укажи минуту, если там что-то принципиально важное, что я упустил.

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

>без кривых костылей вроде "decreases n"
Вкусовщина же. Да и универсальней на мой взгляд.

4 дек, 12:22 176 1102675

Я пардон за задержку.

>>1097517
>Господь-полноте.
Повторюсь. Не нужно.

>>1097690
>зависит от предметной области, от бизнеса
Ну во-первых и тут есть разнообразые решения в виде проверок, включая статические, пред/пост условий, инвариантов объекта, зависимых типов; но я всё же про корректность в более узком смылсе: безопасность при работе с памятью, отсутствие гонок - те вещи которые нам гарантируются в русте, ну и гарантии терменируемости, отсутствие взаимоблокировок и утечек - те, которых пока там нет.

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

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

>values of values
Не то видео, где патлач с маком заявляет о преимуществах неизменяемых сущностей над изменяемыми? Укажи минуту, если там что-то принципиально важное, что я упустил.

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

>без кривых костылей вроде "decreases n"
Вкусовщина же. Да и универсальней на мой взгляд.

Показать весь текст
Ответы102797102839

4 дек, 15:54 177 1102797

>>1102675
>корректность в более узком смылсе
Ну это не корректность, а просто более стронг гарантии компилятора. Ок.

> Не, я их рядом не ставил.
Ну ты же сам сказал: как быть с сущностями из домейна, рс с ними использовать или массивы, что-то такое. Я и отвечаю, что "сущности из домейна" и массивы (рс, классы, объекты, хэшмапы...) - это понятия разных уровней.

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

> о преимуществах неизменяемых сущностей над изменяемыми
Нет, не об этом. Посмотри целиком. Алсо, повторюсь с прошлого поста: «Я не знаю, что такое "конкретные объекты". В расте есть структы, больше ничего не нужно.» Так что за "конкретные объекты"?

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

> Вкусовщина же. Да и универсальней на мой взгляд.
Натуральный счетчик универсальней рекурсии? Ну, гхм.

Ответы103142

4 дек, 17:24 178 1102839

>>1102675
>>Господь-полноте.
>Повторюсь. Не нужно.

Повторяю, для детерминированной модели отражающей реальный мир - нужно.

Конечно, ты можешь построить какую угодно модель для чего угодно, но толку от нее, если она не работает?

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

Ответы103142

4 дек, 22:34 179 1103142

>>1102797
Вот мы вроде бы и оба на русском пишем, а понимания больше не становится нихуя.

>Я вообще не ебу, о чем ты.
Промотай повыше. Весь разговор начался с вопроса создания взаиморекурсивных ссылок. Их и предполагалось эмулировать через индексы.

>Кто тебе в расте запрещает это делать?
Компилятор запрещает, кто же ещё. По прежнему о той же попытке эмуляции.

>Так что за "конкретные объекты"?
Я, наверное, очень хуёво умею свою мысль донести. Давай считать что под "конкретными объектами" я понимал прямую ссылку на структуру, изменяемую или нет. Которую, да, предполагается хранить в этой же самой структуре, например.

>я тебе говорю, что афинные типы к тоталити чеку никакого отношения не имеют
>Ты, очевидно, другого мнения
Как можно было придти к такому выводу? Я, вроде, сказал про "такое количество ограничений". Впрочем они всё ж скорее способствуют, чем препятствуют, но как конкретно сделать я сообщить не готов, да и не вызывался.

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

До кучи заинтересовал: покажи как выглядел бы примерно твой нескучный оператор рекурсии.

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

Ответы103225103709

4 дек, 23:08 180 1103174

Заебали сопли по забору размазывать.
Вот вам ваш двусвязный список из стандратной либы: https://doc.rust-lang.org/src/alloc/linked_list.rs.html#46-51

Ответы103221

29 Кб, 600x909
sage 5 дек, 00:26 181 1103221

>>1103174
>CTRL+F
>unsafe
>29 matches

Ответы103229

5 дек, 00:37 182 1103225

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

> Компилятор запрещает, кто же ещё.
Не запрещает. Берешь и передаешь.

> Давай считать что под "конкретными объектами" я понимал прямую ссылку на структуру
Ну, и ты выше писал, что в расте этих "конкретных объектов" нет, и тебе приходится пользоваться числами и строками. Я тебе еще 2 поста назад сказал, что в расте есть структуры, больше ничего не надо. Теперь выясняется, что ты структуры и имел в виду. Шта.

> Как можно было придти к такому выводу?
Да ты заебал:
>> А вообще при таком количестве ограничений как в ржавом, могли бы взаимные ссылки нормально сделать, и прочие писечки на манер гарантии тотальности.
> Ээ, расскажешь, как через афинные типы делать тоталити чек?
>> Тут я не матёрый дока нихуя, но что-то типа: ...

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

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

> До кучи заинтересовал: покажи как выглядел бы примерно твой нескучный оператор рекурсии.
linrec p o f g <=> h x: if p x then o x else g(h(f x)), как-то так. Соответственно, можно иметь разные комбинаторы для разных случаев (и даже с разными типами, в том числе и для unbound рекурсии), а "decreases n" хендлить на уровне обычной системы (зависимых) типов. Комбинаторы - joy, тотальность - charity, например.

Ответы103346

5 дек, 00:44 183 1103229

>>1103221
И че?

Ответы103236

5 дек, 00:56 184 1103236

>>1103229
Безопасность подаётся как основная фича языка. А тут, чтобы написать банальный связанный список, потребовалось три десятка раз её подавлять. Боюсь представить, что творится в ентерпрайз коде. Иными словами, основная идея раста разбивается при выходе в реальный мир.

Ответы103241103272

5 дек, 01:07 185 1103241

>>1103236
Мудила, ты часто реализуешь низкоуровневые структуры данных в бизнес коде?
Один раз написал и пользуешься во всем проекте. А это вообще в std. Хуле тебе надо-то?

5 дек, 04:44 186 1103272

>>1103236
Ща бы думать, что мутабельный список вещь банальная.
Тут как раз отлично отделены безопасные вещи и используя этот список, ты всегда в безопасности.
Вопросы скорее к твоему коду и задумке, если тебе приходится делать unsafe вне библиотек.

5 дек, 11:16 187 1103346

>>1103225
Вот как приведённых тобой моих высказываний "могли бы сделать..." и "я не матёрый дока нихуя" можно вывести "ты через афинные типы собрался делать тоталити чек"? Пользуясь аффинной логикой, наверное.

Ну и:
>Да ты заебал
>Ой, все, иди нахуй
>Нахуй так жить
наконец-то пошла конструктивная риторика, сплошные опровержения в чистом виде. Ещё чуть-чуть и сможем воочию лицезреть как рождается истина, в муках выплёвываемая из уродливого влагалища спора. И тут либо я писать нормально не умею, либо ты - читать. Хуй с ним, будет желание, как поправишь нервишки, пересмотри ветку от начала, чтоб не драть почём зря фразы из контекста, а нет - да и в рот её ебать.

Ответы103670

5 дек, 23:03 188 1103670

>>1103346
Ожидаемо. Я пробегаю глазами релевантные места по всему диалогу перед каждым своим ответом, а ты много пиздишь о том, в чем не шаришь, и идешь нахуй. Это интернеты, добро пожаловать снова.

6 дек, 00:59 189 1103709

>>1103142
>А вообще, нет ли у тебя примера достаточно доступного, чтоб мы могли оценить всю потенциальную ограниченность и неполноту?
Абсолютно любая программа.
Чтобы оценить всю принципиальную, а не потенциальную, ограниченность и неполноту, достаточно написать любую сколь нибудь реальную программу, и дать ее юзерам.

Ненужно много теоретизировать, достаточно простейшей практики, блядь. Прости Господи, любому живому человеку, кроме женщин разве что, должно быть понятно, как работает мир. Достаточно в детстве достаточно близко с природой взаимодействовать, получать синяки и прочие травмы.

Любой мат аппарат описывающий реальный мир включает в себя понятие шума и ошибки.
"Шум" - это нечто, от чего нельзя избавится принципиально.

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

Более того, практическое мышление\работа\программирование, не требует доказательств. Можно потратить всю жизнь на выведение доказательств, поиска зависимости в дробной части числа Pi, а можно без задней мысли решать инженерные проблемы.

Ответы103735

6 дек, 03:41 190 1103735

>>1103709
Ну хаскель-то как раз про вполне себе практичные вещи, хотя изначально для них и не предназначался.

мимо

76 Кб, 1490x888
6 дек, 16:21 191 1103996

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

Ответы104264

6 дек, 22:09 192 1104259

>>1083507
Хуль тут все кристал вспоминают? Рубисты что ли?
Кристал сдох уже совсем, увы.

6 дек, 22:23 193 1104264

>>1103996
>что самое сложное вы уже написали на расте?
хеллоу ворд

Ответы105858

10 дек, 15:27 194 1105831

>>1062380 (OP)
Сап, есть архив тредов?

10 дек, 16:30 195 1105858

>>1104264
Гудбай ворлд.

11 дек, 04:00 196 1106168

>>1062380 (OP)
Решил к вам вкатиться и ставлю ентон самый раст. А чего у него такая инсталяха мелкая то?

Ответы106221

11 дек, 12:39 197 1106221

>>1106168
Если ты про rustup то он тебе доставит нужную версию компилятора.

Ответы106240

134 Кб, 967x484
11 дек, 13:51 198 1106240

>>1106221
HALP

Ответы106311

11 дек, 17:48 199 1106311

>>1106240
Сочувствую братишка, тут либо пердолинг с сертификатами (не факт что поможет) либо обход прокси сервера.

Ответы106551

12 дек, 00:23 200 1106431

Двочь, покажи пример как захуярить на расте аналог горутин типа go someFunc()

Спасибо.

Ответы106444106485106486106530106965

12 дек, 00:37 201 1106444

>>1106431
https://rustbyexample.com/std_misc/threads.html
Учти, горутины != потоки.

Ответы106964

12 дек, 04:27 202 1106485

>>1106431
Поищи либы, гороутины выпелили из базового раста.

Ответы106486106964

12 дек, 04:28 203 1106486

>>1106431
В смысле green threads. Так эта шняга правильно называется.

>>1106485

Ответы106964

100 Кб, 720x684
12 дек, 09:50 204 1106530

>>1106431
>Двочь, покажи пример как захуярить на расте аналог горутин
https://tokio.rs
https://github.com/carllerche/mio

Ответы106964

12 дек, 11:29 205 1106551

>>1106311
Хз, это уже 2 разных провайдера, падазритльна

13 дек, 14:31 206 1106964

>>1106444
>>1106485
>>1106486
>>1106530
Спасибо, пацаны, разобрался. Хотя и не так, как в го (там удобнее).

Еще такой момент, у меня есть одна libcore.c для встраиваемых устройств (С99). Но этот ебучий гугл по запросу `rust cffi example` подсовывает мне `calling rust from python` и подобное. Дайте, пожалуйста, пример или ссылку как вызвать из раста условный void hello(){printf("hello\n");}

13 дек, 14:33 207 1106965

>>1106431
https://doc.rust-lang.org/book/first-edition/ffi.html

Ответы106989

13 дек, 14:52 208 1106977

Поясните, почему этот ваш раст гуглится вместе с идрисом, агдой? Он что с зависимыми типами?

Ответы106983

13 дек, 15:01 209 1106983

>>1106977
Пример запроса в студию.

13 дек, 15:11 210 1106989

>>1106965
Код https://gist.github.com/c5c26a52a9b6d62a0806302e45336311

Compiling rs v0.1.0 (file:///tmp/rs)
warning: found Rust type `str` in foreign module; consider using a `*const libc::c_char`
--> src/main.rs:5:17
|
5 | fn hello(args: &str) -> i32;
| ^^^^
|
= note: #[warn(improper_ctypes)] on by default

error: linking with `cc` failed: exit code: 1
|
= note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/tmp/rs/target/debug/deps/rs-9ef286ba19a0c06c.rs0.rcgu.o" "-o" "/tmp/rs/target/debug/deps/rs-9ef286ba19a0c06c" "/tmp/rs/target/debug/deps/rs-9ef286ba19a0c06c.crate.allocator.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" "-L" "/tmp/rs/target/debug/deps" "-L" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-l" "libcore" "-Wl,-Bstatic" "/tmp/rs/target/debug/deps/liblibc-e31c38359b6db9f2.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-40464829c57274f9.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-f71e4223e340827c.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc_jemalloc-d2f67529073eb9a2.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-f30681a605447f35.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc_system-a2342e3a41ff3ba5.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-254494cfc0585fad.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-8af72a5c90e6873a.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_unicode-ef9957a2dc058c2e.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-8a31a4b0f6e25305.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-9dad24fd34e0d61c.rlib" "-Wl,-Bdynamic" "-l" "util" "-l" "util" "-l" "dl" "-l" "rt" "-l" "pthread" "-l" "pthread" "-l" "gcc_s" "-l" "c" "-l" "m" "-l" "rt" "-l" "pthread" "-l" "util" "-l" "util"
= note: /usr/sbin/ld: cannot find -llibcore
collect2: ошибка: выполнение ld завершилось с кодом возврата 1

error: aborting due to previous error

error: Could not compile `rs`.

To learn more, run the command again with --verbose.

13 дек, 15:11 210 1106989

>>1106965
Код https://gist.github.com/c5c26a52a9b6d62a0806302e45336311

Compiling rs v0.1.0 (file:///tmp/rs)
warning: found Rust type `str` in foreign module; consider using a `*const libc::c_char`
--> src/main.rs:5:17
|
5 | fn hello(args: &str) -> i32;
| ^^^^
|
= note: #[warn(improper_ctypes)] on by default

error: linking with `cc` failed: exit code: 1
|
= note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/tmp/rs/target/debug/deps/rs-9ef286ba19a0c06c.rs0.rcgu.o" "-o" "/tmp/rs/target/debug/deps/rs-9ef286ba19a0c06c" "/tmp/rs/target/debug/deps/rs-9ef286ba19a0c06c.crate.allocator.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" "-L" "/tmp/rs/target/debug/deps" "-L" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-l" "libcore" "-Wl,-Bstatic" "/tmp/rs/target/debug/deps/liblibc-e31c38359b6db9f2.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-40464829c57274f9.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-f71e4223e340827c.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc_jemalloc-d2f67529073eb9a2.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-f30681a605447f35.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc_system-a2342e3a41ff3ba5.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-254494cfc0585fad.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-8af72a5c90e6873a.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_unicode-ef9957a2dc058c2e.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-8a31a4b0f6e25305.rlib" "/home/user/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-9dad24fd34e0d61c.rlib" "-Wl,-Bdynamic" "-l" "util" "-l" "util" "-l" "dl" "-l" "rt" "-l" "pthread" "-l" "pthread" "-l" "gcc_s" "-l" "c" "-l" "m" "-l" "rt" "-l" "pthread" "-l" "util" "-l" "util"
= note: /usr/sbin/ld: cannot find -llibcore
collect2: ошибка: выполнение ld завершилось с кодом возврата 1

error: aborting due to previous error

error: Could not compile `rs`.

To learn more, run the command again with --verbose.

Показать весь текст
Ответы106991

13 дек, 15:17 211 1106991

>>1106989
Ага, вкурил. А как мне -llibcore передать расту?

Ответы106992

13 дек, 15:17 212 1106992

>>1106991
http://doc.crates.io/build-script.html

Ответы107000

13 дек, 15:31 213 1107000

>>1106992
Спасибо

23 дек, 21:35 214 1111575

>>1087937
Ну и чем это лучше C?

Ответы111584111589

23 дек, 21:39 215 1111578

>>1094144
Cpp -- общемировой стандарт с самым большим комьюнити, базой знаний, сумасшедшей кроссплатформенностью.

Зачем вообще плодить сущности, если они отличается какими-то там ссылками?

Ответы111584111589112020

sage 23 дек, 21:42 216 1111584

>>1111575
Гребаные гуманитарии, вон из профессии.

>>1111578
Давайте на ассемблере писать, зачем плодить сущности))00)

Ответы111594

23 дек, 21:56 217 1111589

>>1111575
>>1111578
https://www.youtube.com/watch?v=ksirw1v5gXk

23 дек, 22:18 218 1111594

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

Ответы111595

sage 23 дек, 22:22 219 1111595

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

>На ассемблере нельзя писать переносимый код.
А на си - типобезопасный, и что?

Иди тролли в другом месте.

Ответы111925

24 дек, 21:38 220 1111925

>>1111595

Типобезопасность != без ошибок.

Зато такие языки всегда будут неэффективными=)

Ответы111969

24 дек, 23:09 221 1111969

>>1111925
> такие языки всегда будут неэффективными
скажи это расту

А типобезопасность расслабит голову на 99%, оставив место для действительно важных вещей, логики например.

25 дек, 01:50 222 1112020

>>1111578
Потому что c++ тридцатилетний ворох костылей и замечательных решений.

25 дек, 11:35 223 1112111

>>1062380 (OP)
Как сделать итератор по &T?

26 дек, 12:10 224 1112555

Всех с NLL, посаны: https://github.com/rust-lang/rust/pull/46862
[CODE]
#![feature(nll)]

fn main() {
let mut v = vec![1,2,3];
v.push(v[0]);
v.push(v.len());
}
[/CODE]

Ответы113138113144

27 дек, 04:20 225 1113004

>>1070417
Навскидку, если ты скомпилируешь что-то на языке Dafny, то оно заработает без косяков.

Ответы113058

27 дек, 12:00 226 1113058

>>1113004
Навскидку, ты и Hello World не напишешь на Dafny. Лол, потому что НЕВОЗМОЖНО

Ответы113153

113 Кб, 1190x1698
27 дек, 15:55 227 1113138

>>1112555
10/10 как же охуенно то.

Ответы113211

27 дек, 16:08 228 1113144

>>1112555
Как включить эту штуку глобально, чтобы не пихать в каждый файл?

27 дек, 16:34 229 1113153

>>1113058
Ок, завезли method Main, походу становится можно писать standalone applications.

27 дек, 18:21 230 1113211

>>1113138
> пикрелейтед
Просто у туземцев есть дигри по комплюктер сцайенс, так что параметрический полиморфизм они и называют параметрическим полиморфизмом, а инопланетных джава-макак делают вид, что не понимают.

Ответы113213113248

27 дек, 18:23 231 1113213

>>1113211
Если бы это было так, цены бы туземцам не было. Но увы.

Ответы113453

27 дек, 21:33 232 1113248

>>1113211
Это у промышленных макак называется параметрическим полиморфизмом, а в академии это статический полиморфизм.

Ответы113453

28 дек, 14:39 233 1113453

>>1113213
Увы.

>>1113248
А вот и настоящий, риал-ворлд туземец подъехал, лол.

Ответы113484

28 дек, 17:06 234 1113484

>>1113453
Просвещайтесь https://en.wikipedia.org/wiki/Polymorphism_(computer_science)#Static_and_dynamic_polymorphism

Ответы113586113596

28 дек, 22:37 235 1113586

>>1113484
Статик — это C++ костыли, а оригинальный параметрический полиморфизм из ML 70-ых годов.

Ответы113684

28 дек, 23:16 236 1113596

>>1113484
> Static polymorphism typically occurs in ad hoc polymorphism and parametric polymorphism, whereas dynamic polymorphism is usual for subtype polymorphism.
Почему ты настолько тупой, что даже текст по собственной ссылке прочитать не можешь?

Ответы113681

29 дек, 03:08 237 1113681

>>1113596
Щас бы спорить с быдлом о дефинициях. Но давай, мне интересно посмотреть, как ты будешь вертеться, объясняя мне, где я не прав.

Ответы113938

29 дек, 03:15 238 1113684

>>1113586
Но в ML вычисление параметризованного типа происходит точно так же как и специализация шаблона с крестах - во время компиляции, вот почему терминологически static polymorphism более удачен даже если не вспоминать про ad hoc полиморфизм - с тайпклассами или рабоче-крестьянски.

Ответы113705

29 дек, 08:18 239 1113705

>>1113684
Он не имеет смысла, потому что это низкоуровневая деталь, а не суть, к тому же там все статик.

Ответы113807

29 дек, 09:26 240 1113727

Как же вы заебали со своим нытьем. Уебывайте в хаскель тред нахуй.

29 дек, 12:51 241 1113807

>>1113705
>Различие языков по динамической и статической типизации не имеет смысла, это низкоуровневая деталь

Ответы113938

29 дек, 19:59 242 1113938

>>1113681
Перечитай свои же посты. Потом иди sicp изучай.

>>1113807
Зарепортил за жирный троллинг тупостью.

29 дек, 21:49 243 1113959

Зачем нужен раст, когда есть пиздатый голенг?

Ответы113960

29 дек, 21:52 244 1113960

>>1113959
1) гц
2) нет дженериков

Ответы113973114454

29 дек, 22:28 245 1113973

>>1113960
Зачем ты назвал преимущества го?

Ответы113974

29 дек, 22:29 246 1113974

>>1113973
Если в твоем случае это преимущества, то тебе раст не нужен.

31 дек, 14:48 247 1114454

>>1113960
>1) гц
в расте нет гц

Ответы114455

31 дек, 14:50 248 1114455

>>1114454
Жирный, очевидно были приведены пункты которые в определенных ситуациях являются недостатками голенга.

Ответы114657

1 янв, 05:08 249 1114657

>>1114455
>пределенных ситуациях являются недостатками голенга.
а, ну ок.

43 Кб, 1024x576
6 янв, 01:01 250 1116277

Бампусики.
Игори 2д делоть https://github.com/ggez/ggez
Асинк делоть https://tokio.rs/
Веб бекэнд делоть http://rocket.rs/
Орм делоть http://diesel.rs/
Веб фронтэнд делоть https://github.com/DenisKolodin/yew

Ответы116569117939

6 янв, 21:21 251 1116569

>>1116277
> ORM
> Язык без какого-либо намека на ооп, с полностью функциональной системой типов.

Ответы116590116655

6 янв, 22:03 252 1116590

>>1116569
Шо сказать то хотел?

7 янв, 00:00 253 1116655

>>1116569
> полностью функциональной системой типов.
Это как? Просвети. Бывают, значит, не полностью функциональные, а бывают совсем не функциональные, так? Накидай-ка примерчиков всех трех.

Ответы117648

9 янв, 04:40 254 1117648

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

Ответы117787117932

9 янв, 16:20 255 1117787

>>1117648
Ну и как это противоречит идеи ORM?

Ответы117932118156

9 янв, 21:26 256 1117932

>>1117787
Да никак. Этот >>1117648 нахватался разных умных слов и пытается их комбинировать.

9 янв, 21:39 257 1117939

>>1116277
>Асинк делоть
ОТКРЫЛ ВКЛАДКУ https://tokio.rs
@
ПРИМЕР НА ИНДЕКСНОЙ
@
.unwrap();
@
.unwrap();
@
.UNWRAP();
@
ЗАКРЫЛ ВКЛАДКУ

Ответы117952118157

9 янв, 22:28 258 1117952

>>1117939
Прикинь, программирование оно такое. Дохуя где могут быть ошибки.
Конечно try {} catch () {} наше все, да?

Ответы117953

9 янв, 22:32 259 1117953

>>1117952
Получше чем
.похуй();
.похуй();
.забей();

Ответы117959117961

9 янв, 22:48 260 1117959

>>1117953
Мань, ну че ты как маленький. В main пока нельзя пользоваться ?try!(). Поэтому в примерах юзают unwrap().
В настоящем коде это будет либо прокинуто наверх через ? либо expect()

9 янв, 22:50 261 1117961

>>1117953
охуеть
.похуй()
.похуй()
.забей()
.наБлядстве(пукнуть);

Ответы117971

9 янв, 23:06 262 1117971

>>1117961
Ну если ты так пишешь код, то кто тебе в этом виноват?

Ответы117987

9 янв, 23:44 263 1117987

>>1117971
Че? Что в этом плохого?

Ответы118068

10 янв, 09:09 264 1118068

>>1117987
Зачем вы постите несмешное?

10 янв, 14:18 265 1118156

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

Ответы118256

10 янв, 14:25 266 1118157

>>1117939
А как по-твоему должен асинк работать? Поменяешь на andThen в продакшене и поедешь

10 янв, 17:33 267 1118256

>>1118156
Ну так в чем проблема-то?
> This creates, in effect, a "virtual object database" that can be used from within the programming language

17 янв, 18:23 268 1121314

Поясните, почему работает шляпа вида
r.map(|x| Some)

Я так понимаю возвращает Some(x) и Some что-то в виде функтора. Но как отличить Some(5) который блядь функция от Some(5) который вариант енама?

Ответы121317121361

17 янв, 18:28 269 1121317

>>1121314
Пример полноценный покажи.

Ответы121319

17 янв, 18:38 270 1121319

>>1121317
Какой пример? Вопрос самодостаточен, можешь вообще читать только последние два предложения.
Вкратце, Стив Клабник мне ответил, что Some это есть функция, которая возвращает Option. А как тогда выглядит собственно сам Some, именно вариант, не функция? То есть let hueta = Some(5), какой тип у hueta? Просто Option<i32>? То есть я не могу просто так взять и без паттерн матчинга понять, что содержится в хуете.
Это касается так же и всех остальных енамов.
По ходу, это просто такое у них устройство на низком уровне.
Но все равно как-то мутно для меня это всё

Ответы121323121361

17 янв, 18:45 271 1121323

>>1121319
Палю лайфпхак: https://play.rust-lang.org/?gist=ed3c4a40f28e2b8e9e4a7782a1c8211e&version=stable

Ответы121326

17 янв, 18:49 272 1121326

>>1121323
Дык я об этом и говорю.
Если и обоих вариантов, иу Some, и у None общий тип - то выходит блядь простым смертным недоступно узнать разницу между ними на уровне имплементации самих енамов. Все что нам дают - возможность сравнивать и матчить. Я все правильно всосал?

Ответы121328

17 янв, 18:52 273 1121328

>>1121326
В этом и заключается главный смысл.
Ты обязан тем или иным образом обработать разные варианты енума.
map точно так же внутри себя делает паттерн матчинг

match option {
Some(x) => f(x),
None => None,
}

Ответы121332

17 янв, 18:56 274 1121332

>>1121328
На огороде бузина.
Ты ответил не совсем на то, о чем я спрашивал.
Ватевер, принцип я вкурил, а дальше буду адаптироваться.

Ответы121333

17 янв, 18:58 275 1121333

>>1121332
Ну в общем случае енумы это tagged union
[tag, max(enum_variant)]
В случае Option используется NULL для None и указатель на данные иначе.

17 янв, 19:57 276 1121361

>>1121314
>>1121319
Ты путаешь конструктор типа и тип. Алсо, ты немного путаешь рантайм и компайлтайм.

26 янв, 09:24 277 1126602

Спросил в треде про Пщ, спрошу и здесь. Знатоки Rust, расскажите, пожалуйста, что в Rust есть хорошего, и что плохого.

Ответы126612

99 Кб, 831x839
26 янв, 09:50 278 1126612

>>1126602
Ты че, жену себе выбираешь?
https://www.rust-lang.org/en-US/

Ответы127088

27 янв, 01:35 279 1127088

>>1126612
Мне интересно мнение прошаренных людей, которые уже как следует изучили Rust и могут описать все или почти все его недостатки.

Ответы127822

28 янв, 11:09 280 1127822

>>1127088
Основной недостаток - взрыв мозга при первой встрече с борроу-чекером и вообще писать, "как на других языках", не получается. Ну то есть, читай, порог вхождения высоковат.

Ответы128431

29 янв, 02:22 281 1128426

>>1081347
Ох уж эти манямиры прыщеблядей.

29 янв, 03:04 282 1128431

>>1127822
Почему недостатоток? Это же киллер-фича, пересмотр сложившейся традиции построения ЯП.

Ответы128458

29 янв, 05:09 283 1128458

>>1128431
Глупо конечно это отрицать. Но так же глупо отрицать то, что в это надо въехать. Хотя мне кажется многие через чур драматизируют по этому поводу, система владения в русте достаточно простая, раз в нее смогла за день въехать такая жс/го макака как я.

Ответы128464

29 янв, 05:23 284 1128464

>>1128458
Да это те же пойнтеры, только компилятор с ними очень строгий: или кто-то один пишет, или все читают. По сути компилятор тебя и обучает.

1 фев, 08:21 285 1129986

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

1 фев, 17:43 286 1130201

Для каких задач раст хорошо подходит, а для каких его лучше не использовать?

Ответы130816130860

2 фев, 16:43 287 1130816

>>1130201
Для задач где го недостаточно выразительный, всякие джавы/сисярпы/хаскели медленные и прожорливые, с/с++ недостаточно простые и безопасные.

Ответы130839

2 фев, 17:29 288 1130839

>>1130816
Расскажи примеры таких задач, анон, плз.

Ответы130840

2 фев, 17:32 289 1130840

>>1130839
Скажем делаешь ты игру. У игры есть очень четкое требование — успевать всю хуйню сделать за 16мс, чтобы ты получил свои 60фпс. А голанг может тебе хуйню сборку мусора на 10мс.

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

Ответы131144

2 фев, 18:53 290 1130860

>>1130201
Переписали на нем с джавы софтину, которая 24/365 крутилась на cortex-a5 256mb ram. Теперь переписываем с C код для cortex-m4 128kb sram.
Сначала было непросто понять, что хочет компилятор и борроу-чекер, теперь придрочились. Во втором случае еще и с сетапом/инициализацией пришлось повозиться (то что пилит japaric нам не подошло).
Еще можешь глянуть Макса Лапшина на highload++, он для камер на ARMv5 пилит чото.

Ответы131144

3 фев, 09:37 291 1131144

>>1130860
И как тебе раст после сишки?
>>1130840
Дело в дженериках и gc?

Ответы131184132670

3 фев, 11:10 292 1131184

>>1131144
Еще дело в более выразительной системе типов и возможности писать безопасный многопоточный код.

Каналы и горутины это конечно хорошо, но они ни капли не спасают от того что рантайм го может тебе крашануть приложение из-за небезопасного доступа к map.

Ответы131193

3 фев, 11:40 293 1131193

>>1131184
Т.е. Rust лучше Go?

Ответы131196131214

3 фев, 11:54 294 1131196

>>1131193
В многих аспектах да.
За это приходится платишь более высокой сложностью вкатывания, более медленной компиляцией и пока что меньшим размером коммьюнити. Впрочем, раст моложе и вангую что через 3-5 лет он будет так же популярен как и го в своей нише.

3 фев, 12:53 295 1131214

>>1131193
https://play.golang.org/p/6Aft5JuiVc4
Попробуй такое же сделать расте.

Ответы131253

3 фев, 14:27 296 1131253

>>1131214
Знать бы ещё что эта хуета делает.

Ответы131270131542

3 фев, 15:07 297 1131270

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

3 фев, 18:44 298 1131542

>>1131253
В том то и проблема го, что многие го программисты(читай бывшие скриптомакаки) не понимают, что этот код работает не правило и такого не должно быть.

Ответы131571

3 фев, 19:33 299 1131571

>>1131542
Почему проблема? Это заявленная фича. Скриптомакакам должно быть легко вкатываться и индусить код во блага хозяина.

4 фев, 15:35 300 1132080

Котоны нубасы, чего вам не хватает для того чтобы вкатится в раст?

Ответы132103132622

4 фев, 16:22 301 1132103

>>1132080
Стандарта или хотя бы кс-грамматики.

Ответы132108

4 фев, 16:25 302 1132108

>>1132103
Нахуя тебе стандарт?

Ответы132115

4 фев, 16:28 303 1132115

>>1132108
Предлагаешь читать очередную воду для вкатывальщиков?

Ответы132118

4 фев, 16:30 304 1132118

>>1132115
Возьми programming rust. Воды очень мало и вообще очень хорошая книжка.

Ответы132121

4 фев, 16:31 305 1132121

>>1132118
>programming rust
Pages: 622

Ответы132123

4 фев, 16:37 306 1132123

>>1132121
Да, там пол книжки про стандартную либу и как с её помощью решать задачи. При этом написано хорошо, а не в стиле референса.

Ответы132129

4 фев, 16:41 307 1132129

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

Ответы132133

4 фев, 16:45 308 1132133

>>1132129
Можешь начать с оф. книжки. Она короткая и по делу.

18 Кб, 320x320
sage 5 фев, 09:32 309 1132622

>>1132080
Работы.

Ответы132636

5 фев, 09:44 310 1132636

>>1132622
Ну во первых вакансии уже появляются. А во вторых, хочешь работы, учи пхп.

Ответы132671

5 фев, 10:38 311 1132670

>>1131144
Я джавист, и с джавы переписывать сложно только те части, где наследование и рефлексия.

Парни которые могут в сишку сказали, что есть некоторые сложности с хардкорной байтоеблей, поначалу тупо все в unsafe пихали а потом его минимизировали. Сейчас ансейф только там где риальне нужен (регистры там, dma всякое и обертки над сторонними либами), остальное проверяется борроу-чекером.

5 фев, 10:38 312 1132671

>>1132636
Появляются. Но берут только сеньеров с опытом. Иногда мидлов.

Ответы132686

5 фев, 10:55 313 1132686

>>1132671
А ты как хотел-то? Если хочешь чтобы тебя учили, выбирай го.

Ответы132692134559

246 Кб, 638x359
5 фев, 11:06 314 1132692

>>1132686
Я выбрал жс.

Ответы132699

5 фев, 11:11 315 1132699

>>1132692
Тоже хороший вариант.
На, попробуй: https://github.com/DenisKolodin/yew

Ответы132718132734

5 фев, 11:37 316 1132718

>>1132699
Спасибо конечно, но мне нужно сначала с синтаксисом разобраться.

5 фев, 12:06 317 1132734

>>1132699
а какой в этом смысл? зачем писать на расте то что можно написать на жс?

мимо

Ответы132737

5 фев, 12:11 318 1132737

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

Затем если ты уже используешь rust на бекэнде (см. diesel.rs), то вполне возможно, что фронтэнд на расте может быть вполне себе неплохой идеей. В конце концов гугловцы уже давным давно так делают с жавой.

Ответы132739132772

5 фев, 12:13 319 1132739

>>1132737
typescript

Ответы132743

5 фев, 12:17 320 1132743

>>1132739
> Затем если ты уже используешь rust на бекэнде...

5 фев, 12:59 321 1132772

>>1132737
Типизация не нужна.

Ответы132779

5 фев, 13:05 322 1132779

>>1132772
> Например, ты можешь прийти к заключению,
Если она тебе ну нужна, что ты вообще делаешь в расто-треде тогда?

Ответы132782

5 фев, 13:06 323 1132782

>>1132779
Ебу твою мамашу.

Ответы132785

5 фев, 13:10 324 1132785

>>1132782
Типичная жс макака.

Ответы132788

5 фев, 13:13 325 1132788

>>1132785
Ты просто завидуешь.

8 фев, 10:59 326 1134559

>>1132686
>Если хочешь чтобы тебя учили, выбирай го.
Тогда зачем rust? В чем от него профит?

Ответы134570

8 фев, 11:13 327 1134570

>>1134559
> zero-cost abstractions
> move semantics
> guaranteed memory safety
> threads without data races
> trait-based generics
> pattern matching
> type inference
> minimal runtime
> efficient C bindings
Всего этого нет в го.

Ответы134571

8 фев, 11:15 328 1134571

>>1134570
А я вот пару недель назад начал вкатываться в Го, и меня настигло осознание, что программки с Gui на нём не напишешь. На ruste можно программки писать с окошками и кнопочками под винду?

Ответы134580

8 фев, 11:41 329 1134580

>>1134571
С чего бы не напишешь-то? Берешь биндинг к любому тулкиту и пишешь. С растом то же самое. Все делается через биндинги к тулкитам. Ну или можешь винапи заюзать, но только нахуя?

Ответы134583

8 фев, 11:46 330 1134583

>>1134580
О, спасиб. Действительно всё есть
https://github.com/cyndis/qmlrs
https://github.com/therecipe/qt
Просто петушня и го-треде сказала, что нет.

Ответы134585

8 фев, 11:53 331 1134585

>>1134583
https://github.com/rust-unofficial/awesome-rust#gui

16 фев, 02:41 332 1140014

Таки раст смог ворваться в бастион асинхронных http богов
https://www.techempower.com/benchmarks/#section=data-r15&hw=ph&test=plaintext

Ответы150530

16 фев, 05:16 333 1140029

Rust 1.24. В стейбл завезли инкрементную сборку и rustfmt.

25 фев, 23:23 334 1146026

https://www.youtube.com/watch?v=rTo2u13lVcQ
10/10 ржака

Ответы146036146252

25 фев, 23:57 335 1146036

>>1146026
Монолог под вставку смешных картинок.
Конференции по программированию, которое мы заслужили.

Ответы146039

26 фев, 00:08 336 1146039

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

Ответы146143

26 фев, 08:01 337 1146143

>>1146039
>Куда делись те самые нудные бородочи из моей юности

В основном на пенсию. Некоторые продолжают ебать байты на сях в мокрософтах и редхатах, некоторые в эмбеде микроконтроллеры для новых стиралок electrolux ебут. Некоторые для автомобилей программы ЭБУ пишут уже нет: https://www.drive2.ru/b/466174514431001350/

В целом все системное по уже написано и нового никто не пишет, лишь сопровождают и дополняют новыми фичами.

Ответы146146150426

26 фев, 08:16 338 1146146

>>1146143
>Некоторые для автомобилей программы ЭБУ пишут уже нет: https://www.drive2.ru/b/466174514431001350/

Заебись, еще один аргументик в сторону смерти кодерков. Алсо, буду теперь байтоблядей этой ссылкой траллить.

Ответы146171

26 фев, 09:13 339 1146164

Хуле вы разнылись. Охуенно же, когда полезные вещи с юморком подают. Это намного пизже, чем слушать жующего говно дауна.

Ответы146184

26 фев, 09:26 340 1146171

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

Ответы146205

1,2 Мб, 636x477
26 фев, 09:53 341 1146184

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

Ответы146187

26 фев, 09:54 342 1146187

>>1146184
В основном с того, что понимают боль, которую описывает спикер.

26 фев, 10:27 343 1146205

>>1146171

> За это отвечают сложные модели. Например одна из сложнейших и важнейших ее подсистем “модель температуры выпускных газов”. Именно она отвечает за механизмы ограничения мощности и дает опорные значения в механизмы обогащения состава для защиты компонентов. И эта модель в современных ЭБУ чрезвычайно сложна – она производит больше вычислений и имеет больше калибровочных данных, чем например весь мотек м800 во всех своих алгоритмах в принципе. Ее описание занимает 82 страницы мелкого текста. Сама она написана не людьми — исходный текст функции транслирован с ASCETа. Но это не значит, что все ее алгоритмы заданны прямыми физическими константами и формулами из физики – там все еще огромное количество эвристики. Огромное количество сложно формализуемых подгонов под ответ, для производителя это не представляет каких то проблем, поскольку одни и те же люди годами занимаются только ей, и они знают в ней все – как таковые задачи формализации там не стоят. Это даже не инженеры и не программисты — это прикладники с глубоким знанием термодинамики

Ответы146210146218

26 фев, 10:37 344 1146210

>>1146205

Вычислительные мощности и сложность систем управления постоянно растут. Хотя и исходя из общей тормознутости процесса эволюции электронных компонентов для автомобильной промышленности они делают это очень медленно, существует точка, когда пространство знаний о системе необходимое для ее настройки, начинает превышать возможности одного человеческого индивидуума * на время его жизни. Т.е. если скажем раньше у вас была система с объемом кода 32кб и за 2 месяца вы могли порезать ее в лапшу, и при наличии нужных инструментов и знаний сделать из этой лапши вполне себе удобоваримое блюдо. То вам не хватит и года, чтоб сделать то же самое с системой где объем кода 1мб – а это не современная система. Это система 15-ти летней давности. Что уж говорить о современных. Я пока вот не написал тут и 2-х страниц текста – а описание современной системы управления — 20 тысяч таких страниц. Мы давно уже пришли к тому, что современная система управления принципиально непознаваема в целом на уровне одного человека. Т.е. в мире просто нет ни одного человека, способного реализовать конечную задачу настройки такой системы в целом – это способен делать только лишь коллектив из специалистов, причем каждый должен быть специалистом именно в своей области и решать задачу настройки только для своей части вверенных ему алгоритмов.

Ответы146218

26 фев, 10:48 345 1146218

>>1146205
>>1146210
Алё, они там реверсят бинарники прошивок чтобы накручивать движки как захочется. Причём здесь обычная разработка софта из исходников? Неужели система впрыска бензина это блеать 20к страниц текста? Мне кажется производители довыёбываются, и в ход пойдёт какой-нибудь опенсорцный контроллер с открытыми исходниками. Единственное что сейчас этому препятствует это большое разнообразие моделей авто.

Ответы146226146235

26 фев, 11:00 346 1146226

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

О, тут вот как раз Maxi подобных кодерков разъебывает:

https://rusefi.com/forum/viewtopic.php?f=8&t=1012&start=30

Ответы146230

26 фев, 11:08 347 1146230

>>1146226
Чёт там неясно ещё кто кого разъёбывает. Обычный жир и разговор слепого с глухим.

Ответы146232146235

26 фев, 11:13 348 1146232

>>1146230

У кого пердак горит, того и разъебывают.

26 фев, 11:20 349 1146235

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

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

>>1146230
Ну макси, конечно, тот еще жирный тролль, который промышляет быдлосборочками на январь 5 из пизженых исходников серийных прошивок, но тут он прав - кодерки без соответствующей теоретической базы по собственным представлениям и максимум - даташитам изобретают уже десятый по счету велосипед 80-х годов, когда весь мир уже в 21 веке.

Ответы146237

26 фев, 11:26 350 1146237

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

Ответы146244

26 фев, 11:39 351 1146244

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

В том то и дело, что нихуя у них толком не работает нормально:

https://rusefi.com/forum/viewforum.php?f=15

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

https://github.com/rusefi/rusefi/tree/master/firmware/controllers/trigger/decoders

А детонацию они и вовсе не осилили, даже применив специализированную микросхему.

Да и сам код в принципе тоже охуенен - си с примесью плюсов в стиле си-с-классами, макролапша везде, зато гордо заявляют что не используют периферию микроконтроллера и с гордостью хуярят оверхеднутый код на програмных прерываниях и счетчике в цикле программы поверх ChibiOS. из-за чего у них в проекте ебический микроконтроллер STM32F469, который не реализует и доли функционала восьмибитного c509 из январей, у которого и периферия, и производительность в разы меньше.

Ответы146246

26 фев, 11:50 352 1146246

>>1146244
>Я не очень в курсе, но разве не работают у кодерков эти самые велосипеды в точности как они хотят?

А, ты про тюхнеров серийных блоков с модельным принципом - нет, нихуя у них не работает - максимум на что хватает им мозгов - это сбросить параметры самообучения и зашить начальные карты (и то, это для отностительно старых мозгов, где еще присутсвовали начальные калибровки по-калькуляторному), после чего лох, отваливший им деньги пол дня наваливает, после чего прошивка свои калибровки восстанавливает и его тачка снова превращается в овощ, а если он её еще и затюнил - впуск/выпуск/турбина, то она вообще встает на прикол, потому что мозг от таких раскладов охуевает и отказывается крутить мотор, высветив чек. Туо потому что в ней нет таблиц калибровок, а НЕХ, в виде сотен выведенных матмоделей, пид-регуляторов и прочих нечетких логик, которые даже не людьми писались, а генерились машиной на основании данных от инженегров, проектировавших конретный двигатель и конкретный код затем еще и автоматически оптимизировался и дописывался машиной при доводке образца двигателя на диностенде. Ну типа как нейросеть обучают, только на выходе - код.

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

26 фев, 11:55 353 1146249

Чем он лучше плюсов?

Ответы146252146601

26 фев, 11:58 354 1146252

>>1146249 → >>1146026

Ответы146601

26 фев, 21:30 355 1146601

>>1146249
>>1146252
>Чем он лучше плюсов?
Способствует зарождение стендапа в ИТ.

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

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

Это, имхо, уровень какого-то javascript (у меня не бомбит, не пофиг на С++, но просто где С++ а где раст, зачем они настраивают огромное комьюнити С++ против себя же?)

Ответы146664

76 Кб, 600x600
27 фев, 00:28 356 1146664

>>1146601
>у меня не бомбит

27 фев, 02:05 357 1146689

>>1064865
>А сейчас, так вообще, шутка-ли. У знакомой на работе, один коллега раньше педиатром работал, другой - шахтером.
Экономика сейчас такая что шахтеры и педиатры нахуй никому ненужны, хочешь выжить умей крутится.

27 фев, 02:08 358 1146691

>>1070417
>Избежать ошибок можно только одним способом - не быть криворуким дауном.
Чтобы избежать ошибок нужен идеальный образец, а где ты его найдешь? Чтобы сделать скульптуру бабы тебе нужна баба которая будет позировать, без нее будет НЕХ.

27 фев, 02:11 359 1146693

>>1062380 (OP)
>Тред убийцы c++.
А ну ка скинте тесты скорости сортировки и поиска на с++ и расте?

Ответы146773

27 фев, 10:16 360 1146773

>>1146693
http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=rust&lang2=gpp

Ответы147407150530

27 фев, 18:04 361 1147009

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

Ответы147328

27 фев, 18:24 362 1147026

>>1083506
Связь в позиционировании как убийцы си.

28 фев, 04:29 363 1147328

>>1147009
Платов даст $250/мес.

28 фев, 09:09 364 1147357

Из языков знаю только русский, этого достаточно чтобы задрочить rust?

Ответы147369

28 фев, 09:53 365 1147369

>>1147357
Нет. Надо английский.

28 фев, 11:53 366 1147407

>>1146773
Это не сортировка и не поиск и половине тестов он проигрывает, да и еще больше памяти потребляет. Убийца, мда...

Ответы147410

28 Кб, 677x276
28 фев, 12:12 367 1147410

>>1147407
Если тебе нужно рационализировать почему тебе не нужен раст и почему C++ лучше/быстрее/надёжнее, то можешь просто вспомнить, что в России работы на расте не будет ближайшие N лет.

Ответы147411

28 фев, 12:19 368 1147411

>>1147410
Начнем с того, что это пиздеж. Работа уже есть.
Плюс, тебе никто не запрещает продвигать использование раста внутри компании. Другой вопрос, если ты безыдейное чмо. Тогда жри что дают и не выебывайся.

Ответы147415

28 фев, 12:26 369 1147415

>>1147411
А что если я не хочу пилить блядские НаёбаКойны, вот просто из принципа?

Ответы147422

28 фев, 12:26 370 1147416

Растики-пидорастики думают, что ихнее никомуненужно когда-то взлетит.
Топ кек!

Ответы147418

140 Кб, 1920x1080
28 фев, 12:29 371 1147418

>>1147416
У тебя пикча отклеилась.

28 фев, 12:34 372 1147422

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

Ответы147427

28 фев, 12:38 373 1147423

Сначала Борщ, теперь ПидоРаст.
Что же будет следующим хитом у сыночков-корзиночек?

Ответы147426

28 фев, 12:46 374 1147426

>>1147423
То, что решает задачу лучше старого инструмента.
Надеюсь ты ездишь на Ваз 2101, пользуешься холодильником "Зил" и ходишь в ватнике. Ведь будет непоследовательно пользоваться по жизни более совершенными вещами, оставаясь замшелым старпероуебком.

Ответы147430147479

28 фев, 12:46 375 1147427

>>1147422
>пиздеж. Работа уже есть
>становись начальником и впихивай
>пользуйся в личных целях
>Через пару лет вакансий
Ты определись сначала со своей точкой зрения.

Ответы147428

28 фев, 12:48 376 1147428

>>1147427
Я со своей определился. Работа есть.
Человек сказал что
> А что если я не хочу пилить блядские НаёбаКойны, вот просто из принципа?
Раз человек хочет остаться в рашке, но при этом не заниматься наебакойнами, вариантов не так и много.

28 фев, 12:50 377 1147430

>>1147426
Но ведь Раст не решает. Его обещали как идентичную по производительности замену, а этого не произошло.

Ответы147431147432

120 Кб, 909x935
28 фев, 12:51 378 1147431

>>1147430
Кто обещал? Где ты видишь про "идентичную производительность"?

Ответы147432

28 фев, 12:54 379 1147432

>>1147431
>runs blazingly fast

>>1147430
Чем производительность не идентична? Те же машинные типы с теми же граблями.

Ответы147434

28 фев, 12:56 380 1147434

>>1147432
"Работает охуенно быстро" != "производительность идентичная $хyuta"
При условии возраста компилятора производительность вполне неплохая и будет становится только лучше.

Лично для меня главные фичи расте это безопасность и выразительность.

28 фев, 14:50 381 1147479

>>1147426
>То, что решает задачу лучше старого инструмента.
>Надеюсь ты ездишь на Ваз 2101, пользуешься холодильником "Зил" и ходишь в ватнике. Ведь будет непоследовательно пользоваться по жизни более совершенными вещами, оставаясь замшелым старпероуебком.

Если проводить аналогию, вместо ваза тебе предлагают бээмвэ с кожаными креслами, но мотором от скутера в 100 кубиков, который жрет по 1000 литров бензина на 100км, а на вопрос "а чо не едет-то?" начинают втирать, что скорость нинужна, динамика нинужна, у нас экология и вообще - у всех приличных людей маршруты до магазина и от дома рядом с работой, а на лишний бензин у всех деньги есть.

Но в плане автомобилей в реальности сложилось все иначе - автомобили стали быстрее, комфортнее, и экономичнее (с ресурсом только вот шляпа в 2000х пошла).

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

Ответы147486147487

28 фев, 15:04 382 1147486

>>1147479
В 80-90х само разнообразие программ, аппаратные возможности, возможности ОС, внешний вид, дизайн, юзабилити — всё это было крайне скудным. Всё разрабатывалось под железо, как ты любишь, большинство этого софта не дожило до сегодняшнего дня, так как оно всё негибкое, его проще сделать заново чем приспособить под новые реалии, в нём нет ни апи, ни скриптинга, ничего, тупо exe и фиксированный гуй.

Никакие школьники софт серьёзнее бота в телеграм или простой игры никогда не разрабатывали и не будут.

28 фев, 15:04 383 1147487

>>1147479
Какое-то убогое старперское мышление, с отрицанием очевидных фактов.
Просто открой любой сайт из 2000ых и любой современный сайт. Чуешь разницу? Или сравни турбо-дельфи и современных монстров из мира иде.

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

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

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

Ответы147512

28 фев, 15:29 384 1147508

>Просто открой любой сайт из 2000ых и любой современный сайт.

Весит 100500 гб, тормозит на пекарнях 3-4 летней давности, куча аякса и свистелкоперделок, иформации - столько же.

> Или сравни турбо-дельфи и современных монстров из мира иде.

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

> Скорость выполнения всего лишь один из факторов. При чем для подавляющего большинства разрабатываемого софта этот фактор идет в конце списка.

Оно и видно.

> Стоимость и скорость разработки чаще важнее.

И на выходе тормознутое говно и "64 гб corei5 хватит для запуска хеллоуворлда, а 128гб+corei7 - для запуска простого калькулятора - для инженерного нужен уже core i9 в разгоне или сервак с последними зионами".

> Надежность полученного решения тоже часто важнее скорости.

Угу, падение по причине Out-Of-Memory сюда же. Куча уязвимостей в скриптопараше - туда же. Вечный статус "бета" у большинства скриптопитушиных тулзов и постоянное ломание API и стандарта языка (привет, педон) - туда же.

Ответы147513

28 фев, 15:33 385 1147512

>>1147487
>Обычно, скорость реально важна в одном небольшом участке.

Обычно - тормоза складываются из синергии - там небольшой просос на абстракциях - тут гарбадж коллектор тупанул, там код криво отджитился, зддесь компилятор тупанул и все - пизда, калькулятор обычный с требованиями "i5+64GB ram".

Ответы147514

28 фев, 15:33 386 1147513

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

Ответы147522

28 фев, 15:34 387 1147514

>>1147512
То же самое относится к сям. Тут маллок затупил, здесь на отъебись сделали лишь бы работало. Ой сегфолт. Извините.

28 фев, 15:39 388 1147522

>>1147513
>Ну дык реалии таковы, что в конкурентной борьбе побеждает быстрейший

Пока что в конкурентной борьбе победила посредственность и глобальное понижения качества как программистов так и конечного продукта.

> кто дрочил на сях, как деды

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

Ответы147528147529

28 фев, 15:52 389 1147528

>>1147522
У тебя какие-то комплексы. Любая индустрия проходит через этап когда в ней ебется только "илитка", а потом приходят казуалы. Вот только нормальные люди не рефлексируют на тему.

Люди как раз и придумывают альтернативы дедовским методам.

Ответы147534

28 фев, 15:53 390 1147529

>>1147522
Если почитать /hw/, то в общем-то диды уже своё дело сделали по большому счёту. Там если убрать бонусы от новых техпроцессов ускорение самой архитектуры с каждым поколением порядка 5%. И такое продолжается уже почти 10 лет.

Алсо, взять питон, руби, там например не могут отрезать GIL по 20 лет. Ваши хвалёные диды.

Я видел как перезапиливают большой проект на плюсах. Дидовский код тысячами строк сносится как неактуальный/устаревший/ненужный. Новые плюсы это уже по сути другой язык и писать на нём нужно совершенно иначе. Алсо, дидов в проекте не было, сплошной молодняк, очень толковые ребята с охуенным знанием modern c++. И вот кстати раст они очень котируют. Один из них даже контрибьютит и в раст, и в llvm.

Короче я вот что скажу. Пиздёж это всё что раньше ничего не тормозило. Что диды такие охуенно незаменимые и что все отупели. То что вы там где-то установили IDE с тысячей плагинов от тысячи разных людей — это всё исключительно ваши проблемы.

28 фев, 16:02 391 1147534

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

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

> Люди как раз и придумывают альтернативы дедовским методам.

Придумывали - средства разработки 90х соревновались друг с другом дабы убрать ручной пердолинг, при этом все работало быстро. В 2000х заменили на петушение конфигов и написание кода руками в емаксе, конфигурацию проекта через командную строку ключами, как раз как у дидов из 70х-80х.

Ответы147541

28 фев, 16:07 392 1147541

>>1147534
Не на том уровне абстракции думаешь.
"Илитка" владеет толпой казуалов.

Ну почему рынок иде для рисования кода провалился, есть мысли?

Ответы147550

28 фев, 16:21 393 1147550

>>1147541

>Ну почему рынок иде для рисования кода провалился, есть мысли?

Потому что в моду вошли те самые "дидовские технологии" из юникса 70х, причем в плохом смысле этого слова. Под лозунгом "жму швабодка консоль зато бисплатна".

И хипстопетушня это успшно схавала, теперь, как и диды времен доса, приписывает пути, пердолит консольку и думает "ну я то быстрее дидов из 90х теперь код пишу".

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

Ответы147553147568147598

28 фев, 16:29 394 1147553

>>1147550
Ты упускаешь один момент. Чтобы что-то собрать теперь не нужна IDE (лично мне такое охуенно пригождалось много раз, и ни разу импортирование в IDE не проходило как надо, зато из консольки собиралось на раз-два). И сборку теперь часто делает облако, куда в принципе IDE не накатишь.

Программирование в блокнотах это фича. Программирование вообще не должно содержать в себе машинную работу. Меньше кода — правильнее сделан ЯП. Кодогенерация это тот ещё пердолинг.

28 фев, 16:50 395 1147568

>>1147550
Хуйня какая-то. Я бы с удовольствием перекатился на инструмент, который решает за меня ебаные задачи. Но таких инструментов тупо нет. Может только блюпринты в игровых движках.

sage 28 фев, 18:07 396 1147598

>>1147550
>ы же програмимируете в блокнотах, пишите дополнительно к коду кучу конфигов и билдскриптов
Какие-то маняпроекции. Если ты пишешь в блокноте - то это твои личные проблемы. Сабж-то тут при чем?

Ответы147609

28 фев, 18:28 397 1147609

>>1147598
Вообще звучит как школьник, который не может осилить сосноль.

Ответы147625

28 фев, 18:53 398 1147625

>>1147609
Только шизик в го-треде затих - как вот это тут вылезло. Кошмар.

Ответы147809

188 Кб, 1048x796
1 мар, 03:35 399 1147809

>>1147625
Только ты у нас умница, носишься по тредам со своим детектором, ловя какого-то выдуманного шизика (когда на самом деле шизик это ты).

Что по расту - печаль. Печаль когда язык, созданный побеждать С++, по производительности и потреблению ресурсов "не хуже" чем С++.
Понятно, что производительность это вообще главная фича С/С++ иначе все давно писали бы на джавах или питонах. Но мне просто интересно, что там в расте так жрет и тормозит? Просто, я к чему, если окунуться в раст, то везде слышно про нулевую стоимость и всякие вундер-слова, но на деле все не так. Помню, самое забавное, когда раст за-релизили, на том сайте (с говно тестами) он был на уроне java (чуть быстрее), а ОЗУ жрал почти на ровне. Я, конечно понимаю, те бенчмарки это то еще подкрученное чудо , но выглядело забавно.

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

Ответы147814147855147904147908150530

1 мар, 03:56 400 1147814

>>1147809
>Только ты у нас умница, носишься по тредам со своим детектором, ловя какого-то выдуманного шизика
Чего блядь?

Высер твой не читал, разумеется.

Ответы147822147855

1 мар, 05:17 401 1147822

>>1147814
>Чего блядь?
(когда на самом деле шизик это ты)

Ответы147855

1 мар, 09:06 402 1147855

>>1147809
>>1147814
>>1147822
Шизик, угомонись

1 мар, 11:57 403 1147904

>>1147809
http://c-faq.com/decl/spiral.anderson.html
Почитай, например, "Дизайн и эволюция С++" где сам Страуструп говорит от том, что он бы и сделал по человечески (как в паскале), но без совместимости с си нихуя не взлетело бы.

Ответы148432

1 мар, 12:05 404 1147908

>>1147809
"Раст не хуже C++" потому что сравнивается g++ и llvm. Если сравнивать clang и rust, то будет паритет.

2 мар, 12:34 405 1148432

>>1147904
Но ведь C++ не совместим с C.

Ответы148459

2 мар, 13:25 406 1148459

>>1148432
В то время корректная си программа == с++ программа.

Ответы149967

4 мар, 22:17 407 1149667

Народ, поясните, как сделать safe обертку над c_void? Все, что находил - про указатели на функции. Вот пример - fn glBufferData(target: GLenum, size: GLsizeiptr, data: const GLvoid, usage: GLenum). Что вместо data передавать в обертке?

4 мар, 22:20 408 1149668

И вообще, что за хуйня тут у вас с постингом? Я с Вьетнама, не могу ничего писать, приходится через прокси заходить? При этом именно с рашкованского?

4 мар, 22:22 409 1149671

Блять, еще и указатель(звездочка) пропадает!

4 мар, 22:35 410 1149682

Наверное не так выразился - как передать что-то, либо null pointer? Понимаю, что надо как-то юзать Option, но как? За Растом третий день, нравится, сука)))

Ответы149799

5 мар, 07:04 411 1149799

>>1149682
А расте принципиально нет null пойнтеров. Я уже плохо помню опенгл, там точно есть случай как в data нужно null передать? Тогда или option, или отдельную функцию сделать, без параметра data.

Ответы149824149827

5 мар, 08:46 412 1149824

>>1149799
>там точно есть случай как в data нужно null передать?

Там такое на каждом шагу. Там еще есть эпичный

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glVertexAttribPointer.xhtml

Ну и да, вот почему никто не умеет гуглить?

https://stackoverflow.com/questions/24191249/working-with-c-void-in-an-ffi

Ответы149826149833

5 мар, 09:03 413 1149826

>>1149824

> pointer

> Specifies a offset of the first component of the first generic vertex attribute in the array

> glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 ✶ sizeof(float), (void✶)0);

Бля, я даже сначала не поверил.

Ответы149831

5 мар, 09:10 414 1149827

>>1149799
Null пойнтеры есть: https://doc.rust-lang.org/1.22.1/std/ptr/fn.null.html

Ответы149838

5 мар, 09:15 415 1149831

>>1149826
>Бля, я даже сначала не поверил.

А чего, решили просто не изобретать велосипед, в старом опенгл (который под видюхи первого поколения, которые еще даже без t&L были и где геометрия софтово считалась) была уже функция с подходящими параметрами, вот и изменили смысл одного параметра - теперь это не пойнтер на реальные вершины в RAM, а оффсет в BufferObject(который теперь и в VRAM может быть).

5 мар, 09:17 416 1149833

>>1149824
Спасибо за попытку помочь, но это немного не то. Хочется сырые указатели спрятать в обертку, а передавать что-то типа Option. Сделал пока так, но это же оверхед:

pub fn shader_source(shader: GLuint, count: GLsizei, string: &str, length: Option<&[GLint]>) {
unsafe {
glShaderSource(shader, count, &CString::new(string).unwrap().as_ptr(),
if let Some(v) = length { v.as_ptr() } else { ptr::null() })
}
}

Просто C функции callback принимают в Option, и None воспринимаются как null. Не могу сообразить, можно ли и как сделать это с другими типами.

5 мар, 09:27 417 1149838

>>1149827
Только разыменовывать их можно только в unsafe коде.

Ответы149840

5 мар, 09:37 418 1149840

>>1149838
Это понятно, но unsafe можно спрятать в обертку, в которую передавать ссылку на что-то. Но что делать, когда это "что-то" может быть null?

Например, ссылки на callback функции передаются так:

fn glfwSetKeyCallback(window: *const GLFWwindow, cbfun: Option<GLFWkeyfun>) -> Option<GLFWkeyfun>;

Если поставить вместо Option<GLFWkeyfun> None - передастся null, и преобразовывать ничего не нужно.

5 мар, 09:54 419 1149844

Кажется придумал:

fn glShaderSource(shader: GLuint, count: GLsizei, string: const const GLchar, length: Option<&c_void>);

- вроде как работает! Или какие-то косяки есть и можно лучше?

5 мар, 09:58 420 1149845

Обертка теперь так выглядит:

pub fn shader_source(shader: GLuint, count: GLsizei, string: &str, length: Option<&c_void>) {
unsafe {
glShaderSource(shader, count, &CString::new(string).unwrap().as_ptr(), length)
}
}

5 мар, 10:02 421 1149846

Только как теперь, млять, ему безопасно массив длин в Some передать? Что-то не то все равно.

5 мар, 10:16 422 1149848

Млять, там же еще и двойной указатель на GLchar! Значит надо массив str еще как-то преобразовывать в массив CString, а потом в указатель!

Ответы149849

5 мар, 10:21 423 1149849

>>1149848
> Млять, там же еще и двойной указатель на GLchar! Значит надо массив str еще как-то преобразовывать в массив CString, а потом в указатель!

https://github.com/gfx-rs/gfx/blob/b7d88cadc890474d161940ac8f78c1dfbe33b65b/src/backend/gl/src/info.rs#L115

Ответы149851

5 мар, 10:23 424 1149851

>>1149849

let extensions = if version >= Version::new(3, 0, None, "") {
let num_exts = get_usize(gl, gl::NUM_EXTENSIONS) as gl::types::GLuint;
(0..num_exts)
.map(|i| unsafe { c_str_as_static_str(gl.GetStringi(gl::EXTENSIONS, i) as ✶const i8) })
.collect()

Ответы149855

5 мар, 10:36 425 1149855

>>1149851
Не, это наоборот.

Уже нашел тут: https://github.com/servo/rust-opengles/blob/master/src/gl2.rs

pub fn shader_source(shader: GLuint, strings: &[&[u8]]) {
let pointers: Vec<const u8> = strings.iter().map(|string| (string).as_ptr()).collect();
let lengths: Vec<GLint> = strings.iter().map(|string| string.len() as GLint).collect();
unsafe {
glShaderSource(shader, pointers.len() as GLsizei,
pointers.as_ptr() as const const GLchar, lengths.as_ptr());
}
drop(lengths);
drop(pointers);
}

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

Ответы149856149860

5 мар, 10:42 426 1149856

>>1149855
>хочется сделать обертку один в один, но безопасную.
>OpenGL
>State-Based API
>Еще и асинхронное
>У которого вызов GAPI != выполнение действия

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

Ответы149857149860

5 мар, 10:44 427 1149857

>>1149856
Безопасную в растовом смысле. Типа если что полетит, то точно в unsafe.

Ответы149864149868

5 мар, 10:44 428 1149858

Возьми уже https://github.com/gfx-rs/gfx и не еби никому мозг.

Ответы149863149866

5 мар, 10:45 429 1149860

>>1149856
> >>1149855
>>хочется сделать обертку один в один, но безопасную.
>>OpenGL
>>State-Based API
>>Еще и асинхронное
>>У которого вызов GAPI != выполнение действия
>Причем еще и молчит об ошибках до последнего

5 мар, 10:49 430 1149863

>>1149858
Я же написал, что FFI изучаю. Ежу понятно, что проще и лучше взять готовое. Но что если мне понадобится функция из либы, для которой нет растовых оберток?

5 мар, 10:51 431 1149864

>>1149857
>Безопасную в растовом смысле. Типа если что полетит, то точно в unsafe.

Но весь прикол в том, что о том что что то полетит ты не узнаешь пока не дернешь glGetError. Причем GAPI по своей сути устроено так что нужно совершать определенный магический порядок действий и это само по себе делает его ну вообще нихуя не безопасным. Прикола добавляет то, что еще и каждый вендор по-разному считает правильным порядок действий. В реальных гл рендерах такое обилие костылей и подпорок из серии (анализируем код вендора, ага вот тут мы кор-фичу не используем она забагованная, зато берем ровно ту же ARB(EXT) потому что она на этой конкретной видюхе робит нормуль), что забудь просто свои маняфантазии о безопасном в растовом смысле. Опенгл - это худший пистолет для выстрелов в ногу с которым когда либо кому-либо приходилось работать.

Ответы149867

5 мар, 10:54 432 1149866

>>1149858

КроссAPI рендер они запилили, а КроссShaderLanguage - хуй, еби атрибуты с юниформами сам. Хоть бы трупак Nvidia CG реанимировали, чтоле.

5 мар, 10:57 433 1149867

>>1149864
Да знаю я эти "фичи" GL, на крестах намаялся с ним. Просто хочу понять, как это правильно сделать в Расте. GL только как подопытный кролик, выбран именно потому, что там указатель на указателе, отлов всяких ошибок и т.д. Чтобы лучше понять растовые сырые указатели, короче.

Ответы149869

5 мар, 10:57 434 1149868

>>1149857
>Безопасную в растовом смысле. Типа если что полетит, то точно в unsafe.

Алсо, с тем же успехом можешь glFnish() на каждый вызов любой функции OpenGL дергать, на экране будет ~3-4fps, но иначе никакой безопасности ты не получишь.

5 мар, 10:58 435 1149869

>>1149867
>Да знаю я эти "фичи" GL, на крестах намаялся с ним. Просто хочу понять, как это правильно сделать в Расте. GL только как подопытный кролик, выбран именно потому, что там указатель на указателе, отлов всяких ошибок и т.д. Чтобы лучше понять растовые сырые указатели, короче.

В GL в основном не указатели, а БИНДЫ, АЙДИ И БЛЯДСКИЕ МОЛЧАЛИВЫЕ ОШИБКИ.

Ответы149870

5 мар, 11:04 436 1149870

>>1149869
Один хрен для Линукса лучше ничего не придумали. Вулкан еще сыроват, как мне кажется, да и адовый он какой-то. А указатели там таки есть, вон в glShaderSource аж двойной на GLchar и указатель на GLvoid

Ответы149879

5 мар, 11:12 437 1149879

>>1149870

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

Ответы149883

5 мар, 11:22 438 1149883

>>1149879
Это технические вопросы, книжек по ним куча написано и к теме не относится. Вопрос был как передать(абстрагируемся уже от GL) параметры в такую функцию: void func(char ✶✶x, void ✶y), где "y" может быть null, а может и не быть, в Расте, чтобы сырые указатели наружу не торчали?

Ответы149884149887

5 мар, 11:27 439 1149884

>>1149883
Короче, как для нее такую обертку сделать - fn func(x: тип1, y: тип2) {
unsafe { func(преобразование x в двойной пойнтер на char, преобразование y в пойнтер на void или null) }
}

Ответы149889

5 мар, 11:28 440 1149887

>>1149883

Как раз указатели - это именно что технические вопросы, а стайт-бейсед параша и асинхронность - овпросы концептуальные.

5 мар, 11:29 441 1149889

>>1149884

https://doc.rust-lang.org/std/option/

Ответы149899

5 мар, 11:48 442 1149899

>>1149889
Я сделал Option<&c_void>, т.к. это больше всего похоже на void ✶. None передается как null. Но теперь непонятно, как в Some засунуть вектор/срез/массив. Box пихать оверхед ведь? Короче, так понимаю, без сырых указателей в интерфейсе не обойтись?

Ответы149907

5 мар, 11:50 443 1149901

А вот где ты однозначно соснешь комбинаторным взрывом, попытавшись сделать БИЗАПАСНО, так это

void glBufferData(GLenum target,
GLsizeiptr size,
const GLvoid ✶ data,
GLenum usage);

Потому что количество типов данных, помещаемых в ✶data мало того, что дохуя велико, так еще и непосредственно сами типы данных, которые кастуются опенглом из этого буфера задается уже другой функции:

void glVertexAttribPointer( GLuint index,
GLint size,
GLenum type,
GLboolean normalized,
GLsizei stride,
const GLvoid ✶ pointer);

Ответы149907149908

5 мар, 11:54 444 1149907

>>1149899
>Короче, так понимаю, без сырых указателей в интерфейсе не обойтись?

Как видишь. >>1149901 Что касается вершинных аттрибутов, то тут и с DX и с опенглом и с вулканом ты все равно соснешь.

5 мар, 11:56 445 1149908

>>1149901
Как раз только что эту функцию и нашел))) Она, кажись, дает ответ на мой вопрос:

pub fn buffer_data<T>(target: GLenum, data: &[T], usage: GLenum) {
unsafe {
glBufferData(target,
(data.len() ✶ mem::size_of::<T>()) as GLsizeiptr,
data.as_ptr() as ✶const GLvoid,
usage);
}
}

Ответы149910

5 мар, 11:58 446 1149910

>>1149908
Понятно, конечно, что она копии будет делать для каждого типа, но можно ведь заинлайнить.

Ответы149914

5 мар, 12:11 447 1149914

>>1149910

там автор в коментарии сверху пометку зделал, что небезопасно, фиксми.

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

Ответы149918149924

5 мар, 12:15 448 1149918

>>1149914

Кстати, автор цитируемого биндинга таки соснул с glVertexAttribPointer, у него там неполная реализация.

Ответы149930

5 мар, 12:29 449 1149924

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

Ответы149928

5 мар, 12:35 450 1149928

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

ну так о том и речь, что безопасные биндинги чтобы API 1к1 сделать не получится, придется писать свои движок рендера/фреймворк и.т.д

На выходе получится что то вроде такого, то бишь уже некий фрейморк-недодвижок:

https://github.com/glium/glium

Ответы149933149938

5 мар, 12:42 451 1149930

>>1149918
Я что-то не вижу причин, почему не написать такую же обобщенную vertex_attrib_pointer
Он, походу, пытался сделать, чтобы в функцию константу неправильную не передали, я так понимаю?

Ответы149937

5 мар, 12:49 452 1149933

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

Ответы149940

5 мар, 12:53 453 1149937

>>1149930
>Я что-то не вижу причин, почему не написать такую же обобщенную vertex_attrib_pointer

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

"По-новому" - когда в пойнтер передается число, означающее оффсет для прибинженого буфера.

2) Придется вводить в библиотеку новые типы данных и отвечать за их корректность и безопасность:

> glVertexAttribPointer and glVertexAttribIPointer both take: GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT
> glVertexAttribPointer also can take: GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV, and GL_UNSIGNED_INT_10F_11F_11F_REV.

При этом не сломав пользователю возможность использования собственных уютных типов данных.

3) Array of Struct.

5 мар, 12:55 454 1149938

>>1149928
И таки функция fn(x: &T) все же безопаснее fn(x: *const T), если она не должна принимать null.

5 мар, 12:59 455 1149940

>>1149933

Так по факту он не следит ни за владением ни за валидностью, потому что на связке glBufferData/glVertexAttribPointer вся эта валидность превращается в тыкву. И не разные буфера, а один и тот же, просто заливать я его буду как f32, а вершинный аттрибут настрою как GL_UNSIGNED_INT_10F_11F_11F_REV, потому что в опенгле эти понятия какбы разделены - буфер - этоо просто нетипизированное хранилище байтов с флагами использования, а его интерпретация в типах данных начинается в glVertexAttribPointer (и других функциях, если речь про текстуры и ssbo).

Ответы149942

5 мар, 13:02 456 1149942

>>1149940
Понял, про что ты, но немножко безопасности все равно получить можно - ты не сможешь залить null вместо массива данных буфера.

Ответы149944

5 мар, 13:07 457 1149944

>>1149942
>Понял, про что ты, но немножко безопасности все равно получить можно - ты не сможешь залить null вместо массива данных буфера.

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

Ответы149955149958

5 мар, 13:13 458 1149953

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

5 мар, 13:14 459 1149955

>>1149944
А пустой массив Раста не будет пустым буфером в GL?

Ответы149959

5 мар, 13:21 460 1149958

>>1149944
И вообще, зачем нужен пустой VBO? Может и туплю, но как-то не приходилось иметь дело с таким.

Ответы149961

5 мар, 13:24 461 1149959

>>1149955
>А пустой массив Раста не будет пустым буфером в GL?

glBufferData - означает "Создай мне буфер такого то размера в байтах и с таким то типом использования. Если поинтер не нулл - то еще и данные по этому поинтеру побайтно туда скопируй, при повторном вызове - удали старый буфер и создай новый".
Для изменения данных в буфере служат уже glMapBuffer (вот тут, к слову, тоже интересно как на расте выкручиваться) и glBufferSubData.

https://www.khronos.org/opengl/wiki/Buffer_Object#Data_Specification

> По идее все эти данные уходят в опенгл напрямую из файлов.

Я хочу использовать, скажем, формат COLLADA или https://www.khronos.org/gltf/(они вообще текстовые, есличто), а твои байты в тыкву превратятся, если я их на платформу с другой endiannes перенесу.

> А значит апи можно сделать таким, чтобы оно принимало просто нетипизированный блоб.

и получишь тот же самый небезопасный поинтер.

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

То есть опять все сводится к "недодвижок поверх"

5 мар, 13:26 462 1149961

>>1149958
>И вообще, зачем нужен пустой VBO?

У меня есть система частиц, хочу на компуте шейдерах их пидорасить, например.

5 мар, 13:33 463 1149963

up

5 мар, 13:42 464 1149967

>>1148459
>В то время корректная си программа == с++ программа.
Нихуя.

Ответы150010

5 мар, 15:03 465 1150010

>>1149967
Что нихуя?

Ответы150026

5 мар, 15:45 466 1150026

>>1150010
int main() {
int class = 0;
return class;
}
Эта программа корректна в си, но некорректна в си++

Ответы150027

5 мар, 15:48 467 1150027

>>1150026
Ой, ладно, не доебывайся со своей хуйней.
Первый с++ компилятор вообще просто был набором макросов для си компилятора.

Ответы150042

5 мар, 16:00 468 1150042

>>1150027
Есть более интересные и неочевидные несовместимости, я лишь указал на самую очевидную.
>Первый с++ компилятор вообще просто был набором макросов для си компилятора.
Наглый пиздеж.

Ответы150044

5 мар, 16:01 469 1150044

>>1150042
По твоему он не генерил код для сишного компилятора?

Ответы150051

5 мар, 16:06 470 1150051

>>1150044
Генерил, но это не набор макросов, а полноценный транслятор в си.

Ответы150058

5 мар, 16:12 471 1150058

>>1150051
Оки. Лень думать было как правильно.

5 мар, 23:58 472 1150384

Слишком сырой чтобы хуярить в продакшн. Не платят.

Ответы150393

6 мар, 00:04 473 1150393

>>1150384
UPD
Субъективно, отмороженный стиль ключевых слов и операторов. Фн члн лет и64 пук.
Кстати как насчёт общего стайл гайда как в петоне?

Ответы150537

6 мар, 00:33 474 1150426

>>1146143
Хуита полная. Скидываю инсаидерскую инфу. Сеча в ЕБУ стоит автосар, да там много кодогенерации, но только чтобы писать задачками изолированными друг от друга, а в окошечках накидиывать и описывать связи. Работы дахуища, начиная от новомодных датчиков. лидаров, камер, систем автопилота и сапорта водител, инфотеймента. Потом в перспективе будем пилить инфроструктру для сапорта автопилота и машины. Типа маячок сообщает, когда ёмобилю заводить мотор на светофоре Работы очень дахуя. Раст - щенок, т.к. требует серьёзной стандартизации и перепиливания огромного пласта уже готовых тулов. Но для некритичной мистемщины и прикладной хуеты вполне-вполне. Подождём 20го стандарта, имхо плюсы быстрее допилят.

6 мар, 07:48 475 1150530

>>1147809
Но раст как раз на уровне C++ и да C по скорости. Вон >>1140014 даже топ 1 по http-фреймворкам стал.
Ну и конечно вот сравнение с плюсами >>1146773
Даже на синтетических тестах на одном уровне с крестами.

6 мар, 09:31 476 1150537

>>1150393
Есть книжка про стайлгайд, еще не дописанная. Есть rustfmt.
Мы хуярим в продакшн, и нам платят.

10 мар, 22:02 477 1153156

Пацаны чё делать? Нубас кароч, с чего начать учить: си или не терять время и сразу rust? Стоит ли учить си и программы на нем делать некоторое время перед тем как освоить rust? Может потребоваться с микроконтроллерами работать. Из языков знаю Питон. Инб4 уже учу CS, алгоритмы, архитектуру эвм, и другие важные темы.

Ответы153160153172

10 мар, 22:05 478 1153160

>>1153156
Не стоит. Сразу учи раст.

Ответы153200

10 мар, 22:26 479 1153172

>>1153156
Стоит. Сперва учи си.

Ответы153200

10 мар, 23:19 480 1153200

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

Ответы153330153593

11 мар, 07:03 481 1153330

>>1153200
Легче будет понять только unsafe Rust. А так, для понимания Rust куда более пригодны знания Haskell, нежели C.

Ответы153334153414153593

11 мар, 07:17 482 1153334

>>1153330
А, понятно, спасибо.

11 мар, 13:46 483 1153414

>>1153330
С микроконтроллерами на раст как обстоят дела?

11 мар, 16:12 484 1153593

>>1153200
>времени на изучение хочется сэкономить.
Ты ошибся разделом.

>Думаю зная си легче будет понять rust
Если ты не знаешь си, то тебе тут вообще нечего делать, скажем прямо.

>>1153330
>для понимания Rust куда более пригодны знания Haskell, нежели C.
Для понимания Rust знания х-ля если не бесполезны, то как минимум совершенно опциональны. А вот без стандартной базы этот ребенок просто потеряется. Об этом, кстати, написано в самом растбуке:
>These properties make Rust suitable for programmers who have experience in languages like C and are looking for a safer alternative <...>
>This book is written for a reader who already knows how to program in at least one programming language.

Ответы153623

11 мар, 16:30 485 1153610

Го дискас Rust vs C/C++?
Тезисно.
-Аргумент про безопасность понимаю, но судя по тому, что слышал, почти всё байтоёбство в расте делается в unsafe, где вся безопасность идёт на хуй. Да и зачастую байтоёбство как раз идёт в обход безопасности.
+Один пацык контрагументировал тем, что в C/C++ unsafe сплошной, тогда как в расте чётко выделен.

+В расте есть ФП и оно более человеческое чем в плюсах т.к. закладывалось изначально, а не прикручено через 25 лет.
-Но в то же время ООП в расте слабее, чем кривое оное в плюсах.

-Про вакансии на расте всё ясно и так.
+/-Высокий порог вхождения.

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

Ответы153611153648

11 мар, 16:33 486 1153611

>>1153610
Как тебе такой аргумент:

работа на расте = команда профи, которая не боится пробовать новое, а проект достаточно нов, чтобы ты смог превратить егов легаси.

работа на крестах = бородатое говно с птушниками, уровня "С++ за 21 день".

Ответы153617

11 мар, 16:45 487 1153617

>>1153611
>работа на расте = команда профи.
Если говорить именно о работе, то вероятность найти вакансию на расте +-нуль.тем более в рашке
Плюсы же постепенно сдают позиции и случайных людей там всё меньше. Судя по однокурсникам большинство собирается вкатывается либо в джаба тырпрайз, либо в веб клепать формочки.
Ну и ясен хуй я червепидор, который ещё не работал и выёбывается, куда без этого.

Ответы153621

11 мар, 16:49 488 1153621

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

Ответы153631

11 мар, 16:50 489 1153623

>>1153593
Спасибо, анон, теперь однозначно буду учить си.

11 мар, 17:01 490 1153631

>>1153621
Ок. Сам кем работаешь? Хотя бы стек/локацию?

Ответы153633

11 мар, 17:03 491 1153633

>>1153631
Съебываю в Осло, работать на расте, общелиспе и прочей хипстоте.

Ответы153637153643

11 мар, 17:09 492 1153637

>>1153633
Хуя ты модный. В какой сфере такой поехавший стек может пригодиться?

Ответы153639

11 мар, 17:13 493 1153639

>>1153637
Ты не поверишь, но банковская.

Ответы153649

118 Кб, 640x640
11 мар, 17:19 494 1153643

>>1153633
>общелисп
>хипстота
Пикрил.

Но вообще - рад за тебя, анончик, ты тут наверное самый успешный :3

11 мар, 17:22 495 1153648

>>1153610
>Но в то же время ООП в расте слабее, чем кривое оное в плюсах.

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

Ответы153654

11 мар, 17:22 496 1153649

>>1153639
Занятно. Банковская сфера это по идее ехала база данных по базе данных. Не проще купить оракле и забыть все проблемы? Что именно нужно разрабатывать на расте?

Ответы153650

11 мар, 17:24 497 1153650

>>1153649
Хер знает. Жду пока бумажки местное министерство гастарбайтеров оформит. Безопасники запрещают рассказывать всякое.

11 мар, 17:29 498 1153654

>>1153648
В курсе. Но я про дефолтное ООП говорил, которое de facto доминирующая парадигма, а не ваши новомодные трейты хуеты, владение и move семантику.

Ответы153656

11 мар, 17:35 499 1153656

>>1153654
>de facto доминирующая парадигма
Топовый аргументов почему ретроград сопротивляется применению нового. Причём я такое где только не слышал, даже при переходе с питона 2 на 3.

Ответы153722

11 мар, 18:23 500 1153722

>>1153656
Против всего старого, за всё новое.
Но большинство не лисповоды 500ка/нсек с эмиграцией в Норвегию, поэтому рассуждаю с позиции среднепрограмера который знает только ООП основанное на классах.

11 мар, 18:47 501 1153750

На сколько сложно мне будет, если я типикал джуниор-фронтенд-петушок? Цель: есть идея одного десктоп софта с некоторой частью на бэке.

Ответы153754

11 мар, 18:48 502 1153754

>>1153750
Будет очень сложно.

Че, пора тред перекатывать, да?

Ответы153762

11 мар, 18:54 503 1153762

>>1153754
Да, пора

Ответы153764

11 мар, 18:56 504 1153764

>>1153762
Шапку обновить или хуй с ней?

Ответы153768

11 мар, 18:58 505 1153768

>>1153764
Если тебе не влом, то почему и не обновить

Ответы153772

11 мар, 19:02 506 1153772

>>1153768
Да хуй знает че туда писать.
Предлагайте.

12 мар, 15:07 507 1154518

Перекат
>>1154517 (OP)
>>1154517 (OP)
>>1154517 (OP)
>>1154517 (OP)
>>1154517 (OP)
>>1154517 (OP)

Тред утонул или удален.
Это копия, сохраненная 25 апреля 2018 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion