Главная Настройка Mobile Контакты NSFW Каталог Пожертвования Купить пасскод Pics Adult Pics API Архив Реквест доски Каталог стикеров Реклама
Доски


[Ответить в тред] Ответить в тред

Check this out!


[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 531 | 34 | 190
Назад Вниз Каталог Обновить

Rust Аноним 19/03/17 Вск 14:48:50  956909  
rust-logo.png (23Кб, 209x208)
Язык, который существует уже не один год. Язык, который заинтересовал меня из-за скорости выполнения, кроссплатформа, безопасности и возможности делать вещи как в высокоуровневых языках (ООП, мощные макросы, даже не знаю, как сказать). И вот у меня к вам вопрос: как думаете, он сможет вытеснить жаву? Почему?
Также открываем здесь его обсуждение, с возможностью отвечать на ответы.
Dmitry 19/03/17 Вск 14:54:12  956912
>>956909 (OP)
Что можно сделать на расте чего нельзя на С?
Аноним 19/03/17 Вск 15:05:29  956915
Эмм, а с какого-такого он должен вытеснить Яву ?
Dmitry 19/03/17 Вск 15:06:53  956916
>>956915
А нахуй она нужна? Создавать яву было плохой идеейю
Аноним 19/03/17 Вск 15:13:16  956921
original.jpg (270Кб, 1024x768)
>>956916
Два чаю, надо было продвигать Smalltalk.
Аноним 19/03/17 Вск 15:22:17  956922
>>956916
Слишком толсто
Аноним 19/03/17 Вск 15:40:04  956931
>>956909 (OP)
D - пизже.
Аноним 19/03/17 Вск 15:40:33  956932
segfault.png (4Кб, 361x193)
>>956912
Писать без сегфолтов например
Аноним 19/03/17 Вск 15:43:48  956937
>>956915
Наверное, только потому, что мне идеология компиляции нравится больше, чем какая-то виртуальная машина, хоть она в конечном счете имеет нехилую оптимизацию. LLVM уже не мало так платформ покрыл. Еще, жава много памяти ест, если сравнить с аналогичной программой на C/C++/Rust/томуподобное
Аноним 19/03/17 Вск 15:51:45  956941
14788543652720.png (513Кб, 657x516)
>>956909 (OP)
>язык без наследования
>сможет ли вытеснить жаву
Аноним 19/03/17 Вск 15:57:42  956946
>>956941
А чем наследование на столько важно? Где например оно очень нужно?
Аноним 19/03/17 Вск 16:13:05  956954
>>956946
Везде кроме laba1.exe
Аноним 19/03/17 Вск 16:40:02  956962
>>956954
Посмотрите на этого эксперта сделавшего laba10.exe
В реальности от наследования больше проблем чем пользы.
Аноним 19/03/17 Вск 16:49:23  956967
>>956916
Слишком много заебств в расте с видами указателей и механизмом владения. На джаве писать намного проще и как следствие намного легче найти людей, которые её знают. Там где используется джава производительность всех устраивает и получаем, что раст нахуй там не нужен. Проблемы создает, а бонусы преподносит слишком маленькие. Нет, я очень рад этому языку. Наконец-то появилась альтернатива мерзким плюсам, но вот только с ними он и может конкурировать. Более высокоуровневые языки он не потеснит никогда.
Аноним 19/03/17 Вск 16:50:04  956969
>>956932
На Сишечке тоже можно писать без них
Аноним 19/03/17 Вск 17:09:33  956976
>>956969
В Си надо быть крайне внимательным, работая с памятью, указателями и т.п. Так и стараются. Тем не менее, человеческий фактор всегда допускал там ошибки. Здесь (в расте) ты либо будешь послан нахуй компилятором, либо при работе программы будет так называемая паника, которая убивает работающую программу или просто один из ее потоков
Аноним 19/03/17 Вск 17:13:20  956977
>>956962
В реальности люди комбинируют несколько подходов исходя из задачи.
Аноним 19/03/17 Вск 17:13:56  956978
>>956967
А если через пару годиков под раст будет множество либ под любые нужды? Примерно как сейчас в жаве... В конце концов, там свои фичи, тут свои и время изучения не сильно разное
Аноним 19/03/17 Вск 17:17:44  956982
1477212804-cb58[...].jpeg (28Кб, 500x369)
>>956978
>А если через пару годиков под раст будет множество либ под любые нужды?
Аноним 19/03/17 Вск 18:57:28  957014
bamp
Аноним 19/03/17 Вск 20:53:22  957064
>>956969
Многа букаф получится.
Аноним 19/03/17 Вск 21:08:10  957076
>>957064
Как будто в пидарасте от кривого кода программа нормально работать будет.
Аноним 19/03/17 Вск 21:10:06  957078
>>956946
ООП местячковый мем в снг.
Аноним 19/03/17 Вск 21:14:45  957085
Наследование - ничто, миксины - всё.
Аноним 19/03/17 Вск 21:19:31  957093
>>957076
Меньше кода - легче рефакторить.
Аноним 19/03/17 Вск 21:55:24  957112
>>956976
> либо при работе программы будет так называемая паника, которая убивает работающую программу или просто один из ее потоков
И чем это лучше сегфолта? Исключения хоть можно обрабатывать?
Аноним 19/03/17 Вск 22:45:05  957136
IMG4424.JPG (533Кб, 1600x1200)
На самом деле рыночку действительно нужен инструмент который позволит создавать кросплатформенные решения с низким оверхедом по производительности/памяти и без сборщика мусора, но на котором смогут писать миллионы лемингов за дёшево.

Что нового предлагает Rust, для решения этих проблем?
Сущесвтуют ли реальные тесты производительности, сравнения сложности разработки, etc?
Без этих метрик нет смысла что-то обсуждать?

Я уверен, что раст тоже найдёт свою нишу, но однозначно это будет на Ынтерпрайз или web бэкэнд. Возмно, системщина и узкопрофильная прикладуха,возможно ембед, но не ололо контроллеры, а линукс борды. Но для эмбеда нужна спрос и поддержка корпораций, что врядли
Аноним 19/03/17 Вск 22:47:44  957139
>>957136
>fix
>не ентерпрайз и не web back-end
Аноним 19/03/17 Вск 23:44:30  957174
>>957136
>Сущесвтуют ли реальные тесты производительности, сравнения сложности разработки, etc?
Реальные тесты производительности? Ну это уже по каждой конкретной задаче. Вот тут видим, что на бенчмарках( не отображают реальный мир), раст выигрывает c++ в 6/9 тестов
https://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=rust&lang2=gpp. Не забывай, что для раста не написано много ключевых оптимизаций, что есть у крестов, но вот растовская система типов позволит в будущем реализовать более агрессивные оптимизации, которые не возможны на c/c++, да и с каждым обновлением LLVM раст становится всё лучше.
>сравнения сложности разработки,
Таких точно нет, всё же на расте никто не пишет, лол. Позволю себе с дивана предположить, что раст в этом лучше т.к. большинство ошибок с++, которые приходится постоянно дебажить, находятся в расте на этапе компиляции. Возможно, если ты йоба-сеньйор с 20+ годами опыта плюсов, то ты не заметишь разницы в скорости разработки, но вот во всех остальных случаях, полагаю, раст сделает c/c++
Dmitry 20/03/17 Пнд 00:07:46  957194
>>957174
На расте операционную систему написали.
Аноним 20/03/17 Пнд 02:06:16  957257
>>956909 (OP)
>кроссплатформа
Компилятор не поддерживает Windows XP (хотя вроде может исполняться, но с какими-то ключами), хотя поддержка "Embedded Industry" (в ваших банкоматах и прочих) есть до 2019 года.

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

>вытеснить жаву? Почему?
Нет. Тут даже Го не смог. Джава это сформировавшиеся индустрия, ее даже засахаренные скала и котлины потеснить не могут, хотя те на jvm.
Аноним 20/03/17 Пнд 02:10:15  957260
>>956967
Помоему, они сделали язык сложнее чем С++
Аноним 20/03/17 Пнд 08:02:37  957308
>>956912
На С в теории можно все, не зря же в нее компилятся большинство скриптовых языков. Другое дело что создать что-то большее чем драйвер на одном только С врятли получится, а даже если и получится то поддерживать это будет пиздецово. А в расте главная фишка что он безопасен и он строг к синтаксису - т.е. у всех будет более менее одинаковый код и при том гарантированно безопасный, что поможет избежать обсеров как с OpenSSL, когда выяснилось что весь мир годами пользовался дырявым софтом.
Аноним 20/03/17 Пнд 08:14:31  957310
>>957260
Сложнее C++ в принципе сложно сделать. В язык накидали фич не для решения конкретных проблем, а выбрали их рандомно, что вылилось в плохой дизайн языка.
Аноним 20/03/17 Пнд 11:15:34  957357
>>956941
Там есть множественное наследование поведения — не реализации. То есть интерфейсов — не классов.
Аноним 20/03/17 Пнд 11:25:45  957363
>>957136
>Что нового предлагает Rust, для решения этих проблем?
Ну уж точно не "миллионы леммингов и дешево". Rust сложнее С++, там как раз фишка в том, что сложность разменивается на стабильность.
Аноним 20/03/17 Пнд 12:47:14  957444
>>956932
пример притянут за яйца. любой школьник знает, что эта строка лежит в read-only секции. да и компилятор будет ругаться на каст сonst char к char
короче иди нахуй. сажи треду
Аноним 20/03/17 Пнд 14:33:20  957501
>>957310
два чая
Аноним 20/03/17 Пнд 14:47:37  957510
>>957310
>а выбрали их рандомно
Не рандомно. Каждое решение там вполне осознанное и обдуманное. Другое дело, что их вообще не надо было принимать. Или делать минималистичную сишку с классами или пилить новый язык.
Аноним 20/03/17 Пнд 15:01:49  957522
>>957510
Так сделали десятки ебанатов, но взлетел почему-то С++. А теперь поучи датчанина делать языки.
Аноним 20/03/17 Пнд 15:34:15  957544
Winblows.jpg (17Кб, 300x257)
>>957522
>взлетел
>почему-то
Аноним 20/03/17 Пнд 15:43:14  957548
>>957194
Proof?
Аноним 20/03/17 Пнд 15:46:50  957551
>>957548
http://redox-os.org
Аноним 20/03/17 Пнд 15:49:22  957553
>>957551
Мда очередная UNIX-like говнина, сколько их можно пилить...
Аноним 20/03/17 Пнд 16:33:30  957578
>>957544
Винда написана на си, ебанутый.
Аноним 20/03/17 Пнд 16:35:54  957585
>>957553
А какие ещё есть варианты? Либо юникс-говнина, либо NT-сперма.
>>957578
Это к тому было, что и палка раз в год стреляет.
Аноним 20/03/17 Пнд 16:41:05  957587
>>957553
Да блять просто очередная перделка на гихабе, как laba.exe студентов.
А преподносят как готовый продукт.
Насколько я знаю, они его переписывают потому, что архитектура стала не поддерживаемая (казалось бы причем тут гибкость раст).

Аноним 20/03/17 Пнд 17:18:09  957602
>>957522
>но взлетел почему-то С++
Популярность продукта ни разу не гарантирует его высокое качество.
Аноним 20/03/17 Пнд 17:34:31  957609
>>956909 (OP)
Дрявая хуета с утечками как и С++
https://github.com/redox-os/redox/issues/855
Аноним 20/03/17 Пнд 17:34:58  957610
>>957585
>А какие ещё есть варианты? Либо юникс-говнина, либо NT-сперма.
Да дохуя на самом деле, но к сегодняшнему дню это всё либо осталось в музеях, либо пилится на коленке каким-нибудь Куртисом Ярвином или Терри Дэвисом. Хотя впрочем IBM всё ещё поддерживает z/OS.
Аноним 20/03/17 Пнд 17:38:46  957611
>>957610
GNU/Linux идеальная ОСь, BSD годная альтернатива. Остальное просто ненужно.
Аноним 20/03/17 Пнд 17:43:40  957616
>>957611
>Остальное просто ненужно.
Нужно, просто ты об этом не знаешь: http://www.loper-os.org/?p=284
Аноним 20/03/17 Пнд 17:52:33  957621
>>957610
>но к сегодняшнему дню это всё либо осталось в музеях
Потому что надо дрова из ОС выкинуть нахуй. Пусть железячники все хардварно реализуют с простым интерфейсом. Все равно и так блобы везде. Так пусть тот блоб на железе крутиться с простым стандартным интерфейсом наружу. Тогда можно будет для кучи устройств использовать один драйвер по спецификации.
Аноним 20/03/17 Пнд 17:53:35  957623
>>957611
>Windows идеальная ОСь, macOS годная альтернатива. Остальное просто ненужно.
Аноним 20/03/17 Пнд 17:57:04  957627
>>957621
Годная идея. PostScript в принтерах был шагом в правильном направлении.
Dmitry 20/03/17 Пнд 17:58:38  957628
>>957616
зачем нужен виндоус у которого нет экосистемы? На котором до сих пор мертвым грузом лежит дохуя (50%) легаси? Единственное за что их можно уважать за то что форсят переход на новые железки.
Видео драйвер интела из-за легаси пидарастии раздут с 1 мб до 200, в 200 раз больше необходимого, пиздец.
МакОСь хоть и для пидарасов, но сбалансирована, имеет нормальную щель, работает без бсодов.
Аноним 20/03/17 Пнд 18:01:04  957631
>>957602
Популярность С++ гарантирует, что с твоим подходом что-то не то. И довольно банальное - обратно-совместимое решение победило. Из тех времен живо 3 языка, это С, С++ и Objective C. Угадай, почему.
Dmitry 20/03/17 Пнд 18:01:27  957632
>>957621
>блобы везде
Не везде
>простой интерфейс
Они его и сделали, можешь в обход всех либ юзать.
Аноним 20/03/17 Пнд 18:16:08  957647
>>957628
легаси и есть экосистема, тупой ты уебок
и да, это оскорбление
иди нахуй заодно
Dmitry 20/03/17 Пнд 18:27:57  957657
>>957647
>легаси и есть экосистема, тупой ты уебок
>и да, это оскорбление
В голос с дауна.
Экосистема это когда в системе не дублируется одно и то-же и четко разделено что за что отвечает.
Виндовс 20 лет не чистилось от говна, вместо того чтобы это сделать добавляют %фичи% и велосипеды чтобы они работали.
Одинаковые названия программ, драйвера по 300 метров для звуковух и видео, три встроеных браузера и двое меню настроек на покушать.
Аноним 20/03/17 Пнд 18:31:24  957660
>>957657
Ты бредишь, Митя. Экосистема - это экологическая система, почитай, что такое экология. Это когда куча животных, едят друг друга и срут, но система при этом стабильна, потому что все в балансе.
Аноним 20/03/17 Пнд 18:37:26  957663
>>957660
> друга и срут, но система при этом стабильна, потому что все в балансе.
А шиндовс не стабильна и не нужна согласно http://www.loper-os.org/?p=284
шиндовс обсирается на первом же правиле, так что хватит за них топить Пыня.
Аноним 20/03/17 Пнд 19:14:01  957684
>>957631
Популярность продукта в массах — это показатель только его доступности для широкой аудитории.

Это как сравнить айфоны с кучей говна на андроиде — первые по статистике занимают всего-то 10-15% рынка. Только вот незадача, из этих 85-90% только треть превышают отметку в 200$, а отметку в 500$ ещё треть от этой трети.

Вот и думай почему говно для тупорылых макак вроде го, пхп (и 1с в странах снг) стреляет. То же и с плюсами — худобедно любой дебил осиливает хэловорд, падающий через раз с сегфолтом — зато осилил жи!
Аноним 20/03/17 Пнд 20:23:08  957770
>>957684
Ты сам довольно тупорылый, если мобильные ос в принципе занимают какое-то место в твоей голове. А языка лучше С++ в своей нише объективно нет. Вообще. Никак. Ни разу. Поэтому умнейшие люди планеты пишут свои продукты на нем, с нуля и до сих пор.
Аноним 20/03/17 Пнд 20:34:44  957792
>>957770
Ты домен какаой-та толе на плюсах писали раньше потому что небыли альтернативы. От слова совсем. Либо Ява, либо говно вроде D со сборщиком.
Аноним 20/03/17 Пнд 21:09:59  957813
TAwDXC-4EW8.jpg (93Кб, 1111x597)
>>957792
ДЦП
Аноним 20/03/17 Пнд 21:30:28  957819
>>957609
Они получается unsafe юзали?
Аноним 20/03/17 Пнд 22:02:02  957839
>>957819
>unsafe юзали
Пиздец.
Аноним 20/03/17 Пнд 22:37:10  957873
Есть у кого-нибудь опыт использования Rust в production? Часто занимаюсь "узкими" местами в веб приложениях, сейчас все на плюсах, но давно посматриваю в сторону Rust, хотелось бы узнать о опыте использования в реальных проектах?
Аноним 20/03/17 Пнд 22:48:55  957883
>>957873
Что ты там увидеть ожидаешь-то? Плюсовикам (как и вообще всем, кто не занимался каким нибудь хачкеллем, в котором компилятор так же ебет за попытки сделать хуйню) переучиваться очень больно. Иде уровня студии нет, но хуитка для редакторов с нормальным (не уровня тегов из вима и прочей еле работающей хуйни) автокомплитом и подсветкой ошибок из компилятора есть, хотя и альфа, которая собирается только через три анальных кольца. Можешь почитать истории от челиков из дропбокса - https://www.reddit.com/r/rust/comments/4adabk/the_epic_story_of_dropboxs_exodus_from_the_amazon/
Аноним 20/03/17 Пнд 22:51:06  957886
>>957873
>production
То есть все остальное ты написал по-русски, а это слово перевести не смог?


Аноним 20/03/17 Пнд 22:57:58  957892
>>957886
продакшен.
Аноним 21/03/17 Втр 00:13:09  957944
>>957136
>оверхедом по производительности/памяти и без сборщика мусора, но на котором смогут писать миллионы лемингов за дёшево
Go, у них даже символ языка похож на лемминга.
>>957308
Как же тогда оставлять закладки для спец служб?
Аноним 21/03/17 Втр 08:34:42  958050
>>957839
Я к тому откуда могут быть утечки, если это раст. Значит unsafe. Хотя я помню что в каких то версиях раста все таки могли происходить утечки даже без ансейфа, когда паника запускалась другой в панике, но я посчитал что это прям обосраться какое исключение.
Аноним 21/03/17 Втр 10:15:31  958080
В расте же даже не зависимые типы. Как им пользоваться?
Аноним 21/03/17 Втр 12:02:37  958129
>>958080
>даже не зависимые типы
А что нужно, чтобы запилить в расте зависимые типы?
Аноним 21/03/17 Втр 12:06:15  958132
>>958080
Хотя подожди. Проверка типов в языке с зависимыми типами может быть неразрешимой. Тогда нахуя оно надо?
А вот типы высшего порядка (да-да, те самые родненькие аппликативные функторы, стрелки и монады) были бы полезнее. Я правильно понимаю, что их можно эмулировать трейтами с ассоциированными типами?
Аноним 21/03/17 Втр 12:30:53  958149
>>958050
Да, утечки есть, но я про то что ты как дауненок написал.
>unsafe юзали
Кто так пишет? Это пиздец просто.
Аноним 21/03/17 Втр 13:08:05  958165
>>957112
Там нет исключений, но есть особая система типов. Т.е. функция всегда что-то возвращает. Но это может быть что-то (Some), а может быть ничто (None). Или например может быть некий результат или некая ошибка, что уже как бы является аналогом исключения
Аноним 21/03/17 Втр 14:58:05  958210
>>958149
А как надо было?
Dmitry 21/03/17 Втр 16:38:54  958273
>>958210
На С надо писать а не выебыватся.
Аноним 21/03/17 Втр 17:50:15  958329
>>958273
У АНБ и без твоего корявого сишного говна забитого 0-day cve хватает.
Dmitry 21/03/17 Втр 17:56:39  958335
>>958329
Правильно писать NSA.
Ты еще скажи что у раста уязвимостей нет, только что говорили что нет утечек, теперь это.
Аноним 21/03/17 Втр 17:59:22  958337
>>958335
Если код пишет не си-обезьяна на ансейфах — то ни одной сишной точно не будет. Ты кстати забыл главный опус растотредов — memory leaks is memory safe, пидар.
Аноним 21/03/17 Втр 18:32:47  958359
>>958335
Если руки кривые то ты утечку и в языке с GC сможешь сделать. От утечек тебя ни один язык полностью не убережет, так что думать головой все равно придется. Зато память в расте безопасная, без уязвимостей.
Аноним 21/03/17 Втр 23:32:03  958602
>>957819
А как по-твоему писать ОСь, которая должна взаимодействовать с железом без unsafe'ов?
Аноним 21/03/17 Втр 23:38:20  958607
>>956921
Smalltalk тоже использует виртуальную машину, школота.
Аноним 22/03/17 Срд 01:08:12  958680
>>958607
Я знаю, первокурсник. Это не меняет того, что я написал.
Аноним 22/03/17 Срд 01:11:23  958683
>>958602
Например, так же, как в некоторых ОС давно зделоли.
А именно, написан препроцессор для Сишки, который на каждом шаге проверяет, не собрался ли драйвер поделить, скажем, на ноль.
У драйвера своя область стека, все данные он видит только на чтение.
Собрался поделить на ноль - ну тогда значит KernExitThread(-1) и едем дальше.
Аноним 22/03/17 Срд 01:24:47  958694
>>958683
Я в работе современных (да и старых) ОСей не шарю, но на днях читал про прерывания. Что например если была попытка поделить на ноль, что будет вызвано такое-то прерывание. Где-то в памяти есть таблица (с адресами функций?), которые должны обрабатывать подобные случаи. И не всегда же надо тупо выходить. По крайней мере, родительский процесс должен знать, за что убили ребенка
Аноним 22/03/17 Срд 03:47:28  958756
>>958680
Второкурсник ворвался в тред.
Аноним 22/03/17 Срд 09:33:49  958815
>>958694
Да, это для обыкновенных процессов.
А в ядре ОС возникнет неисправимая ошибка во время выполнения, синий экранчик, у продвинутых чёрный.
Но в общем, не забивай себе этим голову, в роиссе на эти знания (очень ценные, ахаха) спроса всё равно нет.
Аноним 25/03/17 Суб 13:10:43  960575
Будущее за языками с HoTT.
Аноним 25/03/17 Суб 20:04:03  960918
>>960575
С чем?
Аноним 25/03/17 Суб 20:11:22  960919
>>960918
С гомотопиями.
Аноним 25/03/17 Суб 20:25:40  960926
>>960919
Звучит неприлично.
Аноним 26/03/17 Вск 08:09:14  961111
>>956915
он и не должен вытеснить джаву. это конкурент плюсам, алё
Аноним 26/03/17 Вск 10:46:03  961142
>>961111
> это конкурент плюсам
Жава с плюсами местами конкуренты.
Аноним 26/03/17 Вск 10:58:54  961147
Очередной долбоёбский тред где эксперты уровня laba2 спорят обо всём, до чего дотянутся.
Аноним 26/03/17 Вск 15:47:25  961320
>>960575
Ты таких много знаешь?
Аноним 26/03/17 Вск 21:17:24  961476
>>961320
Есть в виде модулей к не очень популярным языкам. Я же говорю будущее, а не настоящее.
Аноним 26/03/17 Вск 21:59:46  961504
>>960575
Лет через 10 так, причём в совсем другом виде, а не то говно сейчас. Посмотри на циклон и раст - такая же разница.
Аноним 31/03/17 Птн 01:45:51  963997
Посоны, а где писать программы на русте?
Там IDe кокая? Есть?
Аноним 31/03/17 Птн 01:53:09  964000
>>963997
Emacs самая лучшая IDE для любого языка.
Аноним 31/03/17 Птн 01:55:18  964001
>>958680
Ну и к чему тогда твой вскукарек, различия жабы и смоллтока незначительны. Во втором только рефлексия продвинутей.
Аноним 31/03/17 Птн 02:10:26  964005
>>963997
JetBrains + Rust plugin
Visual Studio Code + Rust plugin
Аноним 31/03/17 Птн 07:08:52  964028
>>956909 (OP)
Друзья, я пытаюсь разобраться в возможностях языка.

Конкретно интересует асинхронное программирование, наткнулся на какие-то фьючеры, но они реализованы отдельной библиотекой, это как может вообще работать?
Ну в смысле, вот есть либа для общения с SQL сервером, но она же ничего про либу с фьючерами не знает, и как тогда это общение в код с фьючерами инкорпорировать?
Аноним 31/03/17 Птн 12:12:45  964118
>>964028
> она же ничего про либу с фьючерами не знает
Знает.
Аноним 31/03/17 Птн 14:35:40  964219
>>964028
>и как тогда это общение в код с фьючерами инкорпорировать?
Пишешь обычный код, только с типажами из futures на выходе @ спавнишь свою хуйню в готовом ивентлупе из tokio или своём самописном @ утилизируешь все ядра, пьёшь смуззи в старбаксе и ссышь на гоферов.
Аноним 31/03/17 Птн 18:50:33  964409
>>964219
>Пишешь обычный код, только с типажами из futures на выходе @ спавнишь свою хуйню в готовом ивентлупе из tokio или своём самописном @ утилизируешь все ядра, пьёшь смуззи в старбаксе и ссышь на гоферов.

А это законно вообще?
Аноним 31/03/17 Птн 20:13:56  964464
>>964409
В манямирке
Аноним 31/03/17 Птн 20:40:27  964473
Если раст пилят как более безопасную замену C++, значит в нем не должно быть проблем при написании гуишного софта?
Аноним 31/03/17 Птн 22:09:55  964520
>>964473
На расте нет никаких проблем с гуи, т.к. нет гуи
Аноним 31/03/17 Птн 22:27:04  964536
>>964473
>2к17
>геи
Новые гуевины шлепают только на мобилках со своими хост-языками, а десктопное легаси и без того вроде работает (хотя тот же гном вроде как по кусочкам, как и новый движок лисы переписывают на растяпу? но это неточно).
Аноним 31/03/17 Птн 22:27:49  964537
>>964536
>геи
Ммм, а мой автокомплит в курсе трендов этого года.
Гуи, конечно жи.
Аноним 31/03/17 Птн 22:28:15  964539
>>964536
>растяпу?
Это тоже интересный автокомплит, лол.
Аноним 31/03/17 Птн 22:29:26  964541
>>964473
Есть разные биндинги под существующие либы
Например, https://www.youtube.com/watch?v=hLR8R0Zl0yY
Аноним 01/04/17 Суб 00:29:57  964586
>>964464
>В манямирке
Значит на попытке написать scgi приложение я сосну?
Вроде tokio позволяет оче просто писать асинхронный сервер.
Аноним 01/04/17 Суб 00:37:31  964587
>>964586
Я вообще мимо проходил(из го треда), сорян, помочь не могу.
Аноним 03/04/17 Пнд 00:55:41  965801
>>957136
Существуют
https://www.techempower.com/benchmarks/#section=data-r13&hw=ph&test=plaintext&l=3vu6m7
Аноним 03/04/17 Пнд 00:56:29  965804
>>965801
Раст чуть быстрее джанги на питоне
Аноним 03/04/17 Пнд 00:57:41  965807
>>965801
И обрати внимание что многие с ошибками сыпяться (очень стабильный язык)
Аноним 03/04/17 Пнд 01:36:42  965824
.png (1297Кб, 1920x1080)
>>965804
>>965807
Полгода для раста это много. Сейчас как-то так.
https://www.techempower.com/benchmarks/previews/round14/#section=data-r14&hw=ph&test=plaintext
Аноним 03/04/17 Пнд 04:04:07  965838
>>965824
Они допилили асинхронный сервер (он полноценный или какая-то заглушка еще)?
Аноним 07/04/17 Птн 09:29:05  968631
https://twitter.com/chasinglogic/status/850115493923086336
Аноним 07/04/17 Птн 16:18:12  968788
bump
Аноним 11/04/17 Втр 16:58:55  971901
17474.jpg (112Кб, 800x755)
Поясните за racer. Хуй с ним он не может в макросы. Но какого хуя он даже обычные крейты не может нормально обработать?
Взял kiss3d и рейсеру вообще похуй. Он ничего не дополняет.
Аноним 11/04/17 Втр 17:15:27  971905
>>971901
RLS натяни, работает через тот же рейсер, только с ошибками из компилятора на лету и анализирует крейты.

Плагин для intellij кстати, уже даже с макросами работает — криво и косо, но навигирует уже около них (в дислокации +- 10-20 строк, лул).
Аноним 11/04/17 Втр 17:26:30  971909
screen.png (568Кб, 2880x1800)
Апну скрином с пруфцом работы RLS, кстати.
Аноним 12/04/17 Срд 00:56:48  972199
>>956909 (OP)
>Rust
Не взлетит.

>>957136
>без сборщика мусора
>миллионы макак
Последнее не подрузамевает мозг, а равно ручной гарбейжинг, а значит без певрого не возможно второе.
Аноним 12/04/17 Срд 01:14:01  972205
>>972199
>Не взлетит.
Покаместь что взлетает.
Не так сильно как хотелось бы конечно.
Аноним 12/04/17 Срд 06:09:27  972252
>>972199
>а равно ручной гарбейжинг
Не так, габейджинг вообще не потребуется, потому что код будет написан безопасно либо не скомпилится.
Аноним 12/04/17 Срд 09:15:16  972282
>>972252
>либо не скомпилится.
this. Так что без автосборщика мусора никуда.

>>972205
Ну и дохуя тырпрайза перекатилось на него?

Аноним 12/04/17 Срд 09:20:53  972284
Че там с книжками? Кроме официальной сухой доки есть еще что-нибудь?
Аноним 12/04/17 Срд 10:49:41  972310
>>972282
>this. Так что без автосборщика мусора никуда.
Ну так прочитай книжку и пойми как надо делать что бы компилилось.
Аноним 12/04/17 Срд 11:01:03  972312
>>972282
> дохуя
А это сколько в цифрах?
Аноним 12/04/17 Срд 11:05:08  972314
Вообще конечно расту нужны нормальные средства разработки. И вроде как они активно пилятся. Подождем, посмотрим, потому что сейчас, все что связано с растом находится в "earliest alpha stage of development".
Аноним 12/04/17 Срд 11:39:04  972329
2017-04-12-1138[...].png (12Кб, 798x122)
Так и живем.
Аноним 12/04/17 Срд 11:45:12  972330
бамп
Аноним 12/04/17 Срд 13:06:47  972351
>>972314
> нормальные средства разработки
автокомплит и навигация в emacs уже давно работает
Аноним 12/04/17 Срд 13:09:39  972354
>>972314
Питушок, ты что-то упкстил?
>>971909
Аноним 12/04/17 Срд 13:29:28  972360
>>972282
>Ну и дохуя тырпрайза перекатилось на него?
А нахуя на расте json в xml перегонять, если для таких задач есть ява?
>>972284
Rust by example, rustonomicon, rust essentials.
Аноним 12/04/17 Срд 16:46:24  972459
>>972282
>Ну и дохуя тырпрайза перекатилось на него?
Ну как бы Rust не позиционируется как замена для джавы.
Хотя, мне кажется это возможно, если создать правильные годные абстракции.

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

Тнз тырпрайз, заточен под создание проектов максимальной сложности путем задействования минимально квалифицированных трудовых ресурсов.
Совсем другая область.
Аноним 12/04/17 Срд 16:56:36  972464
>>972459
Мне кажется раст будет ультрагоден для создания осей и низкоуровенего софта, т.е. там, где сейчас С и С++.
Аноним 12/04/17 Срд 17:48:53  972485
>>972464
Уже же какую-то ось на расте запилили
Аноним 12/04/17 Срд 18:15:48  972499
>>972485
Несколько.
Аноним 12/04/17 Срд 19:13:25  972558
>>972499
>Несколько
Что-то кроме редокс есть?
Аноним 12/04/17 Срд 19:24:01  972563
Да похуй на эти ваши ос. Лучше расскажите, кто-нибудь щупал аметист?
Аноним 12/04/17 Срд 19:36:58  972568
>>972558
https://github.com/flosse/rust-os-comparison
>>972563
А ПИСТОН чем не устраивает?
Аноним 12/04/17 Срд 19:45:17  972575
>>972568
Пистон это набор либ, а не движок. Если верить описанию с https://github.com/amethyst/amethyst/wiki/Other-Game-Engines-in-Rust
Аноним 12/04/17 Срд 20:07:03  972583
>>972485
Но оно говно пока что. Что-то годное сделают когда раст станет массовым.
Аноним 12/04/17 Срд 22:08:50  972679
Как же он пиздецки медлено компилится.
Аноним 13/04/17 Чтв 00:02:17  972725
>>972679
Быстрее плюсов.

Хотя ирл однохуйственно перекомпиливается только 1 модуль, и на минимальной конфигурации мбп 2016 весь цикл компиляции-тестов проходит быстро, если ты не меняешь весь проект и зависимости вместе взятые за раз. И в отличие от го с быстрой компиляцией, тут при отсутствии ансейфа дебаггер действительно нинужин.
Аноним 13/04/17 Чтв 00:05:18  972728
>>972725
Дебагер не нужен? Быстрая конпеляция не нужна? Ты всю хуйню пишешь без ошибок с первого раза?
Аноним 13/04/17 Чтв 00:13:12  972731
>>972728
Ты даун который мой пост не прочитал.

Но да, с его системой типов и статическим анализом он в своём каноническом юзкейсе рили не нужен. Разве что с пошаговой поддержкой IDE для изучения чужого кода прикольно было бы.
Аноним 13/04/17 Чтв 00:16:14  972733
>>972731
Даун тут только ты, если думаешь что система типов спасает от ошибок.
Аноним 13/04/17 Чтв 00:22:58  972736
>>972485
>>972499
А как можно пилить ось на языке с кучей экстерн депендов?
Аноним 13/04/17 Чтв 00:23:48  972737
>>972731
http://paste.org.ru/?57pxj7
Как быть если случится примерно такая история? Как раст меня от этого защищает?
Аноним 13/04/17 Чтв 00:28:57  972739
>>972725
Да и в го дебаггер особо не нужен, во всяком случае мало кто им пользуется ибо его нет
Аноним 13/04/17 Чтв 00:36:01  972740
>>972739
В го дебагер не нужен потому что
1) Быстрее въебать принт и переконпелить
2) Если ты поймаешь панику ты получишь четкий стектрейс
Аноним 13/04/17 Чтв 00:40:37  972741
>>972737
Не стрелять себе в ногу специально. А так в нём есть специальная деректива компилятора, ограничивающая рекурсию, если ты настолько больной.
>>972733
А ты походу считаешь что система типов это "инты, поинтеры и структуры".
Аноним 13/04/17 Чтв 00:42:48  972743
>>972740
В расте он не нужен потому что:
а) Если не пытаться руками завалить код — он не разыминует висячий указатель/нульпоинтер/итд.
б) Стектрейс в дебаг-билде в любом языке избыточен, вась.
Аноним 13/04/17 Чтв 00:42:55  972744
>>972741
По твоему кто-то специально стреляет себе в ногу? Нет, блять, это говно всплывает в проде когда ты этого меньше всего ожидаешь. Система типов никогда в жизни не научит тебя не совершать ошибок, которые вызовут у твоих клиентов жопную боль. Может ты и не сможешь поделить попугаев на тараканов, но вот вместо одного бесплатного попугая выдать чуть более 9000 - легко.
Аноним 13/04/17 Чтв 00:43:44  972746
>>972743
Кукаретик, еще раз тебе повторяю, что 99% ошибок это ошибки бизнес логики, а не разыменования указателей.
Аноним 13/04/17 Чтв 00:46:25  972747
>>972746
В высокоуровенных языках вроде явы, где их и нет. А так, открой свежий список CVE, посмотри как там дела с 1%.
Аноним 13/04/17 Чтв 00:48:10  972748
>>972744
Она поможет мне ковыряться в говне из байтов без стрельбы в анал и гонок данных. Давай заводи демагогию по новой.
Аноним 13/04/17 Чтв 06:42:58  972802
>>972736
Ты о чём?
Аноним 13/04/17 Чтв 10:12:08  972833
6437632.jpg (413Кб, 1060x700)
>>972459
>если создать правильные годные абстракции
А вот тут, кстати, у меня вопрос возник. Где почитать именно про приемы проектирования на Rust - с примерами неудачных решений, разбором полетов и т.д. По классическому ООП такой литературы завались, а тут куда копать? Ну или хотя бы исходники какого-нибудь годного проекта средней сложности посоветуйте.
Аноним 13/04/17 Чтв 10:44:55  972844
>>972679
cargo check
Аноним 13/04/17 Чтв 10:50:29  972849
>>972833
>Где почитать именно про приемы проектирования на Rust
Предположу, что скорее всего нигде, кроме исходников чужих проектов. Советую сначала погуглить, а если найдешь- вбросить сюда.
Аноним 13/04/17 Чтв 11:23:25  972856
>>972849
>>972833
https://github.com/rust-unofficial/patterns
От авторов знаменитой "learn rust by writing too many lists". Хотя там большинство контента всё ещё только TODO без описания (:

Проекты смотри где нибудь на https://github.com/kud1ing/awesome-rust
Где-то кстати видел компилятор хаскеля на расте, тоже можешь глянуть, лул.

А вообще, вся кор-тима раста работает над серво, и половина над токио — посмотри на них если хочешь кода из первых рук.
Аноним 15/04/17 Суб 16:33:46  974065
>>972464
1)Примеры ымбыдеда на вашем расте есть?
2)Почему "один из самых динамично развивающихся языков современности" в зыкаче имеет тред, который мертвее треда полувекового С?
Аноним 17/04/17 Пнд 02:46:33  974726
>>974065
1) Гугол открой;
2) Потому что растотреды уже перекатов так 5 находятся под атакой жеманного, который просто топит спамом все адекватные посты. Сравни на том же реддите активность доски раста с досками плюсов и си вместе взятыми.
Аноним 17/04/17 Пнд 03:16:54  974730
>>974726
>2) Потому что растотреды уже перекатов так 5 находятся под атакой жеманного, который просто топит спамом все адекватные посты.
А не тот ли это шизик, что срет в го треде?
Аноним 17/04/17 Пнд 03:30:39  974731
>>974730
Это ты у него узнавай.
Аноним 18/04/17 Втр 15:44:50  975583
>>972856
>компилятор хаскеля на расте
нихуя ж себе
language-rust на хаскеле помню, а такого не видел
Аноним 18/04/17 Втр 15:47:59  975590
>>975583
https://github.com/Marwes/haskell-compiler
Аноним 18/04/17 Втр 15:49:00  975592
>>974065
>тред, который мертвее треда полувекового С
Патамушто с неадекватами неохота разговаривать, норм чуваки все в гиттере да ирц пасутся
Аноним 19/04/17 Срд 11:39:23  976237
Оправдывайтесь почему нужно писать println! вместо println
Аноним 19/04/17 Срд 11:48:13  976239
>>976237
Потому что в языке нету поддержки varargs, очевидно.
Аноним 19/04/17 Срд 11:56:07  976245
>>976239
Надо было делать print << ln
Присутствие ! ассоциируется с мутабельностью которая вообще не при чём здесь как оказывается
Аноним 19/04/17 Срд 12:04:10  976250
ывреыр5кер.jpg (85Кб, 1457x981)
>>976245
>print << ln
Аноним 19/04/17 Срд 12:10:20  976257
>>976245
>Надо было делать print << ln
Иди нахуй за этим ублюдским говном в плюсы. Я реально рад, что сделали человеческое printf-like форматирование.
>Присутствие ! ассоциируется с мутабельностью которая вообще не при чём здесь как оказывается
Так это и не окамл, дружок. Тут восклицательный знак (тем более справа от идентификатора, хз с чего ты про мутабельность рот открыл — мутабельно передать что-то можно только явно с mut) означает макрос, местный синтаксис разыменования указателей от си был унаследован, если ты не заметил.
Аноним 19/04/17 Срд 12:10:36  976259
>>976237
Зачем оправдываться? Тут два стула - либо используй макросы, либо зависимые типы. Причем раст, похоже, будет видеть на обоих.
Ладно-ладно, есть третий стул - разбирать строку формата в рантайме и обрабатывать ошибку. Но для этого есть runtime-fmt
Аноним 19/04/17 Срд 12:11:11  976260
>>976259
>сидеть
Аноним 19/04/17 Срд 13:43:22  976294
>>976259
Я раньше думал, что вывод имеет отношения к монадам, а тут вон че. Поясни, пожалуйста.
Аноним 19/04/17 Срд 14:21:50  976317
Screenshot at 2[...].png (71Кб, 481x857)
Всё правильно сделал? Как-то печально это всё
Аноним 19/04/17 Срд 14:24:24  976318
>>976317
Надо было просто println!("14");
Аноним 19/04/17 Срд 14:28:58  976320
>>976318
Но я хочу чтобы было AbstractSingletonProxyFactoryBean чтобы объединять данные с функциями
Аноним 19/04/17 Срд 14:29:24  976321
>>976317
Похоже на go лол
Аноним 19/04/17 Срд 14:42:19  976329
>>974065
>2)Почему "один из самых динамично развивающихся языков современности" в зыкаче имеет тред, который мертвее треда полувекового С?
Проблемы /pr
Потому что абсолютное большинство тредов языкача - это холивары и баттхерты, например есть го тред, но там куча неадеквата.
Аноним 19/04/17 Срд 15:45:54  976345
В общем не вижу никакой разницы с С++ кроме примитивного ооп, конструкции match и опущенных {} (вау), да ещё уебанцкие сокращения ключевых слов и имён в стандартой библиотеке
Выглядит как язык от васяна где вся логика построена по желанию его левой пятки
Для деклоративного петушения со статической типизацией лучше взять Haskell, для навороченного синтаксиса Perl 6
Аноним 19/04/17 Срд 16:34:44  976363
>>976345
Что-то ты забыл про главное отличие - систему типов Rust. Я и про lifetimes/borrowing, и про гарантированную на уровне системы типов потокобезопасность (вне unsafe), и про проверку типов в дженериках на этапе их создания а не на этапе инициализации. А в обозримом будущем надеюсь появятся зависимые типы, HKT и прочие вкусности.
И да, модули. В 2к17 инклудить хедеры вместо нормального импорта модулей - очень странно если честно. Это по сравнению с прочим мелочь, но всё-таки.
Аноним 19/04/17 Срд 16:41:40  976366
>>976363
>А в обозримом будущем надеюсь появятся зависимые типы, HKT и прочие вкусности.
Вот только не надо это сложное для понимания уг тащить в Rust.
Сейчас это нормальный язык, Haskell к услугам тех, кто желает дрочить на монады/теоркат и теорию типов.
Аноним 19/04/17 Срд 17:41:21  976388
>>976366
Ты хоть знаешь что такое HKT или просто знаешь что это "что-то сложное из Haskell"?
Аноним 19/04/17 Срд 18:11:12  976399
>>957444
>пример притянут за яйца. любой школьник знает
Схрена ли оно компилируется тогда?

ЛЮБОЙ ШКОЛЬНИК ЗНАЕТ
@
РАЗРАБОТЧИКИ КОМПИЛЯТОРА НЕ ЗНАЮТ
Аноним 19/04/17 Срд 21:04:27  976505
>>976388
>Ты хоть знаешь что такое HKT или просто знаешь что это "что-то сложное из Haskell"?
Представь себе, прежде чем ответить, я загуглил и честно попытался понять. Не смог сделать этого даже на интуитивном уровне, т.е. не уловил идею. Разумеется, дело может быть во мне, но для себя я сделал вывод, что это достаточно сложно для понимания программиста, привыкшего к императивным языкам, к числу которых относится Rust. Для таких вещей есть Haskell и незачем засирать другой язык.

просто хаскеллисты хуеют от своего рантайма и хотят свои убер-абстракции, которые и сами не понимают, но при этом хотят efficiency раста
Аноним 19/04/17 Срд 21:11:50  976511
>>976345
>опущенных {} (вау)
Ты сам только что показал что опущен только ты, лол. В расте много где опускаются обычные скобки, но все выражения (кроме однострочных результатов паттерн матчинга) делятся фигурными.
>стандартой библиотеке
Жеманный, не не пались, не знаешь же. После си и плюсов с atoi(), ftol() ntohl() и друзьями в расте просто AbstractSingletonProxyFactoryBean-ы какие-то
>>976388
Братан, вот поясни мне за эти функторы — а нахуя?
Я мб тупой слишком, но из пояснений в гугле понял столько же, сколько про монады — что это моноид в категории эндофункторов, ахуенно.
Сейчас у нас есть что-то между плюсами и сишкой — с композицией и tagget-unions вместо наследования, простым синтаксисом (дада), все очень явно, модули и так далее.

Короче, качественный кусок инженерного говна, если цитировать одного йоба-математика. На нем с некоторой сноровкой, конечно могут спокойно писать васяны вроде меня у которых никогда не было пар теорката или они нихуя не понели, в общем-то, примерно 95% программистов на си и плюсах.
А еще есть тот же ATS, в котором зависимые типы где-то даже видел коммент в стиле "правильно сделанный раст" и все прочее, на котором с комментария того же йоба-математика скорость написания кода в лучшем случае "400 строк за неделю". Карл, вот что такого дадут эти зависимые типы практичному языку, а не йобе от епонца, у которого в культуре высшее просветление — аутировать смотря на сакуру?
Аноним 19/04/17 Срд 21:46:12  976529
>>976511
А мне еще можете пояснить что такое линейные типы.
Аноним 19/04/17 Срд 22:02:17  976538
>>976511
Cи делали 100 лет назад, в С++ этого уже нет за редким исключением, писать fn вместо function даже не каждая обоссанная обёртка для JS себе позволит. Можно было использовать define или вообще function x = x раз уж match влепили. Для серьёзного языка с ориентацией на безопасность это абсолютно неприемлимо, даже переменные так называть нельзя.
Аноним 19/04/17 Срд 22:04:35  976539
>>976538
двачую, тоже это резануло, есть же нормальные def, func
Аноним 19/04/17 Срд 22:25:32  976543
>>976538
>>976539
Ебать жеманного бомбонуло.
>>976529
Дык их и нет в расте, здеся у нас аффинные типы.
Линейные типы (по моему скромному пониманию, хз чо там по математической правильности) позволяют использовать объект только из одного места и запрещают копировать на него ссылки. В расте это называется владением.
В аффинной типизации есть возможность использовать объект не только из одного места. В сухом остатке, это грубо говоря есть заимствование.
Аноним 19/04/17 Срд 22:55:02  976555
Screenshot at 2[...].png (71Кб, 396x732)
>>976317
Вектор объектов, компилится
Подсветку не настроил ещё
Аноним 19/04/17 Срд 23:11:55  976573
Ёпт, на сколько всего отвечать придётся

>>976505
>Представь себе, прежде чем ответить, я загуглил и честно попытался понять. Не смог сделать этого даже на интуитивном уровне, т.е. не уловил идею.

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

На самом деле в HKT нет вообще ничего сложного. Если очень грубо, HKT - это просто способ выразит общее свойство (интерфейс) не любого типа, а параметрического. То есть если тип имеет поряок (kind) -> , то у него обязательно должен быть параметр (другими словами, это обязательно должен быть generic-тип). Если порядок -> -> *, то параметра должно быть два, и так далее. Разве это настолько сложно?

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

Опять-таки, так уж исторически сложилось, что функциональные языки опережают императивные в использовании более мощных систем типов. Но по факту, те же HKT к самой функциональщине не имеют прямого отношения и могут спокойно применяться в императивных языках.

> Для таких вещей есть Haskell и незачем засирать другой язык

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

>>976511
>Братан, вот поясни мне за эти функторы — а нахуя?

На самом деле определение функторов из ТК вообще не особо-то важно когда речь идёт об их применении в программировании. Функторы используют в программировании не из-за их значения в ТК, а потому что так уж случайно вышло, что под определение функтора совершенно естественным образом подпадают такие нужные в программировании вещи как списки и optional-значения (с монадами также). Так что функтор/монада - это с одной стороны интерфейс (набор признаков типа), с другой - паттерн (набор приёмов работы со _всеми_ типами которые реализуют данный интерфейс). Основная идея в том, что выделяя все эти функторы и монады как отдельную сущность, можно писать допустим какие-то функции-хелперы которые не знают ничего о конкретном типе, а знают лишь что этот тип реализует нужный интерфейс. Это позволяет местами писать более обобщённый, универсальный, абстрактный код.

Собственно, важно понимать, что в Rust уже используются техники, характерные для ФПшных монадок и функторов. Все вот этим методы типа or_else и прочее - это как раз оно. Суть в том, что сейчас в Rust всё это реализуется отдельно для каждого типа. А если выделить монады/функторы как отдельную сущность, то многие из этих методов можно будет реализовать один раз, обобщённо, для всех таких типов сразу.

> Карл, вот что такого дадут эти зависимые типы практичному языку

Возможность гарантировать отсутствие ошибок в рантайме на этапе компиляции. В общем-то, не хочешь - не используй, для большинства программ оно действительно будет излишним. Но там где любая ошибка может обойтись дорого, зависимые типы могут реально помочь, ящитаю.
Аноним 19/04/17 Срд 23:15:10  976575
>>976573
блять, оно потёрло мои звёздочки
там должно быть в одном месте &#42; -> &#42;
в другом: &#42; -> &#42; -> &#42;
Аноним 19/04/17 Срд 23:16:02  976576
>>976555
Братан, можно было просто:
а) Сделать impl Display for Vec<Box<Yoba>> и всё;
б) Использовать дебажную форматировку в println (которая :?).
Аноним 19/04/17 Срд 23:17:45  976577
>>976573
>>976575

блядь, а это сложнее чем монады ебашить
пробую ещё раз
&#38;#42; -> &#38;#42; в одном месте
&#38;#42; -> &#38;#42; -> &#38;#42; в другом
Аноним 19/04/17 Срд 23:36:35  976588
>>976573
>>976575
>>976577

так, ладно: https://pastebin.com/DKCvJDP0
Аноним 19/04/17 Срд 23:53:43  976602
>>976573
>На самом деле в HKT нет вообще ничего сложного. Если очень грубо, HKT - это просто способ выразит общее свойство (интерфейс) не любого типа, а параметрического. То есть если тип имеет поряок (kind) -> , то у него обязательно должен быть параметр (другими словами, это обязательно должен быть generic-тип). Если порядок -> -> , то параметра должно быть два, и так далее. Разве это настолько сложно?
Ну я вот щас ничего не понял. Ты точно не стебешься? ->, -> ->
- это что?

>Как-то странно на людей влияет всё что хоть как-то связано с функциональщиной. Абстракций, которые за пять минут в гугле не особо-то поймёшь, хватает и в ООП, но как только пациент видит слово "монада", "функциональный", "Haskell", он заранее готовится к чему-то охуенно сложному, и если за 5 минут в гугле не понял суть, то мнение это лишь подкрепляется.
1. ООП все, кто связан с программированием, знают
2. В начальном приближении большинство концепций ООП можно объяснить сравнительно просто, можно это как-то постепенно изучать, а, когда на тебя обрушивается ворох стрелок и звездочек, это кажется сложным.

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

>>976588
>>976573
>>976575
>>976577
Чет проиграл если честно.
Аноним 19/04/17 Срд 23:55:31  976607
>>976573
>Тут у вас на глазах происходят крутейшие вещи - высокоуровневые абстракции, которые раньше ассоциировались с очень высокоуровневыми языками, теперь можно (или скоро можно будет использовать) в системной разработке, причём вся "магия" происходит на этапе компиляции, т. е. никакого ущерба производительности нет. А вы включаете режим утёнка, мол, с этим я не знаком, не надо этим засирать язык. Как прогресс-то двигать, не пробуя новые абстракции?
Ну если смогут норм внедрить эти кайнды в язык и объяснить так, чтобы понял человек, который на хаскелле только факториалы писал, то я ничего против не имею, возможно это годная вещь действительно.
Аноним 19/04/17 Срд 23:57:13  976608
>>976576
>fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
Нихуя себе просто
Аноним 20/04/17 Чтв 00:07:23  976614
>>976602
> ->, -> -> - это что?

Это парсер съел звёздочки. Смотри короче ссылку на pastebin, я не ебу как эти звёздочки вставлять сюда.
Аноним 20/04/17 Чтв 00:08:33  976615
>>976602
>Плюс не совсем понятно, а нахуя это нужно

Те же монады и функторы нормально без кайндов не реализовать. Зачем нужны монады и функторы и попытался вкратце объяснить выше. В общем всё сводится к тому чтобы писать более обобщённый код.
Аноним 20/04/17 Чтв 00:22:38  976626
>>976602

Ну можно конечно какой-то другой синтаксис придумать, без стрелочек со звёздочками. Стрелочки здесь потому что те самые дженерики которыми мы каждый день пользуемся с точки зрения того же Haskell - функция над типом. Ну то есть когда мы пишем тип вроде List<Int> мы как бы вызваем (в compile-time, разумеется) функцию List с параметром Int.
Аноним 20/04/17 Чтв 13:15:13  976821
Я не понял насчёт параллелизма, он что реальные потоки создаёт? А корутины где?
В http://rurust.github.io/rust_book_ru полно примеров где предлагают создавать по 10 тредов для вычислений, довольно странная практика
Аноним 20/04/17 Чтв 13:20:38  976827
>>976821
>полно примеров где предлагают создавать по 10 тредов для вычислений, довольно странная практика
И что в ней странного?
Все так всегда делают.

>Я не понял насчёт параллелизма, он что реальные потоки создаёт?
Ты что реально слабоумный дебил?

>А корутины где?
Не завезли, ибо сложно и нужон сложный рантайм.
Заместо есть tokio и фьючерзы.
Аноним 20/04/17 Чтв 13:37:43  976834
>>976827
А как без корутин например 100 одновременных HTTP запросов послать и обрабатывать?
Аноним 20/04/17 Чтв 13:43:39  976836
>>976834
>А как без корутин например 100 одновременных HTTP запросов послать и обрабатывать?
Асинхронно.
Через tokio либу.

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

Прежде чем вкатываться в раст, нужно возыметь базовые знания вначале.
Архитектура ПК - ассемблер - си.
Да и не для раста то-же нужно.
Аноним 20/04/17 Чтв 13:58:46  976842
>>957093
Схуяли его меньше?
Там выразительность на уровне С++ или хуже.
Аноним 20/04/17 Чтв 14:04:18  976849
>>957174
Не в 6/9 а в 3/9, при этом сливает Си в 8/9,
что какбы говорит нам о качестве кода на плюсах в этих бенчмарках.
Аноним 20/04/17 Чтв 14:06:15  976851
>>976827
>И что в ней странного?
>Все так всегда делают.
Да просто любой дурак знает, что плодить больше потоков, чем ядер, нет смысла, особенно для вычислений. То, что все так делают не говорит о том, что это правильно.

>>976836
>
>Прежде чем вкатываться в раст, нужно возыметь базовые знания вначале.
>Архитектура ПК - ассемблер - си.
Сразу видно теоретика.

>>976842
>Там выразительность на уровне С++
Так с++ довольно выразителен, если сравнивать с джавой или го.
Аноним 20/04/17 Чтв 14:06:29  976852
>>957308
А теперь приведи пруфы того, что Rust делает гарантированно безопасный код.
Аноним 20/04/17 Чтв 14:13:23  976858
>>976821
Он не слышали про количество ядер прост
Аноним 20/04/17 Чтв 14:13:54  976859
>>976851
>Да просто любой дурак знает, что плодить больше потоков, чем ядер, нет смысла, особенно для вычислений. То, что все так делают не говорит о том, что это правильно.
Любой недурак, знает, что плодить потоков больше чем ядер ЕСТЬ смысл в определенных задачах.
И потому проводит тесты производительности в разных конфигурациях.

>Сразу видно теоретика.
Пожалуй, шел бы ты нахуй, безмозглый шизик-тралль.
Аноним 20/04/17 Чтв 14:14:42  976860
>>976859
>Пожалуй, шел бы ты нахуй, безмозглый шизик-тралль.
Хотя нет.
Оставайся тут пока.
Аноним 20/04/17 Чтв 14:15:45  976861
>>957587
>А преподносят как готовый продукт.
Галоперидону выпей. СРОЧНО!
Аноним 20/04/17 Чтв 15:56:46  976908
>>976602
>ООП все, кто связан с программированием, знают
Сижу на програмаче, следовательно я связан с программированием. я не знаю ООП (ни единой секунды не писал на объектно-ориентрированном языке, только процедурные и фукнциональные), следовательно это твое утверждение ложно.
Аноним 20/04/17 Чтв 16:37:11  976931
>>976908
Первая посылка ложна, ты не связан с программированием. Ты хлебаешь борщи и участвуешь в срачах.
Аноним 20/04/17 Чтв 18:11:51  976975
>>976908
Ты как минимум очень ограниченный человек, который имеет ноль интереса к своей профессии. К программированию ты действительно имеешь мало отношения, ибо не имеешь понятия о концепциях, принятых в большинстве современных языков, даже если они чем-то плохи.
Аноним 20/04/17 Чтв 19:37:57  977017
>>976908
>я не знаю ООП (ни единой секунды не писал на объектно-ориентрированном языке, только процедурные и фукнциональные)
То, что ты не писал с ООП подходом, что кстати сомнительно, еще не означает, что ты не знаешь ООП.
Тем более, что ты
>Сижу на програмаче
И минимум что-то читал тут о ООП.

>следовательно это твое утверждение ложно
Увы, но твои аргументы инвалид, и логический вывод мягко говоря сломан.
Что косвенно свидетельствует о твоей недалекости в целом, и в отношении процедурных\функциональных языков в частности.
Аноним 20/04/17 Чтв 20:24:14  977030
>>976931
>>976975
>>977017
)))
Аноним 20/04/17 Чтв 21:26:29  977055
Screenshot at 2[...].png (25Кб, 1173x878)
Карго превращает каждый проект в локальное хранилище всех существующих либ раста, а в конце обязатльно что-то ломается
Аноним 20/04/17 Чтв 23:21:29  977090
>>977055
Это издержки любой централизованной иuild системы.
Я как вижу эти зеленые надписи про downloading-compiling, так сразу чувство, что сейчас начнется какая-то мясорубка с кишками и кровью, больно это напоминает руби, а я в свое время наебался с последним, когда для запуска одного скрипта нужна тысяча гемов ну или хз сколько и что-то всегда ломается. При этом я был не разработчиком, но конечным пользователем тех скриптов и с того времени руби для меня - ругательство.
Аноним 20/04/17 Чтв 23:21:57  977091
>>977090
не build системы а системы управления пакетами, сорри тупанул.
Аноним 20/04/17 Чтв 23:49:21  977098
>>977055
Лучше, конечно, тащить все зависимости в проект и устраивать кровь с кишками с помощью вендоринга, а потом сидеть по 5 лет на старой версии библиотеки, которая течет и работает хромая.
Аноним 21/04/17 Птн 00:02:37  977106
>>977098
Карго безальтернативно устанавливается в $HOME/.cargo, так пускай складывает либы в ./cargo/lib как rlib.so.1.2.1, а не компилит для каждого проекта по 200 мб
Аноним 21/04/17 Птн 00:12:05  977110
>>977106
Это растц релейтед проблема.
Аноним 21/04/17 Птн 11:28:55  977204
>>977098
Вообще-то практика показывает, что лучше, т.к. это гарантирует сборку и запуск. Обновление либ - дело мейнтейнера проекта, если проект поддерживается, либы будут обновляться.
А иначе твой проект завязывается на нечто от тебя не зависящее, либа может изменить интерфейс без обратной совместимости и твой проект сломается или просто со временем что-то перестанет собираться.
Аноним 21/04/17 Птн 11:39:01  977208
>>977055
https://github.com/AngryLawyer/rust-sdl2
Вот это получилось собрать на
cargo-0.17.0-nightly (f9e5481 2017-03-03)
rustc 1.16.0 (30cf806ef 2017-03-10)

Ну хотя бы SDL работает, можно попробовать что-то сложнее факториала сделать
Аноним 21/04/17 Птн 11:46:29  977211
>>977204
>Вообще-то практика показывает, что лучше, т.к. это гарантирует сборку и запуск. Обновление либ - дело мейнтейнера проекта, если проект поддерживается, либы будут обновляться.
>А иначе твой проект завязывается на нечто от тебя не зависящее, либа может изменить интерфейс без обратной совместимости и твой проект сломается или просто со временем что-то перестанет собираться.

Стократно плюсую.
Жаль, линуксоидам застрявшим во временах 2мб винчестеров, этого не понять.
Аноним 21/04/17 Птн 12:54:49  977221
>>977204
>>977211
Написал хуйню @ сам себе приплюсовал.
В нём можно указывать тянуть только определённую мажорную версии с минорными апдейтами, ничего не ломающими, либо вообще захардкодить одну.
Но гоферу не понять.

Хотя гау то же делает с своей GOPATH, у явы каждый пакетный менеджер тащит миллиард зависимостей для себя, в дотнете как в расте, а у динамикопитушков вообще каждый проект — своё хранилище зависимостей.
Аноним 21/04/17 Птн 13:00:40  977222
>>977221
Растц может зафейлиться если ему подсунут rlib'у с той же версией что надо, но скомпилированную растц недельной давности.
Аноним 21/04/17 Птн 13:00:49  977223
>>977106
Я вот уже представляю себе: собрал такой пару десятков проектов, и вместо того, чтобы иметь возможность просто удалить папочки с билдовым мусором сидишь и рыскаешь в ~/.cargo/lib, где каждой библиотеки по 4-12 штук (разной битности, версии релиза, вида линковки, всякой упоротой жуйни вроде pgo и тд).
Аноним 21/04/17 Птн 13:06:06  977225
>>977222
Ну, в том же окамле такая же хуйня — но всё сделано в одном хранилище, как предлагает анон выше. Просто попробуй попользоваться такой хуйнёй.
Аноним 21/04/17 Птн 13:08:13  977226
>>977223
Эти проблемы вроде решает guix
Аноним 21/04/17 Птн 13:56:30  977247
>>977221
>Но гоферу не понять.
Это ты себя имеешь ввиду, или что?
Речь о rust е идет вообще-то.

>В нём можно указывать тянуть только определённую мажорную версии с минорными апдейтами, ничего не ломающими, либо вообще захардкодить одну.
Тогда все ок.
Аноним 21/04/17 Птн 13:59:10  977248
>>977223
>Я вот уже представляю себе: собрал такой пару десятков проектов, и вместо того, чтобы иметь возможность просто удалить папочки с билдовым мусором сидишь и рыскаешь в ~/.cargo/lib, где каждой библиотеки по 4-12 штук (разной битности, версии релиза, вида линковки, всякой упоротой жуйни вроде pgo и тд).

А это не норм нефига.
Нафуфик оно так сделано?
Зависимости должны лежать рядом с конкретным проектом.
Аноним 21/04/17 Птн 14:14:31  977253
У меня вопрос, а можно ли на винде да, да сделать так, чтобы все устанавливалось не в юзерскую директорию, а куда скажешь, например, в c:\rust.
Аноним 21/04/17 Птн 14:24:47  977259
>>977253
https://github.com/rust-lang-nursery/rustup.rs/#working-with-custom-toolchains-and-local-builds

Ну ещё посмотри первый пункт в разделе про переменные среды.
Аноним 21/04/17 Птн 14:25:19  977260
>>977248
Ну так они и лежат.
Аноним 21/04/17 Птн 17:46:54  977378
Какой тип принимает Vec::index?
Аноним 21/04/17 Птн 18:18:13  977389
>>977378
Все индексы (массивов, векторов, хуекторов) в насте только в usize.
Аноним 21/04/17 Птн 18:19:36  977390
>>977389
>насте
В расте, лул, простите меня, Насти.
Аноним 21/04/17 Птн 18:45:18  977416
>>977260
>Ну так они и лежат.
И в чем тогда проблема?
Аноним 21/04/17 Птн 18:54:27  977420
>>977416
В том что какой-то петушок лезет из своего говно-свинарника с ахуительными советами по архитектуре.
Аноним 21/04/17 Птн 22:22:50  977504
Screenshot at 2[...].png (37Кб, 524x483)
Почему элемент енума в match не компилится без &?
Говорит
Item::A => 'A',
^^^^^^^ expected &Item, found enum `Item`
= note: expected type `&Item`
found type `Item`
Аноним 21/04/17 Птн 22:49:22  977511
>>977504
Наверно потому что &self.world?
Аноним 22/04/17 Суб 06:37:15  977606
>>977420
Тебе уже всюду гоферы чудятся, параноик.
К врачу сходи.
Аноним 23/04/17 Вск 01:04:48  978136
Screenshot at 2[...].png (24Кб, 497x334)
Так надо структуры в енуме хранить или есть способ покруче?
Аноним 23/04/17 Вск 04:37:20  978212
>>978136
Мне вообще вся твоя затея с Enum-ом тут не нравится.

Может лучше сделать trait Cell с методом test() и передавать туда разные реализации этих cell?

https://doc.rust-lang.org/1.0.0-beta/book/static-and-dynamic-dispatch.html#dynamic-dispatch
Аноним 23/04/17 Вск 04:49:29  978213
>>977204
Это одна из проблем хаскеля. Там уже и stackage завезли из-за этого, но выглядит это как снепшоты hackage периодические. Как если бы crates.io снепшотили весь целиком и проекты переезжали с одного снепшота на другой. Без этого вообще ад, сегодня компилируется, а завтра майнтайнер мелколибы сломал совместимость на какой-нибудь FreeBSD и сам не заметил.

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

cargo это вообще самое лучшее, что есть в расте вообще, и лучший из менеджеров зависимостей.
Аноним 23/04/17 Вск 04:55:12  978214
По поводу того, что зависимости хранятся в каждом проекте отдельно.

ИМХО, эту проблему нужно решать по аналогии с ccache. Пусть все остается как есть, но еще будет незаметный для юзера кеш, куда будет все собранное складироваться, если нужно линковаться в местный билд симлинком. Малоиспользуемые библиотеки пусть вычищаются. Если симлинк из-за этого сломался, можно и пересобрать. В Rust же пилят инкрементальную компиляцию, у нее кеш будет не глобальный ли случайно?
Аноним 23/04/17 Вск 10:59:15  978251
>>978213
>если бы crates.io снепшотили весь целиком
Принцип иммутабельности as is, чтобы что-то добавить, надо удалить и пересоздать. Все правильно.
Аноним 23/04/17 Вск 23:31:14  978789
MUTABLE BORROW
@
MUTABLE MORE THAN ONCE

Сколько не читай доки, ничего написать на этом языке не представляется возможным...
Аноним 24/04/17 Пнд 09:41:37  978961
>>978789
Для больше чем 1 мутабельной ссылки есть синхронизационные примитивы, или ансейф, если ты самый умный.
Аноним 24/04/17 Пнд 10:48:33  978996
>>978136
>способ покруче
необязательно именовать поля, можно просто Player(PlayerData), доставать данные - как из кортежа (х.0)
Аноним 24/04/17 Пнд 10:50:50  978998
>>978789
>ничего написать на этом языке не представляется возможным
На Х-ле есть даже специальный блог пост для тех, кто язык как бы осилил, но вообще не вдупляет как написать приложение. Может и для раста такой завезли, поищи.
Хотя самый нормальный совет - читай исходники других проектов.
Аноним 24/04/17 Пнд 17:50:37  979224
Screenshot at 2[...].png (82Кб, 815x859)
>>978961
Как сделать swap или хотя бы заставить set() работать в одной функции с get() чтобы можно было клонировать?
Аноним 24/04/17 Пнд 17:55:31  979227
>>978996
Не похоже на хорошую практику, даже Pos(i32,i32) с 0,1 вместо x,y как-то стрёмно смотрится
Аноним 24/04/17 Пнд 19:23:29  979263
>>979224
>Как сделать swap
fn swap<T>(a: T, b: T) -> (Pos, Pos) { (b, a) }
Использовать так:
let (src, dst) = swap(src, dst);
Работать будет с чем угодно. Не благодари.
>или хотя бы заставить set() работать в одной функции с get() чтобы можно было клонировать?
Клонировать и так можно через .clone().
А так — просто вынеси self.get() из матча в переменную.

Вообще, нужно сделать руководство для нюфагов на картинках — я хз как еще заимствование объяснять.
Аноним 24/04/17 Пнд 19:24:05  979264
>>979263
>Pos, Pos)
Тоже на T заменить "для всего".
Аноним 24/04/17 Пнд 19:40:43  979273
>>979263
Не отвечай этому уебку пока он код не скинет нормально (энивэй твой свап это пиздос в его случае).
Аноним 28/04/17 Птн 22:58:06  981701
Sup, аноны, решил на расте чего-нибудь пописать. Очередной калькулятор не хочется, можете подкинуть идейку с гитхаба? Не прочь буду и покомиттить в рабочий проект
Аноним 29/04/17 Суб 00:05:51  981727
>What’s in 1.17.0 stable
>The story of Rust 1.17.0 is mostly one of small, quality of life improvements.

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

Глядишь, к 2.0 может и нормальный синтаксис запилят и HKT завезут.
Аноним 29/04/17 Суб 00:08:40  981729
Нет, все же сказочные долбоебы
>some unnecessary run-time parsing
some unnecessary run-time parsing блядь срать не снимая свитра

SocketAddr and IpAddr have some new conversions as well. Previously, you may have written code like this:

"127.0.0.1:3000".parse().unwrap()
Now, you can write

SocketAddr::from(([127, 0, 0, 1], 3000))
// or even
([127, 0, 0, 1], 3000).into()
This removes some unnecessary run-time parsing, and is roughly as readable, depending on your preferences.
Аноним 29/04/17 Суб 00:15:28  981734
>>981729
Что тебя смущает?
>>981727
До багзиллы и крестов и хкт не было. а синтаксис в любом случае лучше чем в жачкелях
Аноним 29/04/17 Суб 00:19:21  981738
>>981734
>лучше чем в жачкелях
niet вкусовщина
Аноним 29/04/17 Суб 00:26:31  981743
>>981738
>вкусовщина
Ну вот сам себе ответил. Не сделают.
Хотя ты всегда можешь сделать язык компилирующийся в раст (или хотя бы бэкэнд к хаскелю).
Аноним 29/04/17 Суб 00:42:52  981747
>>981734
Плез, в божественном синтаксис охуенен.
Аноним 29/04/17 Суб 00:46:31  981748
>>981734
Ах да, меня смущает эта задротская зацикленность не неважных вещах.
>some unnecessary run-time parsing
как будто код только и занимается этим и небо и Аллах и тепловая смерть Вселенной зависят от этой оптимизации, в которой говорится в комментариях к релизу.
Аноним 29/04/17 Суб 10:22:22  981835
>>981748
А ты хотел чтобы они тебе каждые 6 недель ахуенные релизы выкатывали? Такой цикл разработки нужен для вылизвания существующего кода.

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

а с этой новой хуиткой, не тратящей время на парсинг ип, можно писать убер быстрые сканеры диапазонов ип для локалхоста, ну чо ты
Аноним 29/04/17 Суб 14:05:28  981914
Раст когда-нибудь обгонит С?
Аноним 29/04/17 Суб 17:18:28  982031
>>981914
Он транслируется в LLVM байткод и обогнать C не может по определению.
Аноним 29/04/17 Суб 18:20:10  982070
>>982031
C тоже в него компилится. А в гнутом компилире компилится в их GIMPLE.
Аноним 29/04/17 Суб 20:08:16  982135
>>982031
Ходят слухи, что благодаря своей охуенной системе типов Rust теоретически может предоставлять LLVM информацию, которая позволит производить всякие продвинутые оптимизации. Так что с развитием и Rust, и LLVM вполне возможно, что Rust станет в местами быстрее сишечки/крестов.
Аноним 29/04/17 Суб 20:58:11  982151
LLVM - это хайпнутое г и он никогда не будет быстрее гцц или даже Borland C++
Может, за счет убер-системы (которая просто хитро переносит часть рантайма на время компиляции) он будет где-то быстрее С или плюсов, но это лишь частные случаи, где-то и Hsakell быстрее С, такие кейсы любят находить фанбои того или иного языка, но общая картина всегда будет такой, что языки более высокого уровня медленнее С/С++.
Аноним 29/04/17 Суб 21:01:38  982152
>>982151
> никогда не будет быстрее
Почему?
Аноним 29/04/17 Суб 21:07:09  982155
>>982152
Потому что высокоуровневость и скорость разработки всегда меняется на скорость выполнения.
На пыхе ты можешь за 20 минут что-то высрать даже будучи учеником пятого класса, но скорость будет меньше, чем у правильно написанного кода на С, решающего аналогичную задачу.
Аноним 29/04/17 Суб 21:14:08  982157
>>982155
Причем тут пхп? Я думал мы ллвм и гцц сравниваем. И гцц далеко не везде обгоняет ллвм/цланг.

> высокоуровневость
Что-то мешает компилятору высокоуровневого языка высрать такой же машинный код который высирает гцц?
Аноним 29/04/17 Суб 22:43:48  982179
А нахуй нужны эти кланги, ЛЛВМ?
Есть гцц, уже довольно давно. Какой смысл в этой херне?
Аноним 29/04/17 Суб 22:47:46  982180
>>982179
Для нового языка проще запилить фронт для llvm, чем пилить новый компилятор с нуля
Аноним 29/04/17 Суб 22:47:50  982181
>>982179
Подальше от Штульмана.
Аноним 29/04/17 Суб 23:21:25  982202
>>982135
Ну он уже местами быстрее судя по базовым тестам.
Аноним 29/04/17 Суб 23:27:35  982205
>>982151
Тогда почему кланг уже разъебывает гцц?
http://www.phoronix.com/scan.php?page=article&item=gcc7-clang4-jan&num=1
Аноним 29/04/17 Суб 23:45:18  982218
>>982157
Если говорить про php подобные, машинный код можно сделать только если вставить в бинарник интерпретатор целиком
Аноним 30/04/17 Вск 09:41:43  982283
>>982151
Ору с тебя. LLVM IR не высокоуровневее чем IR GCC (не помню как там он называется). Вся разница в том что инфраструктура LLVM более современная, универсальная и лишённая некоторых легаси-косяков GCC.
Ещё раз, для тупеньких: LLVM IR - не высокоуровневый язык. Изначально вся инфраструктура Clang + LLVM вообще создавалась для компиляции C, и уже потом LLVM стали использовать как бэкенд для других языков.
Аноним 30/04/17 Вск 13:04:53  982343
>>982205
>Тогда почему кланг уже разъебывает гцц?
Найти пример, где кто-то кого-то разъебывает всегда можно.
Например, самый быстрый сервер статических файлов написан вроде на D или Haskell, но это не значит, что в целом эти языки быстрее С (язык с GC в принципе не может быть быстрее языка с ручным управлением памятью).

>>982283
Высокоуровневый язык - это Rust.
LLVM - это просто высер. Для хипстеров штучка, понимаешь? Поигрался, м.б. написал свой компилятор для своей джавы, где вместо слова class будет хуй и тип не перед, а после идентификатора.
Аноним 30/04/17 Вск 13:06:54  982345
Да кстати Rust - это тоже высер для хипстеров, что видно даже по лого. Это для тех, кто хочет почувствовать себя ололо-инжинером, который манипулирует байтиками и управляет памятью через ансейф, но который при этом не осилил C/C++.
Аноним 30/04/17 Вск 13:26:51  982357
>>982343
Охуеть, какой - то чухан мало того, что несёт какой-то бред, да еще использует слово "хипстер", как оскорбление. Ты, блядь, и хипстера поди не видел в своём залупинске, а туда же. Аргументации 0 (ноль), компетенции 0 (ноль), а лозунгов и пафоса на серьезных щщах на весь тред хватит.
Аноним 30/04/17 Вск 13:31:25  982360
>>982357
А какая тебе нужна аргументация, если весь механизм владения-заимствования - это подпорка для скорбных умом, у которых на языках с ручным управлением памятью будут утечки. Этим товарищам на джаве бы писать, но они хотят ощутить себя системными архитекторами и вот для них придумали эту игрушку.
Аноним 30/04/17 Вск 13:36:54  982362
>>982345
Никакой хипстер не осилит раст, это вообще язык не для людей. С++ немного проще из-за мутабельности и слабой типизации, пока не дойдёшь до шаблонов, которые тоже не для людей и никто их не понимает полностью.
Аноним 30/04/17 Вск 13:39:56  982363
>>982362
>это вообще язык не для людей
Что в нем сложного?
Понял заимствование, смарт-указатели и все.
Проще, чем ловить секфолты.

> С++ немного проще из-за мутабельности
Так сложно вставить слово mut, да?

>слабой типизации
Слабая типизация создает только проблемы.
Аноним 30/04/17 Вск 14:12:28  982371
>>982363
>Что в нем сложного?
Правила видимости непостижимы, например.
Аноним 30/04/17 Вск 14:26:02  982377
В расте синтаксис ебанутый и отягощенный и совсем не однородный. Да и разве не было языков с линейными типами уже? Чем раст лучше них?
Аноним 30/04/17 Вск 14:58:51  982385
>>982343
Но там не один пример, а целая кипа примеров, где гцц сосет. Так что уж просто это скорее тенденция, чем исключение.
Аноним 30/04/17 Вск 15:01:30  982388
>>982360
>вот для них придумали эту игрушку.
Эта игрушка по скорости ни чем не уступает крестам, но при этом меморисейф, что является ключевой килер фичей.
Аноним 30/04/17 Вск 15:11:18  982395
>>982371
Блять, додик, что ты вообще делаешь в программировании? Это тоже самое , что shared, unique и weak указатели.
Аноним 30/04/17 Вск 15:51:59  982424
>>982357
Хипстер - это как раз тот, кто с умным видом втыкает в "современные технологии". Примеры говна, которое любит хипстота - это Scala (и обязательно с экстенсивным использованием scalaz), кложа и т.д. При этом ладно бы они действительно что-то в этом понимали, а то большей частью скидывают друг другу статьи на хабре "как функциональное программирование помогло нашей компании".
И Rust примерно для таких, кто хочет играться с байтиками, но на сях без секфолтов не может hello world написать.

>>982388
>Эта игрушка по скорости ни чем не уступает крестам
Ахахаха.

>>982385
Так можно взять почти любой яп с толстым рантаймом и сказать, что он пижже, потому что в некоторых случаях он будет оптимизировать решение. Обычно в таких примерах просто специально оставляют простор для оптимизации и потом говорят, что их (язык, компилятор) быстрее.
Аноним 30/04/17 Вск 16:15:54  982432
>>982360
>Динамикодриснявая вебмакака не палится
Аноним 30/04/17 Вск 17:15:55  982463
>>982395
>Это тоже самое , что shared, unique и weak указатели.
Мы придумали проблему а теперь будем с ней бороться.
Аноним 30/04/17 Вск 18:09:39  982491
>>982424
Ты где толстый рантайм у раста увидел-то?
Аноним 30/04/17 Вск 18:11:21  982492
>>982362
Ну ты-то явно ни Rust и C++ дальше хелловорода не знаешь. Как будто в Rust нет мутабельности, лол.
Аноним 30/04/17 Вск 18:16:06  982495
>>982360
Ох уж это раздутое чсв. Все такие охуенные, код сразу без ошибок пишут. Статическая типизация им не нужна, потому что зачем нам типобезопасность, мы и так код правильный пишем. Система владений-заимствований нам не нужна, потому что зачем нам безопасность работы с памятью, мы и так код правильный пишем. Охуеть просто, иди подойди к зеркалу и подрочи на себя, раз ты такой охуенный кодер.
Аноним 30/04/17 Вск 18:18:17  982497
>>982424
>Ахахаха.
Так и есть. У тебя врети что ли?
>>982424
>Так можно взять почти любой яп с толстым рантаймом и сказать, что он пижже, потому что в некоторых случаях он будет оптимизировать решение.
Повторюсь тут в 80% случаев ллвм нагибает гц.
Аноним 30/04/17 Вск 18:19:36  982498
>>982343
>и тип не перед, а после идентификатора.
Я тебе сейчас секрет открою, но везде так делают потому что:
а) Компактнее записывать модификаторы (вместо всяких const out int hui просто var hui);
б) Легче и быстрее парить;
в) Лаконичнее живёт с выводом типов.
Даже в твоём говне так это работает.
>>982463
>в говнище вообще нет возможности контролировать указатели, нету и проблемы, кококо

Жеманный опять трет топит, луль.
Аноним 30/04/17 Вск 18:19:53  982499
>>982495
Ага, а потом годами выскребают зеродеи.
Аноним 30/04/17 Вск 18:20:39  982500
>>982498
>парить
парсить
ох уж эти хипсторские вэйперы
Аноним 30/04/17 Вск 18:20:41  982501
>>982345
Дело не в осилил или не осилил C/C++, а в том что работать с Rust тупо приятнее (не говоря уже о том что безопаснее). Это касается как самого языка (клёвая система типов, нормальный match, if/match as expression, модули, гигиенические макросы и т. д.), так и инфраструктуры (нормальный пакетный менеджер, например). Если есть возможность использовать инструмент который использовать приятнее, то что в этом плохого, м?
Аноним 30/04/17 Вск 18:28:43  982509
>>982343
LLVM - это охуенно мощная инфраструктура, в разработку которой было положено дохуища человекочасов. И сейчас LLVM гораздо более зрелая и удобная в использовании система, чем GCC. Начиная с того что LLVM легче расширяется и имеет более внятный дизайн и заканчивая тем что у LLVM в принципе есть внятная документация.
Скажем если кому-то нужен компилятор той же сишки для кастомного процессора (и это не выдуманная мной задача), то самый адекватный вариант - скачать сорцы LLVM, открыть документацию по написанию бэкендов к LLVM и сесть писать бэкенд. Документация вполне ок, хотя информации конечно меньше чем для написания фронтендов.
Аноним 30/04/17 Вск 18:31:37  982512
>>982509
Ты самое главное забыл — LLVM лицензирована MIT, а не ЖоПаеЛью, и Шульман со своими юристами не придёт к тебе если ты решишь продавать и распространять свой софт не открывая исходников.
Аноним 30/04/17 Вск 18:32:42  982514
>>982500
ставлю тип после идентификатора, законом не запрещено, парсить на 95% быстрее и легче
Аноним 30/04/17 Вск 18:33:17  982515
250px-Rms-hate.jpg (20Кб, 250x252)
>>982512
>Шульман
Штульман* конешно
Аноним 30/04/17 Вск 18:36:01  982517
>>982514
Иди лучше к жавадаунам, они до сих пор пишут AbstractSingletonProxyFactoryBean<Hui, Zalupa> kek = AbstractSingletonProxyFactoryBean<Hui, Zalupa>(new AbstractSingletonProxyFactoryBean<Hui, Zalupa>(), new AbstractSingletonProxyFactoryBean<Hui, Zalupa>());

Скоро у пайка начнется деменция и в говне настанут такие же темные времена.
Аноним 30/04/17 Вск 18:43:10  982525
>>982517
>AbstractSingletonProxyFactoryBean<Hui, Zalupa> kek = AbstractSingletonProxyFactoryBean<Hui, Zalupa>(new AbstractSingletonProxyFactoryBean<Hui, Zalupa>(), new AbstractSingletonProxyFactoryBean<Hui, Zalupa>());
Охуенно же.
Аноним 30/04/17 Вск 18:51:00  982527
>>982517
даже у жавадаунов уже var kek = ..., разве нет?
Аноним 30/04/17 Вск 18:58:23  982533
>>982527
Так меньше символов и меньше оплата
Аноним 30/04/17 Вск 19:18:23  982551
>>982527
Нет, и в ближайшие 3-4 года до жявы 10 не предвидится.
Аноним 30/04/17 Вск 19:19:12  982554
>>982377
Двачую этого.
Аноним 30/04/17 Вск 19:29:40  982563
>>982377
Ну был и есть ATS. Официальный саппорт и форум на епонском, доков 0, только примеры факториалов, на языке писать без выдрачивания теорката нереально (он куда сложнее хачкеля, больше похож на теоремпрувер чем на яп) — тайная военная разработка страны восходящего солнца. Теперь как сам думаешь, чем?
Аноним 30/04/17 Вск 20:31:06  982622
>>982517
Тебе видать какие-то нехорошие жабисты попались, когда еще маленьким был, вот и осталась фобия хотя если судить по тому что пишешь, тот еще джуниор. Можешь показать на проекте в гитхабе, за какие места тебя трогало?
Аноним 30/04/17 Вск 20:35:02  982624
>>982563
Помню помню, этот язык с нескушными идентификаторами вроде viewt@ype и с различным цветовым кодированием разных категорий кода.

Даже порывался учить, но по модулю ебанутости автора не дотянул.
Аноним 30/04/17 Вск 23:28:15  982675
>>982424
Каночные хипстеры пишут на Ruby и Java(coffe)script в Sublime Text/VIM.
Аноним 30/04/17 Вск 23:43:17  982681
>>982675
Каноничные - да, но надо же орать, что не хипстор и что твоя технологие неебаться инжынерная и ты прямо байтики ксоришь и у тебя все на указателях, естественно, умных, а еще иммутабельность и вообще.
Аноним 01/05/17 Пнд 02:13:32  982732
>>982675
Я скажу больше, у каждого свои представления о каноничных хипстерах. Границы определяемого расширяются с изменением определяющего. Вот у нас в компании, уж настолько настолько хипстерский народ (разной временной градации от протохипстеров с зеркалками до постхипстеров с подворотами итп, а все туда же - нет, да всплывет жалоба на хипстеров. Хоть ультрафильтр заводи.
Аноним 06/05/17 Суб 16:46:02  985871
Не могу понять, как вернуть введенный с клавиатуры код в срез и вернуть его из функции mesinput. Лучший ли это способ вообще - возвращать ввод с клавиатуры в качестве среза, чтобы потом отправить его через tcp? Код пикрелейтед.
Аноним 07/05/17 Вск 00:07:59  986142
Я смотрю на мак[...].webm (3673Кб, 480x360, 00:00:58)
>>985871
>Этот код
Пиздец, я думал раст лучшая замена крестам, а тут та-же ебанная лапша.
Аноним 07/05/17 Вск 00:13:43  986144
>>986142
Этой какой-то цпп с синтаксисом раста. С кучей ошибок и, как результат, даже не скомпилируется.
Аноним 07/05/17 Вск 13:25:13  986286
d.png (20Кб, 835x107)
>>986144
>>985871
Додик, ошибки читай хоть.
Аноним 07/05/17 Вск 18:44:24  986460
>>986286
Это новый стиль жеманного, постить код в скриншоте и не реагировать на ответы, выше посмотри.

У нас тут вместо треда какая-то игра в мафию, только вместо мафии жеманный, лул.
Аноним 07/05/17 Вск 23:28:45  986603
>>963997
>>964005
Нахрена вам IDE, долбоёбы? Код пишут с помощью рук и мозга в первую очередь. Если проект насколько запутан, что в нём нельзя ориентироваться без IDE - это говнокод, который надо выкинуть нахуй. Собирать нужно в консоли, текстовых редакторов с подсветкой для раста предостаточно, во многих даже автокомплит и линтинг есть.
Аноним 07/05/17 Вск 23:37:47  986606
>>986603
Ебать жеманного прорвало.
У говна иде того же качества, что сейчас у раста. а плагин для жидеи кстате лучше гогланда, или как минимум его билда месячной давности
Аноним 07/05/17 Вск 23:42:03  986607
>>986460
>и не реагировать на ответы
Такие только со своим ЭКСПЕРТНЫМ мнением вкатываются, и с хуями в ротешнике молча выкатываются.

>>986603
>с помощью рук и мозга
Как ты тогда его пишешь, если не обладаешь ни тем ни другим.
Аноним 07/05/17 Вск 23:52:35  986608
>>986607
>Уряря толстую жопку порвало
Аноним 07/05/17 Вск 23:58:19  986609
>>986608
Аноним 08/05/17 Пнд 00:00:04  986611
>>986609
Типа маскот гау 2.0 — сусли-циклоп?
Тонка
Аноним 08/05/17 Пнд 03:25:09  986667
>>986460
Да тут пол-треда, если не больше - "жеманные". Как мимо пройти и не зайти, поглумиться.
Аноним 10/05/17 Срд 21:10:50  988399
rust. sql embedded. sqlite. what?
Аноним 10/05/17 Срд 21:20:14  988404
>>988399
Ты долбич?
Аноним 12/05/17 Птн 13:36:24  989218
Кто-нибудь может пояснить за обработку ошибок в Rust? Пытаюсь я к примеру открыть файл:

let mut p = File::open("dat.txt");

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

match p {
Ok(pa) => println!("{:?}",pa),
Err(_) => main(),
}

И дальше я пытаюсь открыть файл и прочесть его

let mut buffer = String::new();
p.read_to_string(& mut buffer).expect("No reading");

Но компилятор пишет:
main.rs:34:10: 34:38 error: no method named `read_to_string` found for type `core::result::Result<std::fs::File, std::io::error::Error>` in the current scope

Вопрос: match каким-либо образом преобразует тип переменной p? Если использовать unwrap(), то такой ошибки не возникает. Или я ошибся с самим применением match? В офф. документации, не объяснен доступным языком этот момент.
Аноним 12/05/17 Птн 14:13:51  989233
>>989218
Читай файл в успешной ветке матча, и замени p на pa, тебе же компилятор прямо написал.
Аноним 12/05/17 Птн 16:12:36  989321
>>989233
match p {
Ok(pa) => pa.read_to_string(& mut buffer),
Err(_) => main(),
}
Теперь такая ошибка:
main.rs:27:2: 30:3 error: match arms have incompatible types:
Насколько я понял match при этом должен возвращать одинаковые по типу значения, но как это сделать, я не знаю.
Аноним 12/05/17 Птн 16:35:26  989339
>>989218
https://play.rust-lang.org/?gist=a61a2ab8d483ed120b9ff4bd6298f885&version=stable&backtrace=1
Аноним 12/05/17 Птн 16:42:57  989345
>>989339
Спасибо за помощь.
Аноним 12/05/17 Птн 18:35:08  989396
>>989345
https://play.rust-lang.org/?gist=78cdf63a1d850b61ea2a5c909547c065&version=stable&backtrace=1 match версия. Ветки match обрабатываются без проблем, потому что обе возвращают нихуя.

https://doc.rust-lang.org/book/if-let.html тут подробнее про if let
Аноним 12/05/17 Птн 20:01:51  989494
>>989396
Так даже лучше. Спасибо, что разъяснил.
Аноним 12/05/17 Птн 20:07:33  989496
>>989396
>thread 'main' has overflowed its stack
>fatal runtime error: stack overflow
Мало того что код говняный (из-за ублюдского синтаксиста, твоей вины нет), так ещё падучий.
Аноним 13/05/17 Суб 00:03:52  989709
Добрейший вечерочек, уважаемые. Как там у вас с IDE в 2017 году?
Аноним 13/05/17 Суб 00:07:25  989712
>>989321
> Err(_) => main()
Ты что больной?
Запускай свою хуйню в цикле и выходи в ветке ok, а в альтернативной выводи сообщение об ошибке.
Иначе ты просто уйдешь в рекурсию. И вообще, какой придурок может рекурсивно вызывать main, сколько живу а такого наверное не видел.
Аноним 13/05/17 Суб 00:08:22  989714
>>989709
Юзаю плагин для eclipse, все вполне нормально автокомплитится.
Аноним 13/05/17 Суб 00:09:42  989716
>>989496
>челик пытается открыть файл которого нет
>потом вызывает эту функцию (причём точку взода) бесконечно
Ору бля.
В говне такое тоже не сложно делается, расслабься.
Аноним 13/05/17 Суб 00:13:36  989722
>>989709
Плагин для идеи уже в отличном состоянии — всё, от рефакторингов до автокомплита и линтинга с отслеживанием лайфтаймов уже есть (только вложенные макросы парсить не умеет), скоро даже дебуггер даже будет.
Алсо, есть RLS если не хочешь жаваподелий, с примерно тем же функционалом (но вообще не работает с макросами и анализов, нужно поебаться с настройкой и у линтера явно меньше).
Аноним 13/05/17 Суб 02:17:06  989810
>>989716
>В говне такое тоже не сложно делается, расслабься.
Такое можно сделать почти на любом языке, нужны только кривые руки, ничего более.
Аноним 13/05/17 Суб 19:51:05  990074
>>989712
Я знаю, что использовать рекурсивный вызов функции является злом, но никак не могу понять как сделать так, чтобы при неверном вводе предлагалось ввести текст заново, а не делать panic.
Аноним 13/05/17 Суб 20:58:22  990116
>>990074
https://doc.rust-lang.org/book/guessing-game.html самый древний туториал по расту как раз это и объясняет.
Аноним 13/05/17 Суб 22:16:05  990136
>>990074
Я же вроде написал - делай это в цикле и выходи с него при успехе.
Аноним 18/05/17 Чтв 21:54:30  992960
Помогите с TOML. Пытаюсь выполнить cargo build и выдает couldn`t parse as TOML. Насколько я понял файл TOML сгенерирован самим cargo для одной из зависимостей. В чем проблема? В cargo самой программы в [dependencies] только строка hyper="*".
Аноним 18/05/17 Чтв 22:11:04  992973
>>992960
Да нет, долбоёб, он твоим больным мозгом генерируется. Сначала ты стёк переполнял рекурсией входной точки, теперь в заголовки конфигово томла пихашь куски кода.
Аноним 18/05/17 Чтв 22:18:18  992978
>>992973
Шизик! Шизик!
Аноним 18/05/17 Чтв 22:42:26  992990
>>957553
иди нахуй со своим NT-говном и миниксом с овердохуя сисколлов. в редоксе ровно 31 сисколла, там даже сокеты через open создаются, как файлы. больше не нужно.
Аноним 18/05/17 Чтв 22:44:26  992991
>>992960
rm -rf ~/.cargo/registry сделай
Аноним 18/05/17 Чтв 22:50:28  992998
>>992978
Ну так это ты и есть, лол.
Минутка грамотности: генерируются .lock файлы, а не томлы, ti obosralsya.
Аноним 18/05/17 Чтв 22:52:31  993001
>>992960
>>992991
так стоп падажи ебана, ты что либу time пытаешься установить?
Аноним 19/05/17 Птн 10:46:41  993197
>>993001
Да
Аноним 19/05/17 Птн 15:46:33  993323
>>993197
И зачем нам помогать тебе заниматься фистингом?
Аноним 19/05/17 Птн 19:49:34  993449
blob (72Кб, 768x596)
>>993197
зависимости на библиотеки нужно добавлять в Cargo.toml своего проекта, cargo install ставит некоторые програмки типа rustfmt и плагинов под cargo, но не либы
Аноним 19/05/17 Птн 20:04:00  993454
>>956909 (OP)
Друзья, раст мертв при рождении , переходите лучше в Golang тред, пока не поздно!
Аноним 19/05/17 Птн 21:09:31  993486
>>993454
golang
>gc
>дженериков нет
>мутексы не связаны с данными, которые они охраняют
>проброс ошибок по стеку анальная мука
>неюзабелен для написания драйверов
>нет паттерн матчинга
>система типов какая-то параша
>компилятор не может доказать отсутствие одновременного доступа к не-атомным данным
>код сложнее хеловорлда на голанге похож на вырвиглазный кал
>...
идеальный язык для вебмакак. что в голанге хорошего, это то, что он простой и что в нем искоробки forkjoin
Аноним 19/05/17 Птн 21:48:31  993505
Не так уж много языков со столь уродским синтаксисом. Такой-то перл 21 века.
Аноним 20/05/17 Суб 00:53:09  993598
>>993505
Ваше мнение очень важно для нас
Аноним 20/05/17 Суб 18:21:04  993872
>>993454
Аноним 21/05/17 Вск 17:45:27  994322
От раста будет профит, если мне хочется ради фана васянить свою 2D rpg на нём, а не на сях?
Аноним 21/05/17 Вск 17:49:56  994326
>>994322
На питоне или жсе нахуячь. В расте ты будешь трахаться с заимствованием и всякой низкоуровенной отрисовкой (которая очень нужна в твоей 2д залупе). а вообще, иди ешь торты.
Аноним 21/05/17 Вск 18:08:32  994340
2017-05-21 1801[...].png (80Кб, 1920x1080)
>>994326
>В расте ты будешь трахаться с заимствованием и всякой низкоуровенной отрисовкой
То, что мне и нужно.
HelloWorld готов, теперь можно и изъёбствами языка обмазаться.
Аноним 21/05/17 Вск 18:40:34  994357
>>994340
пишу в свободное время игрушку поигратся на вулкане на расте, раст таки заебись, советую
Аноним 22/05/17 Пнд 00:17:55  994514
Аноны, кто учит раст, радуйтесь, у вас есть cargo - сама охуенная система сборки и управления зависимостями, сеьёзно. Я тут вкатываюсь в кложу, язык для своих целей ящитаю годный, писать на нём приятно, но вот сборка это ад, по сравнению с растаманским cargo и даже питонячьим setuptools. У меня всё.
Аноним 22/05/17 Пнд 00:25:18  994516
>>994514
gradle для кого сделали?
Аноним 22/05/17 Пнд 05:33:50  994593
>>994514
И чем он лучше lein?
Аноним 22/05/17 Пнд 08:10:14  994603
>>994514
На большинстве статически типизированых языков сборка это ад. Либо у тебя длиннющие и неудобные makefile.am, либо cmakefiles.txt, где забываешь уже через полгода что для чего инклудил. В мире java это хотя бы имеет более человеческое лицо, спасибо jetbrains за труды.
Аноним 22/05/17 Пнд 11:21:10  994656
>>994516
Жява-энтерпрайз-оверинжиниред-говнище.

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

>>994603
При чём тут статика-то, долбоёб? Это у всех компилируемых языков с легасиговном вместо системы сборки такая проблема.

В тех же плюсах (священное поприще легасиговна) дохуя билд систем вроде Qbs и meson, которые по большому счёту не сильно-то и уступают cargo.
Аноним 22/05/17 Пнд 13:17:14  994687
>>994603
Ну я пока для упражнений из K&R накатал скрипт на петоне который генерирует ниндзя-файл. Очень удобно и прозрачно, вообще в последнее время часто вместо систем сборки использую самописные скрипты, потому что мне нравится полностью контроллировать процесс сборки. Вот в leiningen я не чувствую что я вообще что-то контроллирую, какая-то непонятная медленная не работающая так как мне нужно магия. Попробую в Boot вкатиться, говорят, он получше.
Аноним 22/05/17 Пнд 13:21:06  994688
>>994656
Вот огромная проблема всех этих крестовых билд-систем в том, что нет какого-то единого репозитория пакетов, как в расте. Так что или клади зависимости в git submodules, или довольствуйся теми пакетами, которые есть в репозитории используемой билд-системы, или сам упаковывай пакеты, или я не знаю что ещё. В расте же сделали сразу по-человечески, и это охуенно.
Аноним 22/05/17 Пнд 14:08:27  994712
>>994688
Дык я не спорю, я это говорил к тому, что жто не статики проблема.
Есть же кроме этого тягатели зависимостей с гитхаба по тегам и версиям.
Скоро ещё мб осилят подход как в том же гредле — указывать источники зависимостей.
Аноним 26/05/17 Птн 06:02:08  996456
Бомбану во имя Аллаха.
Аноним 03/06/17 Суб 01:44:09  1000296
Есть способ получше найти самое большое число из тех же цифр?

let number: u64 = 9875543221;
let mut chars = number.to_string().chars().collect::<Vec<char>>();
chars.sort_by(|a, b| b.cmp(a));
chars.into_iter().collect::<String>().parse::<u64>().unwrap()
Аноним 03/06/17 Суб 10:39:37  1000343
>>1000296
Определенно есть способ быстрее.

Ты критерий лучшести задай.
Аноним 06/06/17 Втр 00:04:30  1001734
Что это за хрень получается? Компилятор говорил, что для &&{integer} нет оператора ==, добавил две звёздочки - работает. Ничего не понял.
Аноним 06/06/17 Втр 12:27:44  1001903
>>1001734
Мудило с картинками, ты опять на связь выходишь?
>что для &&{integer} нет оператора ==, добавил две звёздочки - работает
Наверно потому что звездочка перед идентификатором означает разыменование указателя/ссылки.
Аноним 06/06/17 Втр 20:43:52  1002203
>>1001734
https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.filter
Аноним 07/06/17 Срд 19:21:02  1002746
Компилятор раста написан на С++?
Фу, блять, какой позор.
Аноним 07/06/17 Срд 20:23:46  1002796
>>1002746
ллвм на цпп. растц на расте
Аноним 08/06/17 Чтв 18:34:58  1003231
>>1002746
Первая версия была на окамле, потом все на нем самом же.
Аноним 08/06/17 Чтв 22:09:50  1003334
>>1003231
Зачем тогда раст требует установленного MSVC++ ?
Аноним 09/06/17 Птн 00:27:48  1003376
>>1003334
Потому что ты - спермовор у спермы свой особенный и единственный линкер и набор библиотек (всякая символы для системных вызовов, динамические библиотеки и прочая хуйня без которой ты буквально хэловорд не соберешь).

Он собственно требуется всеми известными мне компиляторами (врде д, пони, окамла). Разве что го-велосипедисты написали свой, который срет бинарями хэловордов по 10 мб на которых любой дизасемблер падает с ООМ.
Аноним 09/06/17 Птн 09:19:20  1003436
>>1003376
>го-велосипедисты написали свой
Вот это мне нравится.
Аноним 09/06/17 Птн 12:09:20  1003502
>>1003436
>>1003376
>который срёт бинарями хэловордов по 10 мб
>и хуй тебе а не нормальный dead code elimination, будем бить по рукам за неиспользованные импорты
>хуй тебе а не link time optimization, profile guided optimization, межпроцедурный анализ и всё остальное, прямо или косвенно требующее поддержки линкера
Да мне это тоже нравится, братишка.
Аноним 12/06/17 Пнд 03:19:45  1004765
Поржал с вас.

Мимо эйфеле-господин
Аноним 12/06/17 Пнд 13:52:55  1004857
Поржал с эйфеле-го-раст борщехлёбов.
Мимо-цпп-боярен
Аноним 12/06/17 Пнд 17:58:42  1004970
>>1003502
Лучше жрать говно, чем обмазываться сишным дерьмом.
Аноним 12/06/17 Пнд 22:37:26  1005115
>>1004970
Суть в том, что сишный линкер как раз таки заебись.
Аноним 13/06/17 Втр 17:25:22  1005400
14968322186752.png (165Кб, 512x512)
>>1005115
>сишный линкер как раз таки заебись
Аноним 13/06/17 Втр 23:31:40  1005490
>>971909
snake_case, CamelCase, всё в куче, что за пиздец.
Аноним 13/06/17 Втр 23:33:25  1005492
>>1005400
Ну да, не то что в расте. Можно пельмени сварить там, или чай заварить, пока всё линукется - разработчик никогда не останется голодным
Аноним 14/06/17 Срд 13:57:54  1005753
>>1005492
Да в настах и сих дело не в линкере. И всякие gccgo от наличия нормального компоновщика е сильно проседает в скорости компиляции.

>>1005490
snake_case для имен функций и переменных и CamelCase для типов и структур — самое лучшее сочетание евер.
Аноним 14/06/17 Срд 14:26:06  1005760
>>1005753
>И всякие gccgo от наличия нормального компоновщика е сильно проседает в скорости компиляции.
Ты бы ещё рассказал ему что си имеет текстовый препроцессор, каждый раз заново парсит все инклуды и просто не укладывается в какой нибудь LL(1) с лукапом в 1 символ как его говно, а расту для чека каждого лайфтайма нужно обходить графы всех затронутых функций и объектов для каждой хуитки и заниматься прочим статическим анализом.

>>1005490
Тем временем, в говне из модуля функции, структуры и (!) переменные (!) импортируются по регистру первой, сука, буквы. Повар, какого хуя ты вообще рот открываешь?
Аноним 18/06/17 Вск 20:27:02  1008074
Бляя, растоблядки, объясните мне, в чём разница между immutable variable и const?
Всякие пидоры на стэковерфлоу пишут "НУ ТИП ЭТ ТЫ ПРИВЫК К С++!!!))) В РАСТЕ ВСЁ ПО-ДРУГОМУ!))) ПЕРЕМЕННЫЕ ТИПА НЕ МЕНЯЮТСЯ))"
Какого хуя, если variable - переводится как ПЕРЕМЕННАЯ, и дословно обозначает какие-то изменения во времени. Какого хуя всё так тупо?
Аноним 18/06/17 Вск 21:36:42  1008108
>>1008074
Если бы Страуструп стал женщиной и его отымел Милнер, то вместо C++ появился бы Rust.
В общем, я что сказать хотел... Если тебе нужен ML, то юзай ML. Если нужен C++, то юзай D.
Аноним 18/06/17 Вск 22:32:51  1008128
>>1008074
const в расте — это как дефайн в сях, просто подставляемое значение.
И var в русте нет, здесь только let, шо как бы намекает дебилам как ты.
Аноним 18/06/17 Вск 22:35:02  1008130
>>1008108
>Если тебе нужен ML, то юзай ML. Если нужен C++, то юзай D.
Все ML-и дохлые, к сожалению, даже окамл, который хз сколько лет развивают. Он сейчас только с точки зрения научного интереса тыканья палочкой.

Д — я надеюсь когда нибудь его зотя бы до состояния раста допилят, языку десять лет а он сырой как твоя мать на концерте Маликова.
Аноним 18/06/17 Вск 22:45:10  1008134
>>1008130
>Все ML-и дохлые
PolyML недавно релизнулся. Правда, Юникод так и не завезли.
Аноним 19/06/17 Пнд 00:18:04  1008166
>>1008134
Он релизнулся раньше чем ты родился, так с того времни никуда не сдвинувшись с SML 97, куда там.

Если хочется ML-я — тут есть окамл который хотя бы развивается, и куча трупов.
Аноним 19/06/17 Пнд 00:19:20  1008169
>>1008134
Ну кроме окамла ещё F#, но там больше шарпа в смысле парадигмы (хотя сексуальные хачкель операторы вида <><[][——€•^`>> на месте).
Аноним 04/07/17 Втр 13:28:19  1016135
>>1008074
> variable - переводится как ПЕРЕМЕННАЯ, и дословно обозначает какие-то изменения во времени
> во времени

Распространённое заблуждение. Слово "переменная" пришло из математики, где никакого изменения во времени оно не означает. Оно означает что значение может меняться в зависимости от исходных данных (то есть, по-нашему, от запуска к запуску). А вот "константа" в математике - это то, что не меняется вообще никогда, с любыми исходными данными. Собственно, const в Rust это как раз значение известное на этапе компиляции, тогда как значение переменной вычисляется уже в рантайме.
Аноним 04/07/17 Втр 13:36:57  1016139
>>1016135
Вот да. А меняться во времени это уже к реактивному программированию.
Аноним 07/07/17 Птн 00:16:05  1017796
Пока хуйтеры срут, оракл выкатил новую залупу на расте в опенсорс.
Аноним 07/07/17 Птн 01:12:25  1017832
>>1017796
Что конкретно?
Аноним 07/07/17 Птн 02:56:15  1017854
>>1017832
https://blogs.oracle.com/developers/three-new-open-source-container-utilities
Аноним 07/07/17 Птн 15:46:18  1018061
>>1017854
Нормально.
Аноним 08/07/17 Суб 04:11:23  1018493
>>957819
Но как же, господа, ведь математически докококазана безопасность.
Аноним 08/07/17 Суб 04:14:23  1018496
>>972459
У тебя какой-то галлерный руснявый тырпрайз.
Аноним 09/07/17 Вск 13:41:52  1019277
>>1018496
>У тебя какой-то галлерный руснявый тырпрайз.
Нет никакого другого тырпрайза.

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

Здоровому человеку в этом всем говне делать нечего.
Аноним 09/07/17 Вск 13:51:00  1019290
>>958602
Можно поместить себя в клетку и так прятаться от собаки, а можно собаку поместить в клетку.
Аноним 09/07/17 Вск 14:39:29  1019384
>>1019277
Не знаю, занимаемся промышленной разработкой небольшой командой и ус не дуем. Решения выбираем прагматично, код пишем рационально, не полагаясь на карго-макакинг.
Аноним 10/07/17 Пнд 04:35:17  1020115
>>1019384
>занимаемся промышленной разработкой небольшой командой
И причем тут энтерпрайз?

>занимаемся
Доход поровну делите?
Аноним 10/07/17 Пнд 11:40:15  1020240
>>1020115
Тому що предназначение софта - аэрокосмическая промышленность.

Ни.
Аноним 10/07/17 Пнд 16:00:09  1020435
>>1020240
Аноним 10/07/17 Пнд 19:03:15  1020631
>>1020240
>Тому що
Свиней давно в космос запускать начали?
Аноним 10/07/17 Пнд 19:09:19  1020638
>>1020631
Не, я конечно допускал, что две буквы могут к подрыву привести, но всё же, рассматривал больше как теоретическую возможность, всё же /зк.

Приятно удивлён
Аноним 10/07/17 Пнд 23:11:15  1020838
>>956931
>пизже
>GC
обкекался
Аноним 11/07/17 Втр 03:11:54  1020983
>>961111
Не совсем, Rust объединяет в себе положительные черты плюсов (контроль) и джавы (безопасность). Как бы Rust не старался, плюсы еще долгое время будут жить, а вот Джава со своей виртуальной машиной и огромной прожорливостью, возможно, когда-то пойдет нахуй. Но, на данный момент, язык дико молодой и, как следствие, сырой.
Аноним 11/07/17 Втр 15:15:26  1021225
>>1020983
Раст уже поржавел.
Аноним 11/07/17 Втр 20:00:46  1021466
>>1021225
Ты чё сука ты чё. Раст популярнее и популярнее с каждым днем: вот новость недавняя, даже оракл выпустил приблуды для изолированных контейнеров:

https://github.com/oracle/crashcart
https://github.com/oracle/railcar

Глянуть в код, увидеть - та еще параша, а я зык выбран из соображений - поиграться
Аноним 11/07/17 Втр 22:42:29  1021632
>>1020983
>Rust объединяет в себе положительные черты плюсов (контроль) и джавы (безопасность)
Не осилил лайфтаймы. Есть по ним вменяемый тутор?
Аноним 12/07/17 Срд 12:46:17  1021847
>>1020983
>а вот Джава со своей виртуальной машиной и огромной прожорливостью, возможно, когда-то пойдет нахуй

Давно бы уже пошла, если это было бы проблемой.
Аноним 12/07/17 Срд 18:47:29  1022032
>>1021632
Есть. Называется практика и ебля в жопу с компилером.
Аноним 14/07/17 Птн 00:00:14  1024575
Есть такой теоретический вопрос. Посмотрел стандартную библиотеку раста, а там нет даже либ для http. Вопрос, как реализуют такие библиотеки, в теории. Используют какие то либы операционной системы, или как то по другому?
Аноним 14/07/17 Птн 00:04:30  1024577
>>1024575
Говорят системе открыть сокет пишут туда
Аноним 14/07/17 Птн 09:44:06  1024721
Заебала долгая компиляция. Как я понял, в расте нет аналогов объектных файлов из цепепе, когда вношу любое изменение - проект пересобирается полностью. У меня 17к строк в проекте (большая часть - сгенированные биндинги opengl), компиляция занимает секунд 15.
Похоже, придется перекатываться на кресты.
Аноним 14/07/17 Птн 11:24:05  1024771
>>1024721
Охуеть теперь. Я и по 2 минуты ждал постоянно потому что в движке было много объектых файлов и пека слабый.
Аноним 14/07/17 Птн 22:18:49  1025182
>>1024721
Че ты понял? Че ты понял сука,тебе вьебать, а?
Аноним 15/07/17 Суб 19:29:00  1025507
image.png (112Кб, 200x440)
>>1025182
Ржавый?
Аноним 28/07/17 Птн 01:08:59  1033011
>>976573
Фп-кун, ты еще тут?
Аноним 30/07/17 Вск 09:11:26  1034290
Чому на расте так мало проектов пилятся? С одной стороны он второй год подряд является самым "любимым" языком по версии StackOverflow, а с другой стороны работы на нём нет и положительных тенденций нет
Аноним 30/07/17 Вск 09:34:58  1034291
>>1034290
Очень недружелюбный язык для вкатывания, поэтому просто нет тонны всяких "бот для телеграма на %языкнэйм%"
Аноним 30/07/17 Вск 17:48:12  1034439
>>1034290
>С одной стороны он второй год подряд является самым "любимым" языком по версии StackOverflow
Это значит только то, что он вызывает больше всего вопросов.

>так мало проектов
Завезли бы корутины.
Аноним 30/07/17 Вск 21:17:25  1034577
>>1034439
> Это значит только то, что он вызывает больше всего вопросов.
Нет, это они опрос проводили. https://insights.stackoverflow.com/survey/2017

> Завезли бы корутины.
Стекфул корутин, как в Го, не-бу-дет. Копают в сторону стеклесс и асунк/ашаит.
Аноним 31/07/17 Пнд 07:42:04  1034748
>>1034577
>Нет, это они опрос проводили.
Ах лол.
Любимый в смысле на нем не программируют, но что-то слышали.
Аноним 31/07/17 Пнд 08:16:46  1034753
>>1034290
Каких это проектов там мало? Каждый Вася Жопин не пилит свой веб фреймворк и бот для телеграма умеющие нихуя?
Аноним 31/07/17 Пнд 08:31:24  1034757
>>1034753
Как раз веб фреймворки по-моему и пилят. Не совсем понимаю зачем они нужны.
Аноним 31/07/17 Пнд 09:42:25  1034766
>>1034748
Болезный?
> For the second year in a row, Rust was the most loved programming language. This means that proportionally, more developers wanted to continue working with it than any other language.
Аноним 31/07/17 Пнд 19:46:00  1035038
>>1034766
>Болезный?
>> For the second year in a row, Rust was the most loved programming language. This means that proportionally, more developers wanted to continue working with it than any other language.

Ну, это замечательно.
Учитывая, что в категории Programming Languages в том же опросе, раста нет вообще.
То есть им не пользуются от слова совсем.
А кучка шизиков на нем кодящих хочет кодить и дальше, что как бы закономерно.
Аноним 31/07/17 Пнд 20:31:30  1035050
>>1034757
Нативных альтернатив нет, но бизнесу всё равно выгоднее использовать асп.нет, а большинству и пхп сойдёт, так что задач нет.
Аноним 01/08/17 Втр 04:41:04  1035334
>>1033011
Давно не заходил, теперь тут
Аноним 01/08/17 Втр 06:02:03  1035337
>>1024721
> компиляция занимает секунд 15.
Так тебе программы писать или лабу2 конпелировать?
мимо скала-боярин
Аноним 01/08/17 Втр 08:41:46  1035355
>>1035337
Напейсание лаб ныне кличут TDD.
Аноним 01/08/17 Втр 09:10:50  1035358
>>1024721
В анус себе перекатись, блять, начинают кодить на Visual Studio и начинаются ебаться в жопу и думать, что компилятор сам по себе выполняет функционал makefile
Аноним 02/08/17 Срд 10:10:35  1035947
>>1035337
Причем тут лаба, долбоёб?
На крестах есть инкрементальная сборка, крупный проект первый раз может собираться несколько минут, а потом, когда вносишь изменение в несколько файлов, проект пересобирается уже за пару секунд, т.к. собираются только затронутые объектные файлы. А в расте такого нет, если у тебя в проекте 1000 файлов, а ты изменил 2, при сборке будет собираться полностью.
>>1035358
Какая visual studio, какие makefile, ты чем там объебался?
Я так-то под линуксом сижу и юзаю cmake/clang.
Аноним 02/08/17 Срд 10:29:51  1035958
>>1035947
Да, действительно ебу дал, на rust нет инкрементной сборки.

Охуеть, это какой-нибудь проект уровня хрома после каждого патча целый день собирать? Как жить-то?
Аноним 02/08/17 Срд 20:07:45  1036281
>>1035958
Делить проект на крейты и жить как белый человек с модульной архитектурой кода, а не заниматься напейсанием индусских монолитных кусков говна на миллионы строк, как это помогли делать миллионам макакусов K&R. Открой исходники серво и посмотри как это делается.

Вообще, ты даже до гугла похоже не добрался — там есть инкрементальная компиляция https://internals.rust-lang.org/t/incremental-compilation-beta/4721 , другое дело что это не плюсы в которых её 2 десятилетия пейсали (и которая точно так же как раньше не работает при изменении предкомпилированных или просто везде используемых заголовков), и пока по умолчанию она не включается.
Аноним 02/08/17 Срд 20:13:21  1036282
>>1035947
>Я так-то под линуксом сижу и юзаю cmake/clang.
У тебя там цмейк сам собирать научился, без бэкэнда, поешавший?
>под линуксом
>clang
Вот с этого особо орнул. Ты там как, пользуешься сборками трехлетней давности, или сам собираешь? Я вот представляю уже, как ты после каждого релиза тащишь себе релизную ветку и билдишь ллвм со шлангом по 12 часов с ИНКРЕМЕНТАЛЬНОЙ компеляцией, и ору
Аноним 03/08/17 Чтв 04:47:58  1036538
>>1036282
Поцчему трехлетней давности?
мимо clang-5.0-господин под дебианом
Аноним 05/08/17 Суб 12:56:30  1038409
Платиновый вопрос. Что за лафтаймы такие?
Аноним 05/08/17 Суб 13:16:08  1038418
>>1038409
Платиновый ответ: доку открой.
Аноним 05/08/17 Суб 14:52:44  1038496
>>1038418
Сложно.
Аноним 09/08/17 Срд 23:39:11  1041667
>>977091
А как без системы управления пакетами? Это показатель современного языка. Без этого, это какой-то каменный век.
Аноним 09/08/17 Срд 23:42:14  1041669
>>956909 (OP)
>как думаете, он сможет вытеснить жаву? Почему?

А нахрена? Rust он крут. Я не думаю, что нужно ставить вопрос именно так. Java все равно будет жить ещё долго, как и сраное php. Ведь его куча говнокода в Ынтерпрайзе. Ну и пусть варятся в собственном соку.
Аноним 10/08/17 Чтв 10:52:04  1041813
150227614166520[...].png (86Кб, 326x413)
>>1041669
Да, Rust ОСОБЕННЫЙ.

Как и ты, судя по тому, что и как пишешь.
13/08/17 Вск 08:00:16  1043540
Ананасы кто-нибудь работает над ии?
Стоит подучивать что-нибудь по этому параллельно с веб макакетством или все тщетно, если конкретно этим не занимаешься?
Аноним 13/08/17 Вск 09:33:25  1043546
>>1041669
t.безработный студент
Аноним 13/08/17 Вск 11:06:14  1043574
>>1043540
Все работают над ИИ.
Аноним 19/08/17 Суб 17:59:33  1046993
1. ООП в расте не нужен
2. Он вытеснит не джаву, а C++
Аноним 19/08/17 Суб 18:04:01  1046994
>>1046993
Но там ведь есть своеобразное ООП
Аноним 19/08/17 Суб 18:06:47  1046996
>>1046994
> своеобразное ООП

Потому что это не ООП, люди подгоняют возможности Rust под тугое воображение ооп-ретрограда.
Аноним 19/08/17 Суб 18:56:17  1047013
>>1046993
1) Нужен
2) Вытеснит разве что из своей щеки
Аноним 19/08/17 Суб 23:53:28  1047113
>>1047013
Что ты подразумеваешь под ООП? Если первым словом в ответе на этот вопрос будет "наследование", то сразу иди нахуй.
Аноним 20/08/17 Вск 19:29:27  1047541
>>1047113
Ну ты и лох, какое наследование, все знают что ООП - это когда можно методы через точечку вызывать и ИДЕ тебе автодополнение предлагает.
Аноним 20/08/17 Вск 19:54:36  1047561
>>1047113
Абстрактную фабрику абстрактных фабрик энтерпрайз фасолин.
Аноним 21/08/17 Пнд 06:14:25  1047779
>>1047541
Ну вообще говоря так и есть. ООП это всего лишь паттерн управления стейтом, когда стейт лежит рядом с функциями для их обработки в одном контейнере, а программа состоит из кучи таких контейнеров.
Аноним 21/08/17 Пнд 11:25:33  1047829
>>1047779
> ООП это всего лишь паттерн управления стейтом
Нет, ООП и императивное программирование это ортогональные понятия.
Аноним 21/08/17 Пнд 13:21:03  1047855
>>1047829
Любишь смоллтолк?
Аноним 21/08/17 Пнд 14:46:06  1047896
>>1047829
Тогда что же такое ООП? И как оно соотносится с императивщиной и фп?
Аноним 21/08/17 Пнд 15:07:52  1047909
>>1047855
Незнаком с ним. Да и моё утверждение верно для любого мейнстримного языка, будь то Java или C#.

>>1047896
Замени в своей фразе "стейт" на "данные" и получишь более-менее точное определение.
На практике это означает, что если у тебя в Java все поля - final, и ты присваиваешь их только в конструкторе, то это всё еще ООП, несмотря на отсутствие стейта.
Аноним 21/08/17 Пнд 17:15:25  1047972
>>1047909
> На практике это означает, что если у тебя в Java все поля - final, и ты присваиваешь их только в конструкторе, то это всё еще ООП, несмотря на отсутствие стейта

Я что-то тебя не понял.

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

Мимопрохожий.
Аноним 21/08/17 Пнд 17:50:36  1048019
>>1047972
Иммутабельность.
Аноним 21/08/17 Пнд 17:59:38  1048030
>>1048019

ок, стейт ≠ иммутабельность, а ооп с фп имеют больше одной точки пересечения.
Аноним 21/08/17 Пнд 19:15:28  1048066
>>1047896
>Тогда что же такое ООП? И как оно соотносится с императивщиной и фп?
ООП это подход при котором отправитель сообщения и адресат никак несвязанны и независят друг от друга, а оба зависят от сообщения.
Суть в переносе связи между модулями на сообщения.
В c# это происходит через интерфейсы.
В с++ через абстрактные классы. (система типов плюсов/джавы превращают ООП в скотское безумие)
Аноним 21/08/17 Пнд 19:40:59  1048073
>>1047909
стейт === данные
Аноним 21/08/17 Пнд 20:04:14  1048088
tumblrinlineo8o[...].gif (1547Кб, 356x200)
>>1048073
> стейт === данные
Аноним 22/08/17 Втр 13:00:48  1048620
>>1047896
ООП - НЕ парадигма программирования. Парадигм программирования всего три. Подробнее здесь: http://wiki.c2.com/?ThereAreExactlyThreeParadigms.

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

ООП - определенный способ представления программы в голове, а следовательно и способ её структурирования в тексте. Именно его имел в виду Кей, в нем, как ни странно, суть Actor Model, а значит Эрланга и Акки, и во многом именно о нем пишет небезызвестный Егор Бугаенко (http://www.yegor256.com/tag/oop.html) с чьими тезисами можно быть более или менее согласным, но как минимум познакомиться стоит. Можно сказать что такой подход это гуманитарщина, и быть при этом правым, но не нужно забывать что программы в первую очередь пишутся для людей, а значит способ их изложения и понимания имеет значение. Насколько легко представлять программу как множество объектов, взаимодействующих друг с другом - другой вопрос. Возможно другие способы эффективнее, возможно это вообще индивидуально.

По моему опыту ООП это способ структурирования именно императивных программ. Дело в том что я видел ОО-код на С, видел процедурный код на питоне с джавой, но никогда не видел ОО-ориентрованых програм на функциональных языках. Наверное это из-за того что объекты почти всегда инкапсулируют какое-то мутабельное состояние, иначе они превращаются просто в (параметризируемые) модули, а состояние в ФЯ обычно скрывается и обрабатывается не так, как и императивных.
Аноним 22/08/17 Втр 13:19:06  1048624
>>1048620

Боб Мартин залогинься.
Аноним 23/08/17 Срд 13:49:05  1049412
>>1048620
>ООП - определенный способ представления программы в голове, а следовательно и способ её структурирования в тексте. Именно его имел в виду Кей, в нем, как ни странно, суть Actor Model, а значит Эрланга и Акки

>>1048620
>но никогда не видел ОО-ориентрованых програм на функциональных языках

Определись наконец, Эрланг ООП или нет?
Аноним 23/08/17 Срд 13:56:35  1049414
>>1048620
Всего 2, фунциональное и логическое это частный случай декларативного программирования.
Аноним 23/08/17 Срд 14:00:44  1049417
>>1047779
Да хуйня какая-то, всё время прошу показать мне пример и объяснить почему это "ООП" а не сахар для процедурщины (я про вызов через точку). Вон в D можно обычные функции через точку вызывать, ну типа foo(a, b) и a.foo(b) - одно и то же. И шо, резко стало ООП? Да нет, нихуя. Вот объясните мне, где в вызове foo(a, b) стейт, а где не стейт. И почему оба аргумента не могут быть "стейтами".
Аноним 23/08/17 Срд 14:03:12  1049419
>>1048620
> ООП в современном виде - не более чем тривиальная надстройка над старыми добрыми структурами, процедурами и указателями на процедуры
Два чая этому господину
Аноним 23/08/17 Срд 14:36:23  1049454
>>1049419
Рукалицо.
Как концепция, может быть надстройкой над синтаксисом конкретного языка?
Аноним 23/08/17 Срд 15:16:41  1049480
>>1049454
Хватит разговаривать с голосами в голове. О каком "синтаксисе конкретного языка" ты говоришь?
Аноним 23/08/17 Срд 17:01:17  1049526
>>1049417
> foo(a, b) и a.foo(b)
Полиморфизм.
Аноним 23/08/17 Срд 17:21:06  1049542
>>1049526
что?
Аноним 23/08/17 Срд 17:41:04  1049565
>>1049542
Во втором случае метод может быть переопределен.
Аноним 23/08/17 Срд 18:47:15  1049606
>>1049565
Ага, то есть всё-таки пришли к тому, что суть не в "записи с точкой" и тем что "данные лежат рядом с функциями", а в полиморфизме? Что ж, полиморфизм подтипов - ненужная хуйня (по той причине что завязан на наследование, а наследование - ненужная хуйня). В расте есть куда более адекватный способ переопределения поведения - ad-hoc полиморфизм. Собственно говоря, он есть и в Haskell. Значит ли это, что программисты на Haskell постоянно используют ОО-подход?
Аноним 23/08/17 Срд 19:20:23  1049616
>>1049606
> Ага, то есть всё-таки пришли к тому, что суть не в "записи с точкой" и тем что "данные лежат рядом с функциями", а в полиморфизме?
Суть ооп - полиморфизм, инкапсуляция, наследование.

> Что ж,
> ненужная хуйня (по той причине что
> ненужная хуйня)
Ясно.
Аноним 23/08/17 Срд 19:58:40  1049638
>>1049616
>Суть ооп - полиморфизм, инкапсуляция, наследование.
Ну вот и получается, неследование не нужно, полиморфизм в классических ОО-языках опирается на наследование и потому не нужен.
Что касается инкапсуляции, то её можно рассматривать как сокрытие данных (такая трактовка описывается как неверная в русскоязычной и как одна из допустимых в англоязычной) - и тогда это довольно скучно, полно языков не поддерживающих сокрытие данных, но при это считающихся вполне пригодных для написания ОО-кода; или же можно трактовать инкапсуляцию как механизм "упаковывания" данных и кода, с ним работающего. Тогда опять-таки вопрос, во-первых, о чём речь идёт когда говорят об ОО-подходе в C (где ни наследования, ни полиморфизма, ни полноценной инкапсуляции); во-вторых, что делать с пресловутой проблемой бумаги и пера - paper.write(pen) или pen.write(paper)? Ну и в любом случае инкапсуляция (в смысле "упаковки") выглядит именно как незначительная надстройка над процедурщиной, сопровождающаяся как правило соответствующим сахарком.
Аноним 23/08/17 Срд 20:52:16  1049689
>>1049412
Эрланг это язык программирования. Возможно это сложно понять, но язык и "парадигма" - не одно и то же. Если честно, я не знаю какую часть Эрланга занимают акторы, никогда с ним не работал. Но, например, тот код что я видел и писал на Акке (именно работу с акторами), функциональным назвать невозможно, а вот ОО - вполне.
>>1049414
Ты прочитай документ по ссылке, не ленись, ума наберись.
Аноним 24/08/17 Чтв 12:44:22  1050038
>>1049606
>полиморфизм подтипов - ненужная хуйня (по той причине что завязан на наследование, а наследование - ненужная хуйня).

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

> адекватный способ переопределения поведения - ad-hoc полиморфизм.

ad-hoc полиформизм - не true полиформизм. True - параметрический.

> почему это "ООП" а не сахар для процедурщины

Потому что через сахар нельзя ввести инверсию flow of control, нужны новые определения, ООП - это и есть то определение.

> Значит ли это, что программисты на Haskell постоянно используют ОО-подход?

Это значит лишь то, что элементы ООП проникли в функциональщину, ОО языки несут в себе примесь функциональщины, при этом никто не считает их функциональными.

> что делать с пресловутой проблемой бумаги и пера

Доябываться до заказчика, пока не будет ясно какая система должна получится в итоге. Получив представление строишь наиболее очевидную (предсказуемую, скучную) систему.
Аноним 24/08/17 Чтв 13:00:37  1050047
> наследование - ненужная хуйня

Бтв, с этим не согласен. Наследование было ненужной хуйней из-за diamond inheritance; как проблему решили - стало годным инструментом. Только не надо пихать во все поля наследование. Это скальпель для построения иерархии типов, yj в жизни обычно хватает молотка в виде пары десятков заезженных паттернов.
Аноним 25/08/17 Птн 12:06:15  1050670
>>1050038
> Полиморфизм подтипов - частный случай полиформизма. Доказывать, что общее не нужно из-за частного - маняврирование.
Я и не говорил, что полиморфизм не нужен. Я лишь сказал, что тот полиморфизм, о котором обычно идёт речь в котексте ООП (т.е. полиморфизм подтипов) и который завязан на другой "столп" ООП - наследование - не нужен. Против ad-hoc и параметрического полиморфизма ничего не имею, даже наоборот, считаю что это очень нужные концепции. Только вот когда говорят о полиморфизме в контексте ООП обычно имеют ввиду не дженерики и не трейты/тайпклассы.

> ad-hoc полиформизм - не true полиформизм. True - параметрический.
Я же говорил про способ переопределения поведения для разных типов. Параметрический полиморфизм позволяет лишь определить одно поведение для разных типов, а не разные поведения для разных типов.

> Потому что через сахар нельзя ввести инверсию flow of control, нужны новые определения, ООП - это и есть то определение.
Так, а вот это уже интересно. До сих пор в треде никто inversion of control не упоминал. В таком случае, на мой взгляд, правильнее было бы, для ясности, не говорить об абстрактном ООП для которого у каждого своё определение (от "данные радом с функциями" и вызова через точку до обмена сообщениями между объектами), а использовать более чётко определённые термины - например, inversion of control. Тогда никаких разночтений не возникает.

>>1050047
>Наследование было ненужной хуйней из-за diamond inheritance; как проблему решили - стало годным инструментом.
И как же её решили (если мы всё-таки говорим про наследование реализации, а не наследование поведения через интерфейсы/трейты/тайпклассы)?

> Это скальпель для построения иерархии типов
И зачем оно в реальной жизни может понадобиться? Точнее, в каких ситуациях оно может быть удобнее, чем подход того же Rust?
Аноним 25/08/17 Птн 12:09:02  1050672
>>1050047
И да, diamon inheritance - не единственная проблема наследования. Другая проблема состоит в железобетонности иерархий типов, построенных наследовании, другими словами - в том что они очень плохо расширяемы.
Аноним 26/08/17 Суб 13:55:26  1051235
>>1050670

> И как же её решили (если мы всё-таки говорим про наследование реализации, а не наследование поведения через интерфейсы/трейты/тайпклассы)?

Взяли и выпилили множественное наследование, лол. Если мы говорим о java и его клонах типа c# <hidden_tags=trollface, sarcasm> :)</hidden_tags>.

> иерархии типов
> И зачем оно в реальной жизни может понадобиться?

Кейсы по liskov substitution principle: приходит множество объектов и нужно выбрать такие что гарантируют implementation интерфейсов родителя. При этом у каждого объекта есть свое уникальное поведение.

В реальной матрице это может быть игра-стратегия: пользователь выбирает ХуйПятьсот Unit'ов. Не снимая выделение, User нажимает ПКМ. Кавалеристы, пыхота начинают движение, реализовывая интерфейсы Human (Human < Unit). Выборка Human из Unit возможна из-за наличия иерархии типов, делая удобной фильтрацию ненужных выделенных инстансов, например инстансов Building (Building < Unit).

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

Я бы не сказал, что это проблема, это trade-off - выбор наиболее удобной реализации. Если класс предполагается расширять, то не надо наследоваться, давай воспользуемся Open/closed principle - это позволит избежать переписывания старого кода и заняться расширением.

> В таком случае, на мой взгляд, правильнее было бы, для ясности, не говорить об абстрактном ООП для которого у каждого своё определение (от "данные радом с функциями" и вызова через точку до обмена сообщениями между объектами), а использовать более чётко определённые термины - например, inversion of control. Тогда никаких разночтений не возникает.

Именно так. На мой взгляд, разночтения происходят из-за двух вещей:

1. Маркетологи учат программистов как нужно жить. ООП - это не про объектно-ориентированного кота, но про менеджмент зависимостей (модулей) в программе.

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

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

Чисто технически это не так, параметрический полиформизм можно выродить в ad-hoc полиформизм, т.е. смотрим что за тип пришел и даем ему своё, уникальное поведение. Впрочем, делать так скорее всего не надо. Излишние сложности с неочевидной выгодой.
Аноним 27/08/17 Вск 15:33:42  1052018
>>1051235
> Взяли и выпилили множественное наследование, лол
Так отлично, а что делать когда одиночным наследованием не обойтись, когда связи в системе сложнее?

> Выборка Human из Unit возможна из-за наличия иерархии типов
Ну, всё то же самое можно сделать с помощью trait objects. Ну то есть принцип тот же, только без наследования реализации, только наследование поведения.

> Чисто технически это не так, параметрический полиформизм можно выродить в ad-hoc полиформизм, т.е. смотрим что за тип пришел и даем ему своё, уникальное поведение.
Ну для этого нужна поддержка рантайм-рефлексии, это хак)
Аноним 27/08/17 Вск 16:30:10  1052064
>>1052018

> что делать когда одиночным наследованием не обойтись, когда связи в системе сложнее?

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

https://ru.wikipedia.org/wiki/%D0%A0%D0%BE%D0%BC%D0%B1%D0%BE%D0%B2%D0%B8%D0%B4%D0%BD%D0%BE%D0%B5_%D0%BD%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5#.D0.A0.D0.B5.D1.88.D0.B5.D0.BD.D0.B8.D1.8F

> всё то же самое можно сделать с помощью trait objects

Ок, давай тогда будем говорить что наследование не нужно в расте. А если ты не растаман, и у тебя нет trait objects, тогда что? Речь явно о наследовании в ООП в целом. Бтв, согласен с тобой, что наследование не столп, или точнее 'столп' в кавычках. Но это не значит, что оно концептуально ненужно.

> Ну для этого нужна поддержка рантайм-рефлексии, это хак)

Хак, это или фича - вопрос, конечно, интересный. Однако, параметрический полиформизм - true именно потому что включает, но не ограничивается ad-hoc полиформизмом. ad-hoc полиформизм не true по той же самой причине.
Аноним 27/08/17 Вск 18:00:52  1052142
>>1052064

>> что делать когда одиночным наследованием не обойтись, когда связи в системе сложнее?

Добавлю, в случая кода множественного наследования, вооще нет, то тогда класс расширяется через примеси, интерфейсы, и т.п.
Аноним 27/08/17 Вск 18:24:52  1052159
>>1052142
Ну так я о том и говорю, что интерфейсами/трейтами/тайпклассами удобнее описывать связи в системе, так что наследование реализации не нужно.

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

> А если ты не растаман, и у тебя нет trait objects, тогда что?
Ну мне кроме сишки в голову не приходит языков без поддержки динамического диспатчинга. Никто не мешает сделать всё тоже самое на тех же Java и C#. Ну да, кое-где нет интерфейсов как отдельной сущности (в C++ например) и там придётся использовать "наследование" как механизм языка, но при этом по-хорошему все равно надо наследовать не реализацию, а только поведение (как это у крестовиков, pure virtual inheritance?).
Аноним 27/08/17 Вск 19:32:34  1052198
>>1052159

> По-хорошему все равно надо наследовать не реализацию, а только поведение

А что делать с интерпретируемыми языками, опирающимися на duck typing, такими как ruby, в которых, в mixin'ах, реализация не отделяется от поведения?

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

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

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

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

Я с тобой согласен в том, что связи удобнее описывать не через наследование. С другой стороны, по Барбаре Лисков иерархия классов упрощает проверку наличия этих связей, и в этом и есть ценность наследования.
Аноним 31/08/17 Чтв 22:30:01  1055130
А вот и внезапный бамп растотреду!

Объясните мне, аноны:
https://github.com/sfackler/rust-postgres/blob/d374641ecb584bb668fa8e7a10d0f593a5c35ca2/src/io.rs#L24

Строки 29-36, почему в match не указаны неймспейсы? Почему не MaybeSslStream::SslStream? Там ведь нет use.
Аноним 01/09/17 Птн 00:03:51  1055216
>>1055130
А нахуя ты смотришь какой-то коммит трёхлетней давности? Сейчас такое не скомпилируется.
Аноним 02/09/17 Суб 09:53:07  1056011
>>1055216
Наткнулся на код и даже не заметил, что это древний коммит, лол.
Аноним 03/09/17 Вск 23:12:18  1056839
То, что полиморфизм — один из столпов ООПа, еще не значит что сам полиморфизм имеет какое-то отношение к ООП. В функциональных языках полиморфизма таки больше.
Аноним 11/09/17 Пнд 20:35:44  1060441
Растаны, для раста есть что-нибудь по ИДИОМАТИЧНОМУ РАСТУ, типа как pep-8 для змия, желательно еще и с примерами, как надо а как нет?
Или посоветуйте опенсорс проект на гитхабе, который написан КРАСИВО на расте.
Аноним 12/09/17 Втр 02:54:06  1060549
>>1060441
Вот это чтиво в свое время позабавило https://rust-lang-nursery.github.io/rust-clippy/master/index.html

Вообще странно слышать об "идиоматичном расте" в языке, который сидит на двух стульях (хаскель и c++)
Аноним 12/09/17 Втр 21:54:12  1061045
>>1060441
Юниксовые корутилы на расте, они небольшие, самое оно для вкуривания в язык
https://github.com/uutils/coreutils

Алсо, redox для вроде бы самого серьезного из низкоуровнего раста, что на сегодня есть
https://github.com/redox-os

И это: https://github.com/BurntSushi/ripgrep

Идиоматичный раст по идее описан в the rust book и в rust by example.
Аноним 13/09/17 Срд 12:18:22  1061253
>>1060441
Главное не забывай каяться перед меньшинствами в комментах, кек.
Аноним 15/09/17 Птн 09:16:32  1062191
Перекат мне запилил!
Аноним 15/09/17 Птн 17:13:58  1062386
>>1062380 (OP) ПЕРЕКАТ
>>1062380 (OP) ПЕРЕКАТ
>>1062380 (OP) ПЕРЕКАТ
>>1062380 (OP) ПЕРЕКАТ
>>1062380 (OP) ПЕРЕКАТ
>>1062380 (OP) ПЕРЕКАТ

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 531 | 34 | 190
Назад Вверх Каталог Обновить

Топ тредов
Избранное