The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Выпуск языка программирования Rust 1.38"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск языка программирования Rust 1.38"  +/
Сообщение от opennews (??), 27-Сен-19, 10:46 
Опубликован релиз языка системного программирования Rust 1.38, основанного проектом Mozilla. Язык сфокусирован на безопасной работе с памятью, обеспечивает автоматическое управление памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=51572

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (1), 27-Сен-19, 10:46 
Имеет ли смысл учить плюсы или сразу с паста начать?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Выпуск языка программирования Rust 1.38"  +17 +/
Сообщение от анонимус (??), 27-Сен-19, 10:47 
имеет, как раз выучишь плюсы к тому времени как раст станет мейнстримом
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "Выпуск языка программирования Rust 1.38"  +3 +/
Сообщение от Анонимemail (4), 27-Сен-19, 10:48 
+1
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

153. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от Аноним (153), 28-Сен-19, 00:17 
Ты второй плюс потерял. Правильно будет 1++
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

199. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Java (?), 30-Сен-19, 16:12 
Плюсовики любят именно ++1.
Ответить | Правка | ^ к родителю #153 | Наверх | Cообщить модератору

5. "Выпуск языка программирования Rust 1.38"  +4 +/
Сообщение от анонимчик (?), 27-Сен-19, 10:59 
он не станет мэйнстримом
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

10. "Выпуск языка программирования Rust 1.38"  +5 +/
Сообщение от кек (?), 27-Сен-19, 11:10 
Если плюсы не спохватятся и не добавят себе фишки Rust в плане безопасности, то у Rust есть все шансы, чтобы стать мейнстримом.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

12. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от proninyaroslavemail (ok), 27-Сен-19, 11:18 
Умные указатели в плюсах уже давно есть. По сути раст отличается наличием мощного анализатора, встроенного в систему сборки. А вот с последним в плюсах сложнее, так как тянет груз обратной совместимости с Си.
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

23. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (23), 27-Сен-19, 12:13 
Одно из ключевые отличия от крестов -- наличие пакетного менеджера и быстрый цикл разработки Rust и его обвязок
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

27. "Выпуск языка программирования Rust 1.38"  +4 +/
Сообщение от Аноним (27), 27-Сен-19, 12:21 
На С++ ты можешь выбрать себе любой пакетный менеджер. И любую обвязку. Да даже если у тебя приложение упадет с сегфолтом ты всегда можешь нанять кучу тестировщиков. Вместо того чтобы юзать раст, на котором ты даже не найдешь программистов.
Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

33. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от kiwinix (?), 27-Сен-19, 13:00 
Лоол)
Да ты гонишь.. Это программисты не могут найти работу на раст. А вот как раз таки желающих много..
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

45. "Выпуск языка программирования Rust 1.38"  +3 +/
Сообщение от Аноним (45), 27-Сен-19, 13:43 
Бедные-бедные хайпожоры... Они-то выучили очередного "убийцу cpp", но тут *внезапно* оказалось что работы на нём нема... Це есть диалектический неизбежный переход перемоги в зраду.
Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

50. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от red75prim (?), 27-Сен-19, 13:47 
А кто там предыдущим убийцей С++ был? Java?
Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

103. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Вася Теркин (?), 27-Сен-19, 18:27 
А что не так с Java? Жирнющий кусок ынтерпрайз-проектов у плюсов отгрызла. Убивать плюсы изначально даже не собиралась, ЯП из совсем другого сегмента использования.
Ответить | Правка | ^ к родителю #50 | Наверх | Cообщить модератору

106. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от red75prim (?), 27-Сен-19, 18:54 
Не, мне интересно узнать какие убийцы убийцы плюсов уже были, если раст - очередной.
Ответить | Правка | ^ к родителю #103 | Наверх | Cообщить модератору

167. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (45), 28-Сен-19, 05:25 
Лол, это очень хорошо иллюстрирует что будет с рустом через лет пять - большинство его даже тупо не вспомнят.

Как минимум это были жабка, ocaml и D. Первая ведь изначально она нацеливалась на "generic purpose", осетра пришлось сильно урезать и получилось занять только нишу в энтерпрайзе. С недавних пор ещё и мобилки. Последние двое формально до сих пор живы (и на них даже есть какой-то рабочий софт), но изначальной цели не достигли.

Ответить | Правка | ^ к родителю #106 | Наверх | Cообщить модератору

179. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним84701 (ok), 28-Сен-19, 12:26 
> С недавних пор ещё и мобилки.

https://en.wikipedia.org/wiki/Siemens_SL45
> debuted in 2001
> SL45i, was also the first phone to have a Java virtual machine.

Хорошо быть опеннетч^W макклаудом, 18 лет -- недавно :(

Если что:
На не слишком дорогом (по тем меркам, по современным смартфоноценам -- вообще дешевка)
телефоне 2004 года уже запускалась куча игрулек на жабке и пара приложений.

Ответить | Правка | ^ к родителю #167 | Наверх | Cообщить модератору

72. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от JustCurious (?), 27-Сен-19, 15:58 
Изучение Rust сделало меня лучше в С++, так что о потраченом времени не жалею абсолютно. А насчет "работы нема" и "очередной убийца срр" - рано еще смеятся. С++ точно не умрет в близжайшие лет 10, но и Rust, уверен, свою нишу займет.
Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

200. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Java (?), 30-Сен-19, 17:17 
С++ не умрёт ещё долго. И это нормально. Просто некоторые плюсовики считают, что получить звание аналогичное званию программиста на Cobol - это плохо.

Как бы непонятно, от чего у некоторых плюсовиков так горит от Rust. На их миску никто не покушается.

Ответить | Правка | ^ к родителю #72 | Наверх | Cообщить модератору

108. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Илья (??), 27-Сен-19, 19:24 
Вы что, на солнечном языке разговариваете?
Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

46. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от Аноним (46), 27-Сен-19, 13:43 
Чувак ты походу фанатик и не умеешь в причинно-следственную связь. Хорошо что в С++ таких как ты нет.
Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

48. "Выпуск языка программирования Rust 1.38"  +2 +/
Сообщение от red75prim (?), 27-Сен-19, 13:46 
>  По сути раст отличается наличием мощного анализатора, встроенного в систему сборки.

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

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

109. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от Илья (??), 27-Сен-19, 19:27 
Щас понабегут и расскажут вам, что всё это от лукавого, просто нужно без ошибок писать
Ответить | Правка | ^ к родителю #48 | Наверх | Cообщить модератору

149. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (149), 27-Сен-19, 23:10 
Все знают, что канализационные люки не нужны, просто под ноги смотреть нужно.
Ответить | Правка | ^ к родителю #109 | Наверх | Cообщить модератору

163. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от red75prim (?), 28-Сен-19, 01:47 
Меня это тоже удивляет. Против канализационных люков никто не возражает, а возгласы "Тирания компилятора!" переходящие в "Если я напишу unsafe, то это будет ничем ни лучше, чем если весь код unsafe" раздаются с дивной регулярностью.
Ответить | Правка | ^ к родителю #149 | Наверх | Cообщить модератору

142. "Выпуск языка программирования Rust 1.38"  +11 +/
Сообщение от Led (ok), 27-Сен-19, 22:31 
> Умные указатели в плюсах уже давно есть.

Когда умных програмистов подвезут - тогда и приходи.

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

189. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (189), 29-Сен-19, 12:03 
+1000 into karma!
Ответить | Правка | ^ к родителю #142 | Наверх | Cообщить модератору

53. "Выпуск языка программирования Rust 1.38"  –3 +/
Сообщение от th3m3 (ok), 27-Сен-19, 14:01 
Ещё как станет. Уже через 5 лет. Скринь.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

56. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от анонимчик (?), 27-Сен-19, 14:09 
> Ещё как станет. Уже через 5 лет. Скринь.

а где он станет мэйнстримом? вместо чего?

Ответить | Правка | ^ к родителю #53 | Наверх | Cообщить модератору

58. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от th3m3 (ok), 27-Сен-19, 14:20 
>> Ещё как станет. Уже через 5 лет. Скринь.
> а где он станет мэйнстримом? вместо чего?

Много где. От ОС до веб-сервисов.

Ответить | Правка | ^ к родителю #56 | Наверх | Cообщить модератору

69. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (69), 27-Сен-19, 15:51 
> а где он станет мэйнстримом? вместо чего?

Где — не знаю, может быть и нигде. Но очевидно, что если станет, то именно вместо плюсов.

Ответить | Правка | ^ к родителю #56 | Наверх | Cообщить модератору

116. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от анонимчик (?), 27-Сен-19, 20:11 
>> а где он станет мэйнстримом? вместо чего?
> Где — не знаю, может быть и нигде. Но очевидно, что если
> станет, то именно вместо плюсов.

а плюсы в мейнстриме?

Ответить | Правка | ^ к родителю #69 | Наверх | Cообщить модератору

139. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от Аноним (139), 27-Сен-19, 22:25 
А на чём написан браузер из которого ты это пишешь?
Ответить | Правка | ^ к родителю #116 | Наверх | Cообщить модератору

194. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от анонимчик (?), 29-Сен-19, 21:58 
> А на чём написан браузер из которого ты это пишешь?

сишка? (firefox)


Ответить | Правка | ^ к родителю #139 | Наверх | Cообщить модератору

87. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (87), 27-Сен-19, 17:28 
Он не может СТАТЬ мэйнстримом, потому что он уже им СТАЛ
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

117. "Выпуск языка программирования Rust 1.38"  –2 +/
Сообщение от анонимчик (?), 27-Сен-19, 20:12 
> Он не может СТАТЬ мэйнстримом, потому что он уже им СТАЛ

где?

Ответить | Правка | ^ к родителю #87 | Наверх | Cообщить модератору

168. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от Аноним (45), 28-Сен-19, 05:26 
В манямирке растофанов, очевидно же.
Ответить | Правка | ^ к родителю #117 | Наверх | Cообщить модератору

68. "Выпуск языка программирования Rust 1.38"  +4 +/
Сообщение от Аноним (69), 27-Сен-19, 15:50 
> выучишь плюсы к тому времени как раст станет мейнстримом

Не выучит. Выучить плюсы невозможно.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

86. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от Аноним (86), 27-Сен-19, 17:22 
Значит раст и не станет мейнстримом. Все будут продолжать учить плюсы и никогда не доучат.
Ответить | Правка | ^ к родителю #68 | Наверх | Cообщить модератору

92. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от Буревестник (?), 27-Сен-19, 17:50 
мозилльное мейнстримом не становится
рождённый ползать - летать не может
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

130. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от Аноним (139), 27-Сен-19, 21:37 
эт ты толстанул… жырненько так
Ответить | Правка | ^ к родителю #92 | Наверх | Cообщить модератору

6. "Выпуск языка программирования Rust 1.38"  +4 +/
Сообщение от proninyaroslavemail (ok), 27-Сен-19, 10:59 
Смотря для какой цели учить. Если для продакшена - то плюсы, так как раст в этом плане пока что редкий гость. Если на будущее и just for fun - раст.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

7. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от заминированный тапок (?), 27-Сен-19, 11:00 
для чего?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

9. "Выпуск языка программирования Rust 1.38"  +7 +/
Сообщение от Аноним (9), 27-Сен-19, 11:07 
>или сразу с паста начать?

Начни с копипаста.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

11. "Выпуск языка программирования Rust 1.38"  +7 +/
Сообщение от someman (?), 27-Сен-19, 11:10 
Лучше начать с C. Он проще и ближе к тому как все устроено. А потом уже можно постепенно открывать для себя абстракции, которыми так переполнены плюсы. А раст наверное нужно учить, когда  тебя реально достанут сегфолты, утечки памяти, неопределенное поведение, неадекватные сообщения об ошибках. Вот тогда можно и на раст посмотреть, чобы было с чем сравнивать)
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

19. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от eganruemail (?), 27-Сен-19, 11:39 
[i]А раст наверное нужно учить, когда  тебя реально достанут сегфолты, утечки памяти, неопределенное поведение, неадекватные сообщения об ошибках.[/i] - по моему опыту чаще происходит профессиональная деформация: первое время пугает, а потом начинаешь жить с этим.

по моему опыту [i]сегфолты, утечки памяти, неопределенное поведение, неадекватные сообщения об ошибках[/i] это те проблемы, которые можно решить в относительно короткое время - хуже всего если ошибка в алгоритме.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

39. "Выпуск языка программирования Rust 1.38"  +3 +/
Сообщение от Ordu (ok), 27-Сен-19, 13:13 
> по моему опыту [i]сегфолты, утечки памяти, неопределенное поведение, неадекватные сообщения об ошибках[/i] это те проблемы, которые можно решить в относительно короткое время

Ты везучий. Мне приходилось и по два дня сидеть, отлавливая причину сегфолта. Ну, то есть, разадресация NULL как причина находится легко, но если в коде при этом разадресуется указатель, который _никак_не_может_быть_NULL_!!!, то значит реальная причина сегфолта где-то в другом месте, в том коде который записал в этот указатель NULL. А это может быть, если по-хорошему, вообще любой кусок кода. Конечно, с большей вероятностью, проблема в каком-то куске кода который явно работает с этим указателем. Но это не всегда так, иногда этот кусок кода берёт другой якобы ненулевой указатель и записывает его сюда, но указатель оказывается нулевым, то есть проблема не здесь, где в указатель записывается NULL, а там откуда этот NULL пришёл. А иногда, какой-то совершенно левый код ошибается с индексом массива, вытаскивает из стека совершенно не тот указатель, который хотел, интерпретирует его как указатель на какую-то структуру, работает с ней, производит несколько рандомных изменений кучи, и так случается что сам при этом не сегфолтится и перезаписывает твой указатель нулём.

Такие штуки неплохо отлавливает valgrind, но только если он не зафлуживает при этом весь вывод руганью на libc или на ещё на какую-нибудь интересную библиотечку, которую ты подключил депендансами.

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

52. "Выпуск языка программирования Rust 1.38"  +2 +/
Сообщение от eganruemail (?), 27-Сен-19, 13:58 
[i]но если в коде при этом разадресуется указатель, который _никак_не_может_быть_NULL_[/i] - то можно поставить бряк на модификацию этого указателя.

[i]А это может быть, если по-хорошему, вообще любой кусок кода.[/i] - не согласен. в худшем случае это код, который пишет в память в пределах одного процесса.

[i]А иногда, какой-то совершенно левый код[/i] - если у Вас в проекте появился совершенно левый код, то это повод для беспокойства вне завимости от языка.

Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

63. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от Аноним (63), 27-Сен-19, 14:47 
Вах, зачем так много пишешь?! Достаточно - УВР!!!!
Ответить | Правка | ^ к родителю #52 | Наверх | Cообщить модератору

74. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Ordu (ok), 27-Сен-19, 16:07 
> [i]но если в коде при этом разадресуется указатель, который _никак_не_может_быть_NULL_[/i]
> - то можно поставить бряк на модификацию этого указателя.

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

> [i]А это может быть, если по-хорошему, вообще любой кусок кода.[/i] - не
> согласен. в худшем случае это код, который пишет в память в
> пределах одного процесса.

Хорошее уточнение.

> [i]А иногда, какой-то совершенно левый код[/i] - если у Вас в проекте
> появился совершенно левый код, то это повод для беспокойства вне завимости
> от языка.

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

Ответить | Правка | ^ к родителю #52 | Наверх | Cообщить модератору

84. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от eganruemail (?), 27-Сен-19, 17:07 
[i]Если ты знаешь где он находится.[/i] - после того как Вы попали в исключение, то Вам уже известно какой поток, состояние регистров и стека. Чаще прочего этого достаточно чтобы определить, где проблема.

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

[i]с точностью до точного порядка инструкций[/i] - если нужно писать с точностью до порядка инструкций, то я пишу на ассемблере.
я редко пишу на ассемблере.

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

У меня наибольшие проблемы возникали когда время от времени программа неправильно работает(и никто толком ни в чем не уверен). Ничего не падает, но вроде бы иногда работает неправильно. И думай что-хочешь.

Ответить | Правка | ^ к родителю #74 | Наверх | Cообщить модератору

128. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от Ordu (ok), 27-Сен-19, 20:54 
> [i]Если ты знаешь где он находится.[/i] - после того как Вы попали
> в исключение, то Вам уже известно какой поток, состояние регистров и
> стека. Чаще прочего этого достаточно чтобы определить, где проблема.

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

> Понятное дело, что может быть код, который случайным образом портит память: но
> такой код, как правило, сам довольно быстро вызывает исключения и всё
> становится более менее понятно.
> [i]с точностью до точного порядка инструкций[/i] - если нужно писать с точностью
> до порядка инструкций, то я пишу на ассемблере.
> я редко пишу на ассемблере.

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

> У меня наибольшие проблемы возникали когда время от времени программа неправильно работает(и
> никто толком ни в чем не уверен). Ничего не падает, но
> вроде бы иногда работает неправильно. И думай что-хочешь.

Угу. Это ещё хуже, потому что нет точного критерия "программа сработала неправильно". Сегфолт по-крайней мере окончателен. Но представь себе, что какая-то часть программы иногда работает неправильно, а другая часть иногда на это неправильно реагирует сегфолтом. И при этом неправильное поведение остаётся внутри программы незамеченным, если не было сегфолта. А если при этом неправильное поведение случается при каком-нибудь очень интересном стечении обстоятельств, которое происходит с частотой 0.0001, то есть один раз из 10000. И мало того, оно зависит от чего-нибудь, что меняется от запуска к запуску -- показания часов, состояние генератора случайных чисел, скорость чтения с жёсткого диска, переключение задач в точно заданный момент, обрыв tcp-соединения между входящими килобайтами с номерами 128*k+31 и 128*k+32 для любого целого k>0, или ещё что-нибудь в этом роде.

Представь себе это. Чуешь как интересно будет отлаживать? Особенно если ты не знаешь всех этих особенностей бага до того, как начал его ловить.

Ответить | Правка | ^ к родителю #84 | Наверх | Cообщить модератору

131. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от Аноним (139), 27-Сен-19, 21:43 
то есть, тестов нет. Ни юнит, ни функциональных. Я прав?
Ответить | Правка | ^ к родителю #128 | Наверх | Cообщить модератору

152. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Ordu (ok), 27-Сен-19, 23:25 
> то есть, тестов нет. Ни юнит, ни функциональных. Я прав?

Тесты снижают вероятность такого, но не изничтожают её. И да, это если они есть. Тесты, например, плохо умеют в data-race'ы. Крайне плохо. Тут разве что fuzzing может помочь, и то я не знаю, насколько он может помочь: я не пробовал им искать data-race'ы.

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

Ответить | Правка | ^ к родителю #131 | Наверх | Cообщить модератору

70. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от Аноним (69), 27-Сен-19, 15:53 
> хуже всего если ошибка в алгоритме

Вроде бы язык, который от этого помогает, ещё не изобрели. Или я что-то пропустил?

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

190. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (189), 29-Сен-19, 12:08 
Ещё хуже, если ошибка - на генном уровне, а чел в программинг попёрси, да ещё и течёт постоянно, как сучка, как только речь про плюсы заходит.
Будто бы пролистывание пары книжек по Си++ и участие (по чьей-то глупости или недосмотру) в паре Си++ проектов исправит эту ошибку генах...
Скорблю.
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

37. "Выпуск языка программирования Rust 1.38"  –5 +/
Сообщение от Аноним (37), 27-Сен-19, 13:11 
Не начинай с сей, иначе будешь потерян для общества: начнёшь переизобретать строки, списки, классы…
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от JustCurious (?), 27-Сен-19, 11:27 
Плюсы. Раст после плюсов одно удовольствие учить, а плюсы после раста будет сложно.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

26. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (27), 27-Сен-19, 12:18 
Только плюсы и надо учить. Раст тебе никогда нигде не пригодится.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

107. "Выпуск языка программирования Rust 1.38"  +2 +/
Сообщение от burjui (ok), 27-Сен-19, 19:20 
Зависит от того, насколько вы уверены в успехе Rust, собираетесь ли вы на нём писать профессионально и понравится ли вам вообще на нём писать. Прямо сейчас работу на нём вы вряд ли найдёте (впрочем, прямо сейчас вы его и не знаете). Будущее никто наперёд не знает. Я лишь могу говорить о своём опыте, и он в случае с Rust весьма положителен. Как и у всех, у меня ушло порядочно времени, чтобы освоится с его семантикой, особенно с borrow checker, но это того стоило. Знаете, мне это напомнило знакомство с git после svn. Я не к тому, что C++ отстал от жизни (хотя некоторая доля правды в этом есть), просто сначала тоже многое непривычно и непонятно: зачем так сделано, почему компилятор постоянно вставляет палки в колёса, неужели нельзя сделать проще? Но потом наступает "просветление", и внезапно понимаешь, что это не палки в колёса, а этакий аналог муштры от мудрого наставника, необходимой для сдвига парадигмы и разрушения застоявшихся шаблонов. Когда долго занимаешься одним и тем же, "глаз замыливается" и становится сложнее даже представить себе, что задачи можно решать другими способами.

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

Ну, а если у вас уже есть источник заработка, то изучайте Rust. После освоения основ прогресс пойдёт быстрее, и совершенно точно нервы себе сбережёте на отладке. После C++ это удивительно, но за всё время использования Rust отладчиком почти не пользовался. Скажем так, отлаживать падения и порчу памяти - это удовольствие для особых ценителей, и с Rust вам это не грозит с вероятностью 99.5%. Ну, и в целом писать на нём приятнее, гораздо меньше острых углов.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

132. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (139), 27-Сен-19, 21:45 
Два чаю этому просветлённому.
Ответить | Правка | ^ к родителю #107 | Наверх | Cообщить модератору

205. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от j3t (?), 30-Сен-19, 22:12 
ООП тебя погубит в крестах как и в других недоООП языках, те же кресты функциональщину вводят, так как объекты провалились, но еще долго будут жить как COBOL
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Выпуск языка программирования Rust 1.38"  +6 +/
Сообщение от Анонимemail (4), 27-Сен-19, 10:48 
я бы начинал с раста
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Выпуск языка программирования Rust 1.38"  +3 +/
Сообщение от Anonymoustus (ok), 27-Сен-19, 11:04 
До появления хруста я был уверен, что более негодный синтаксис, чем у Брейнфака и прочей «эзотерики», изобрести невозможно.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

15. "Выпуск языка программирования Rust 1.38"  –3 +/
Сообщение от JustCurious (?), 27-Сен-19, 11:28 
Но после появления раста, так случилось, что вы нашли что-то более эзотерическое, чем Brainfuck?
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

47. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от Аноним (45), 27-Сен-19, 13:45 
LISTEN TO ME VERY CAREFULLY methodName
I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE arg1
I NEED YOUR CLOTHES YOUR BOOTS AND YOUR MOTORCYCLE arg2
GIVE THESE PEOPLE AIR
[Statements]
HASTA LA VISTA, BABY
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

82. "Выпуск языка программирования Rust 1.38"  –2 +/
Сообщение от EnemyOfDemocracy (?), 27-Сен-19, 16:55 
Диалект COBOL-а?
Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

169. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (45), 28-Сен-19, 05:28 
Это всего лишь креатив на сишном макропроцессоре - ArnoldC.
Ответить | Правка | ^ к родителю #82 | Наверх | Cообщить модератору

182. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от Wilem (?), 28-Сен-19, 15:12 
Можешь привести пример негодного синтаксиса, объяснить в чём негодность?
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

14. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от anonos (?), 27-Сен-19, 11:27 
умею в питон говнокодить средние проекты, насколько долго переучиваться?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

25. "Выпуск языка программирования Rust 1.38"  +2 +/
Сообщение от Аноним (27), 27-Сен-19, 12:17 
Мы все проекты потихоньку переводим с пистона на го. Раст тебе решительно ни к чему да и базы тебе наверняка не хватит.
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

51. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от Аноним (51), 27-Сен-19, 13:56 
наавсегда.
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

54. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от th3m3 (ok), 27-Сен-19, 14:03 
В течении года, можно норм освоить.
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

104. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Вася Теркин (?), 27-Сен-19, 18:34 
Начни с того, зачем тебе это. Язык - всего лишь средство решения определенного круга задач. "Стрелять из пушки по воробъям" и "выпиливать лобзиком по чугунию" - первый признак непрофессионализма.
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

143. "Выпуск языка программирования Rust 1.38"  +7 +/
Сообщение от Led (ok), 27-Сен-19, 22:37 
> умею в питон говнокодить средние проекты, насколько долго переучиваться?

На метлу/швабру/вантуз - год-два...

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

16. "Выпуск языка программирования Rust 1.38"  +4 +/
Сообщение от Аноним (16), 27-Сен-19, 11:30 
Изучения и практика на rust оч. полезна сишникам (с плюсами тоже), как минимум потому, что здорово вправляет мозги на правильную (корректную и быструю) работу с памятью.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

29. "Выпуск языка программирования Rust 1.38"  +2 +/
Сообщение от Совершенно другой аноним (?), 27-Сен-19, 12:28 
Если не сложно, то можно немного подробнее? Правда очень интересно.
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

34. "Выпуск языка программирования Rust 1.38"  –8 +/
Сообщение от kiwinix (?), 27-Сен-19, 13:03 
Открой растбук и читни. Он на русском уже есть
Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

49. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (45), 27-Сен-19, 13:47 
Максимум что ты от этих безумных фанатов дождёшься - это магическое заклинание "читай растобук".
Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

83. "Выпуск языка программирования Rust 1.38"  +5 +/
Сообщение от EnemyOfDemocracy (?), 27-Сен-19, 16:56 
А по си книжки читать не надо? херак-херак и оно само сегфолт?
Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

95. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от Аноним (45), 27-Сен-19, 18:00 
За описанием *достоинств* си - не надо, его распространение, и многочисленные *неудачные* попытки закопать няшную сишечку говорят сами за себя. А причину большинства сегфолтов ищите в зеркале и кривизне культяпок.
Ответить | Правка | ^ к родителю #83 | Наверх | Cообщить модератору

133. "Выпуск языка программирования Rust 1.38"  +3 +/
Сообщение от Аноним (139), 27-Сен-19, 21:48 
ещё один "пищите без ошибок"
Ответить | Правка | ^ к родителю #95 | Наверх | Cообщить модератору

185. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от Аноним (45), 29-Сен-19, 05:07 
Когда научитесь писать на русте без unsafe - возвращайтесь.
Ответить | Правка | ^ к родителю #133 | Наверх | Cообщить модератору

188. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Илья (??), 29-Сен-19, 08:53 
Вообще на расте небезопасные блоки стараются всеми способами обходить.

То есть, если у вас нет небезопасных блоков в коде то вы гарантированно не натолкнётесь на
- сегфолт
- гонки за данные
- разыменование пустого указателя
- выход за границы области памяти с дальнейшим продолжением выполнения

Но си++ программистам ведь неведомы такие проблемы, они же без ошибок пишут

Ответить | Правка | ^ к родителю #185 | Наверх | Cообщить модератору

55. "Выпуск языка программирования Rust 1.38"  +3 +/
Сообщение от Аноним (16), 27-Сен-19, 14:03 
https://blog.regehr.org/archives/1520

также, "повоевав" с borrow checker в rust и сделав всё корректно, можно понять что такое "владение", зачем нужно перемещение, ссылки и когда лучше использовать копирование (при этом в rust обязательно явно указать что надо копировать - через вызов .clone() плюс #derive(Copy) - только не надо этим злоупотреблять, скорость сильно просаживает).

с плюсами всё грустно, там ОЧЕНЬ сложно понять работает ли копирование объекта или перемещение, даже если прописаны конструктор перемещения и move оператор=. а ещё там RVO есть)

Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

64. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Совершенно другой аноним (?), 27-Сен-19, 14:57 
> https://blog.regehr.org/archives/1520

Просто приходится много писать именно на C (не ++), вот и заинтересовало чем мне это сможет помочь. Спасибо, почитаю.

Ответить | Правка | ^ к родителю #55 | Наверх | Cообщить модератору

129. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Ordu (ok), 27-Сен-19, 21:31 
> Если не сложно, то можно немного подробнее? Правда очень интересно.

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

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

Прям скажем, все эти правила выполнять в C не удастся, потому что, например, C не позволяет отразить в типе указателя, куда этот указатель указывает -- на стек, в кучу, в статическую память? С точки зрения C, char* и в Африке char*, с точки зрения rust'а, могут быть нюансы: Box<c_char> -- это указатель на кучу, и соответственно код который перевыделяет память, будет принимать Box<c_char>, и с указателем на стек откажется работать. В C так не сделать, или можно но слишком сложно, может макросами и можно упростить, реализовав тривиальную параметризацию типов, да и то не факт. Но многие правила въедаются не то, что в мозг, они въедаются в пальцы, и твои пальцы отказываются потом писать с нарушением правил.

Эти правила ограничивают полёт мысли и творческую свободу, конечно, но опыт раста может помочь и здесь: есть Learning Rust With Entirely Too Many Linked Lists[1] и есть Rustonomicon[2], если ты скуришь их, попробуешь это на практике и посмотришь как делают другие, то ты не просто будешь знать правила, ты будешь знать как и когда их можно нарушать так, чтобы минимизировать негативные последствия. И опять же не запутаться соплями в борроу-чекере при этом.

Эти знания и навыки вполне можно перенести и в C, и соблюдать (или осмысленно нарушать) эти правила несмотря на то, что компилятор C совершенно не парится об этом и не может отслеживать lifetime'ы и ownership. И на то, чтобы освоить эти правила под чутким руководством borrow-checker'а, будет достаточно, на мой взгляд, 1-3 лет чтения мануалов, написания кода, чтения кода (преимущественно кода std, преимущественно прямо в браузере по ссылке из документации на std) и общения на реддите. Чтобы то же самое освоить с C, потребуется лет пять и ещё хороший ментор, который будет ревьюировать твой код, то есть реально сидеть, вникать и пороть тебя розгами.

[1] https://rust-unofficial.github.io/too-many-lists/
[2] https://doc.rust-lang.org/nomicon/

Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

105. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от Вася Теркин (?), 27-Сен-19, 18:43 
Изучение и практика работ Donald Ervin Knuth здорово вправляет мозги и производит профилактику говнокодинга. Начинать нужно с этого, а уж потом выбирать инструмент под конкретные задачи.
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

111. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (111), 27-Сен-19, 19:52 
Это сейчас как-то не модно. Все серебряную пулю ищут.
Ответить | Правка | ^ к родителю #105 | Наверх | Cообщить модератору

161. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от burjui (ok), 28-Сен-19, 01:40 
Rust не позиционируется как серебряная пуля и не обещает исправить кривые руки. Он обещает безопасную работу с памятью, если не используешь unsafe. Но даже если используешь, то при первой же проблеме будешь знать, где искать. Как часто нужен unsafe? Зависит от задачи. Если писать под голое железо типа Cortex-M3, то относительно часто, пока не напишешь безопасные обёртки над периферией (что уже сделано в svd2rust). Для прикладных задач - почти никогда.

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

Ответить | Правка | ^ к родителю #111 | Наверх | Cообщить модератору

171. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (45), 28-Сен-19, 05:33 
БЕЗОПАСНУЮ РАБОТУ С ПАМЯТЬЮ*

<span style="font-size: 1pt">* если не используешь unsafe</span>

// Вот так правильно

Ответить | Правка | ^ к родителю #161 | Наверх | Cообщить модератору

201. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Java (?), 30-Сен-19, 17:21 
Да пойми ты, что бизнес-задачам (например, телекому) как раз таки не нужен unsafe в 100% кода. Тем, кто пишет под конкретное железо обёртку для первых - нужен.

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

Ответить | Правка | ^ к родителю #171 | Наверх | Cообщить модератору

17. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Анонимemail (17), 27-Сен-19, 11:32 
тоже сейчас пока загружаю в себя плюсы, и не уходит сомнение что позже понадобится раст
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

18. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от Анонимemail (17), 27-Сен-19, 11:36 
есть годные материалы по Rust, для нубов?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

20. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (20), 27-Сен-19, 11:39 
https://www.rust-lang.org/learn
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

21. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от aa (?), 27-Сен-19, 11:47 
а не для нубов нормальное описание языка будет? типа стандарта c99
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

32. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от Аноним (20), 27-Сен-19, 12:55 
На той же странице есть ссылка: https://doc.rust-lang.org/reference/index.html

Для стандартизации язык ещё слишком молодой. Многие проекты до сих пор компилятся только с nightly.

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

35. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от kiwinix (?), 27-Сен-19, 13:05 
И что? Найтли очень даже стабилен. И Найтли в основном нужен для пары тройки фишек только
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

38. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от Аноним (20), 27-Сен-19, 13:11 
Меня просто бесит, когда компилятор ставится в обход системного пакетного менеджера. Найтли мало в каких дистрах есть, если вообще есть, поэтому ставить его приходится через rustup. Ставить себе бинарь через curl, вместо того, чтобы поставить бинарь, который вполне себе reproducible (в debian так) - мне не нравится. Особо упоротые могут даже bootstrappable build себе устроить, как это делается в guix. Но это всё не касается nightly, который нигде толком не опакечен. Желаю rust добра, самому нравится этот язык, но пока что есть вот такая неприятность. В идеальном мире все проекты должны были собираться с любой версией, поддерживающей Rust 2018.
Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

98. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от kaleru (?), 27-Сен-19, 18:08 
Наброшу чуть-чуть)
https://aur.archlinux.org/packages/rust-nightly
Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

120. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (20), 27-Сен-19, 20:37 
> Rust nightly времён палеозоя (1.26)

Ты серьёзно? Хоть заголовок новости прочитай

Ответить | Правка | ^ к родителю #98 | Наверх | Cообщить модератору

174. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от kaleru (?), 28-Сен-19, 06:42 
Ты мозг напряги. Там ставится последний билд, с коррекцией номера версии пакета
Ответить | Правка | ^ к родителю #120 | Наверх | Cообщить модератору

176. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (20), 28-Сен-19, 07:55 
Мой косяк, глянул в PKGBUILD и действительно, скачивается последняя доступная версия. Это победа. В одном(!) дистре есть раст найтли и то в ауре.
Ответить | Правка | ^ к родителю #174 | Наверх | Cообщить модератору

113. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от Илья (??), 27-Сен-19, 20:00 
Да, вариант не идеальный, но, заметьте, что он устанавливается в вашу домашнюю папку и не требует прав рута при установке.
Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

119. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (20), 27-Сен-19, 20:36 
А толку, если всё самое важное как раз в папке юзера?
Ответить | Правка | ^ к родителю #113 | Наверх | Cообщить модератору

122. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (20), 27-Сен-19, 20:41 
Можно запускать хруст из под другого юзера, но зачем весь этот цирк с конями, когда могло быть иначе? А если код, который он компилирует не должен попасть в чужие руки?
Ответить | Правка | ^ к родителю #119 | Наверх | Cообщить модератору

162. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от burjui (ok), 28-Сен-19, 01:44 
Ты что, боишься, что rustup убьёт твои данные? А ты не боишься, что пакет, устанавливаемый пакетным менеджером с правами root, потрёт вообщё всё, включая home? Установочные скрипты ещё никто не отменял. С такой паранойей лучше вообще комп не включать.
Ответить | Правка | ^ к родителю #119 | Наверх | Cообщить модератору

177. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (20), 28-Сен-19, 08:05 
Я пытаюсь сказать, что если раст хочет быть безопасным в плане памяти и ещё нескольких аспектах внутри языка, то было бы ещё полезно, если бы тулчейн тоже был безопасным. В данном случае, Trusting Trust не шутки и хорошо, если бинарь хоть сколько-то доверенный. Скачивать непойми что и где собранное через curl - ну завидую тебе, если тебя это вообще не напрягает. Тулчейн "безопасного" языка должен быть либо проверен возпроизводимыми сборками, либо проверен через Diverse Double-Compiling, либо собран из минимального бинарного зерна хотя бы. Вообще, rustc собирается из stage0 самого себя, что уже хоть что-то, но в идеальном мире stage0 должен быть таким: https://github.com/oriansj/stage0
В общем, расту ещё есть куда расти.
Ответить | Правка | ^ к родителю #162 | Наверх | Cообщить модератору

60. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (16), 27-Сен-19, 14:33 
rustonomicon
Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

96. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (45), 27-Сен-19, 18:03 
Не будет, эта хрень overengineered с самого рождения и в дальнейшем будет становиться только хуже, т.к. останавливаться авторы не собираются.

С прицелом на нубов проектировался golang.

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

91. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (91), 27-Сен-19, 17:42 
https://github.com/ruRust/rust_book_ru
https://github.com/ruRust/rust_book_2ed
1 и 2 издания, оба на русском
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

197. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от Проходил мимо (?), 30-Сен-19, 08:39 
Да, есть годная книга на русском языке от издательства ДМК-Пресс: https://dmkpress.com/catalog/computer/programming/978-5-9706.../
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

22. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от Андрей (??), 27-Сен-19, 12:08 
> предоставляет средства для достижения высокого параллелизма выполнения заданий

Really? По-настоящему эффективных "зелёных" потоков нет!
> ... The green-threading M:N model requires a larger language runtime to manage threads. As such, the Rust standard library only provides an implementation of 1:1 threading. ...

https://doc.rust-lang.org/book/ch16-01-threads.html

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

42. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от kiwinix (?), 27-Сен-19, 13:26 
tokio
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

43. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от Андрей (??), 27-Сен-19, 13:33 
это сторонняя библиотека
Ответить | Правка | ^ к родителю #42 | Наверх | Cообщить модератору

57. "Выпуск языка программирования Rust 1.38"  +4 +/
Сообщение от Аноним (57), 27-Сен-19, 14:12 
Это сторонняя библиотека типа плюсового буста. В ней находятся те вещи, которых нет в стандартной библиотеке, т.к. не совсем понятно, как их реализовать. Если их внесут в стандартную либу, придется потом долгое время тянуть груз обратной совместимости и поддержки, из-за этого замедлится и скорость разработки и удобство использования.

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

Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

61. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от Аноним (61), 27-Сен-19, 14:33 
Ну не скажите, tokio уже стандарт де факто когда речь идет о распаралеливании в расте..
И когда говорят Future - то подразумевается именно токио

есть еще на уровне очень сырого тестирования правда async/await. не уверен - это то же токио или у них там свои обработчики нитей

Ответить | Правка | ^ к родителю #57 | Наверх | Cообщить модератору

148. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от burjui (ok), 27-Сен-19, 22:59 
Вообще-то, семантика async/await уже обкатана, просто были некоторые сомнения насчёт синтаксиса, но он недавно устаканился. Планировали стабилизировать в 1.39, вроде.
Ответить | Правка | ^ к родителю #61 | Наверх | Cообщить модератору

165. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от анон (?), 28-Сен-19, 04:18 
То что сейчас находится в стандарте (еще не релизнуто, но уже известен номер версии и дата, когда точно релизнется) – это некоторые соглашения о стандартных интерфейсах и реализация ключевых слов async/await. А в токио как раз находится одна из реализаций этих асинхронных механизмов.

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

Ответить | Правка | ^ к родителю #61 | Наверх | Cообщить модератору

110. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от burjui (ok), 27-Сен-19, 19:33 
В Rust несколько другая идеология стандартной библиотеки: туда стараются добавлять только то, что необходимо, или то, что с очень большой вероятностью все будут пытаться реализовать сами практически в каждом проекте, и 99% сделают это хуже. Такие вещи, как green threads и coroutines, выносятся в крейты, т.к. их можно сделать множеством способов, и совершенно не очевидно, какой оптимальный. А, может, оптимального способа и вовсе не существует. Это не C++, здесь использование сторонних библиотек не только поощряется, а ещё и сильно проще благодаря Cargo, поэтому в этом нет никакой проблемы.
Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

154. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (153), 28-Сен-19, 00:27 
> а ещё и сильно проще благодаря Cargo

Ага, а потом будет очередной "Вспомнити leftpad."

Ответить | Правка | ^ к родителю #110 | Наверх | Cообщить модератору

159. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от burjui (ok), 28-Сен-19, 01:26 
Не будет. Нельзя просто так взять и удалить свой крейт с crates.io. Можно его "изъять из оборота" (yank), чтобы нельзя было на него ссылаться в публикуемых крейтах, но код будет по-прежнему доступен для тех, кто уже ссылается.
https://doc.rust-lang.org/cargo/commands/cargo-yank.html
Ответить | Правка | ^ к родителю #154 | Наверх | Cообщить модератору

186. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (45), 29-Сен-19, 05:09 
Периодически лежащий целиком официальный докерхаб гомерически смеется над адептами облачка.
Ответить | Правка | ^ к родителю #159 | Наверх | Cообщить модератору

192. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от burjui (ok), 29-Сен-19, 14:01 
Ну не пользуйтесь crates.io, если у вас паранойя. Подключайте крейты напрямую с github или где они там у кого лежат:

# Cargo.toml
[dependencies]
specs = { git = "https://github.com/slide-rs/specs", tag = "v0.15.1" }

Но, конечно, github тоже может упасть. И машина вас может сбить. Стоматолог - заразить вас ВИЧ. Лучше никуда не ходить и ничего не делать, а то мало ли.

Ответить | Правка | ^ к родителю #186 | Наверх | Cообщить модератору

202. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Java (?), 30-Сен-19, 17:27 
Cargo умеет в proxy registry. Т.е. дополнительно поднимаешь кеш у себя в компании и больше не теряешь доступ к тому, к чему один раз уже подцепился.
Ответить | Правка | ^ к родителю #186 | Наверх | Cообщить модератору

65. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним84701 (ok), 27-Сен-19, 14:57 
>> предоставляет средства для достижения высокого параллелизма выполнения заданий
> Really? По-настоящему эффективных "зелёных" потоков нет!
>> ... The green-threading M:N model requires a larger language runtime to manage threads. As such, the Rust standard library only provides an implementation of 1:1 threading. ...

Глупые люди потому что - не знают, что есть такая серебрянная пуля!

А не, вдвойне глупые - взяли, да удалили … 🙄
https://blog.rust-lang.org/2015/01/09/Rust-1.0-alpha.html
> Runtime freedom: Rust's runtime system and green-threading model has been entirely removed, which cut the static binary size of "hello world" in half and has opened the door to lower-level hooks into the standard library. Implemented by Aaron Turon.

https://github.com/rust-lang/rfcs/pull/230
> RFC: Remove runtime system, and move libgreen into an external library

Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

135. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (139), 27-Сен-19, 21:55 
Очень "глупые": взяли и вынески тяжёлый кусок рантайма в отдельную библятеку.
То ли дело го! В стандартной библятеке есть вообще всё. Удач с отладкой "странных" лагов.
Ответить | Правка | ^ к родителю #65 | Наверх | Cообщить модератору

151. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним84701 (ok), 27-Сен-19, 23:22 
> тяжёлый кусок рантайма

Да лан -- нам же говорят, что кастомная надстройка в виде юзерспейс-тредов будет "эффективнее" (видимо, за счет оверхеда) ;)

> Очень "глупые": взяли и вынески тяжёлый кусок рантайма в отдельную библятеку.
>> > RFC: Remove runtime system, and move libgreen into an external library

Чини детектор сарказма ;)


Ответить | Правка | ^ к родителю #135 | Наверх | Cообщить модератору

24. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от Аноним (27), 27-Сен-19, 12:16 
Раст нигде не используется потому что, сюрприз, сюрприз, раст увеличивает срок разработки. Так как на нем нет ни одного вменяемого программиста, а те школьники что есть кроме хеллоу ворлд ничего написать не смогли. А на Си разрабов с опытом в 20 лет хоть ложкой ешь.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

40. "Выпуск языка программирования Rust 1.38"  –3 +/
Сообщение от kiwinix (?), 27-Сен-19, 13:17 
Какой б***ь сюрприз??
Если программа компилится - то 99% что она работает. Никаких сюрпризов

Нигде не используется? Используется, и в серьезных конторах тоже. RocksDB(Facebook) но там ещё си, Fuchsia (google) там он как один из языков. Источник Википедия

Я не все проекты знаю.. но и разрабов много и проектов тоже. А в крипте - так ваще раст первый в списке язык

Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

44. "Выпуск языка программирования Rust 1.38"  +5 +/
Сообщение от Аноним (46), 27-Сен-19, 13:37 
Начинается в вашей мифологии Дропбокс тоже работает на Расте. Хотя там весь бекенд на Go. https://habr.com/ru/post/335056/

RocksDB написан на С++ https://en.wikipedia.org/wiki/RocksDB

Фуксия поддерживает приложения написанные для неё на расте. В ядре кода на расте нет. Есть несколько приложений и несколько игр и то данные как примеры  https://fuchsia.googlesource.com/fuchsia/

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

Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

62. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от kiwinix (?), 27-Сен-19, 14:39 
Ох, да ладно..на счёт RocksDB - извиняюсь.. Я вот правда думал что на Расте. А оказывается просто растовая обвязка есть(
Ответить | Правка | ^ к родителю #44 | Наверх | Cообщить модератору

136. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от Аноним (139), 27-Сен-19, 22:02 
Ох, лол. Ещё один "просветлённый" от мира го. Ваш го сколько пушился гуглом? Почти пять лет, напомню. Догадаешься зачем? Гуглу нужны сотни дешёвых макак, которые умеют в их инструмент. У мозилки_и_ко таких ресурсов нет. Да, раст ни разу не идеален, и проектов на нём не то, чтобы много. Но они есть. Из открытых — библиотеки Gecko и Firefox. Как ты думаешь, почему мозиловцам пришло в голову изобрести НОВЫЙ ЯЗЫК? Лень, выучить ЦэПэПэ или го? Или, всё-таки, они пытаются сделать инструмент удобный для себя и сообщества (приходится, ага. Ресурсов как у гугла нету же)?
Ответить | Правка | ^ к родителю #44 | Наверх | Cообщить модератору

172. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от Аноним (45), 28-Сен-19, 05:40 
Ваш раст сколько пушился мозилкой? Почти восемь лет, напомню. Догадаешься зачем? Мозилке нужны сотни дешёвых макак, которые умеют в их инструмент. У александреску таких ресурсов нет. Да, D ни разу не идеален, и проектов на нём не то, чтобы много. Но они есть. Как ты думаешь, почему александреску пришло в голову изобрести НОВЫЙ ЯЗЫК? Лень, выучить ЦэПэПэ? Или, всё-таки, они пытаются сделать инструмент удобный для себя и сообщества (приходится, ага. Ресурсов как у гугла нету же)?

// Fixed

P.S. Попытка неудачная, на выходе всё равно получилось говно, несмотря на все ресурсы.

Ответить | Правка | ^ к родителю #136 | Наверх | Cообщить модератору

203. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Java (?), 30-Сен-19, 17:29 
8 лет? Таки к 2023-му году изобрели машину времени уже? Приятно. А как с флаерами? Как там Алиса?
Ответить | Правка | ^ к родителю #172 | Наверх | Cообщить модератору

73. "Выпуск языка программирования Rust 1.38"  –2 +/
Сообщение от Аноним (69), 27-Сен-19, 16:01 
> А в крипте - так ваще раст первый в списке язык

Сам-то понял, что написал?
Кри́пта (от др.-греч. κρυπτή «крытый подземный ход; тайник») — в средневековой западноевропейской архитектуре одно или несколько подземных сводчатых помещений, расположенных под алтарной и хоральной частями храма и служащее для погребения и выставления для почитания мощей святых и мучеников.

Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

97. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от Аноним (45), 27-Сен-19, 18:08 
Ну всё правильно, заранее столбят место на кладбище. Мозилла заранее строит себе пирамиду, аки древнеегипетский фараон.
Ответить | Правка | ^ к родителю #73 | Наверх | Cообщить модератору

178. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от . (?), 28-Сен-19, 11:22 
>> А в крипте - так ваще раст первый в списке язык
>Сам-то понял, что написал?
>Кри́пта (кусь...)

В сленге промышленного быдлокодинга -- криптография. Так понятнее?

Ответить | Правка | ^ к родителю #73 | Наверх | Cообщить модератору

66. "Выпуск языка программирования Rust 1.38"  +2 +/
Сообщение от Аноним (16), 27-Сен-19, 15:27 
Чувак, ты ошибаешься. Rust использует Mozilla, причём эффективно. На расте там пишет небольшая команда, остальные сишники или js и проч.

Так вот, ребятам удалось написать (с "нуля") многопоточный парсер CSS на rust. До этого было 3 (!!) попытки сделать то же самое на C++, причем в команде мозиллы очень квалифицированные разработчики (другие просто не смогут писать такую сложную вещь как браузер), но все разы был облом, новый код глючил и не работал, отладка затягивалась на месяцы и в конечном итоге попытка "закапывалась".

Где ещё раст используется:
https://www.reddit.com/r/rust/comments/d9fww1/which_companie.../

Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

76. "Выпуск языка программирования Rust 1.38"  –3 +/
Сообщение от Аноним (86), 27-Сен-19, 16:13 
Правильнее было писать только Mozilla. Написали либу для css. Либу, Карл! За 9 лет!
Ответить | Правка | ^ к родителю #66 | Наверх | Cообщить модератору

137. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (139), 27-Сен-19, 22:06 
не гони. У меня есть знакомая студия игоределов, которые ушли из других игродельных контор. Пишут на расте всякую мелкую фигню. Пока не публично. Из прикольного — присылают бинари под 4 платформы одновременно (винда, мак, линуксы и фряха). Все бинари статичны.
Ответить | Правка | ^ к родителю #76 | Наверх | Cообщить модератору

180. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от Аноним (180), 28-Сен-19, 13:13 
Вот ты и ответил на вопрос что на расте нельзя сделать ничего, кроме мелкой фигни. Еще и не публично. Бинари статичные под 4 платформы и го может. Только го может гораздо больше.
Ответить | Правка | ^ к родителю #137 | Наверх | Cообщить модератору

71. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним84701 (ok), 27-Сен-19, 15:57 
> Так как на нем нет ни одного вменяемого программиста, а те школьники что есть кроме хеллоу ворлд ничего написать не смогли.

https://github.com/BurntSushi/ripgrep


ripgrep    rg -L -u -tc -n -w '[A-Z]+_SUSPEND'    404    0.079s
ucg    ucg --type=cc -w '[A-Z]+_SUSPEND'    390    0.163s
GNU grep    egrep -R -n --include='*.c' --include='*.h' -w '[A-Z]+_SUSPEND'    404    0.611s

ripgrep    rg -w 'Sherlock [A-Z]\w+'    5268    2.108s
GNU grep    LC_ALL=C egrep -w 'Sherlock [A-Z]\w+'    5268    7.014s

Или локально:


% time rg -uui uint16 /somelargeproject |wc -l
   40923
rg -uui uint16 /somelargeproject  2,22s user 2,99s system 372% cpu 1,400 total

% time /usr/bin/grep  -Iir uint16 /samelargeproject |wc -l                                  
   40923
/usr/bin/grep -Iir uint16 /samelargeproject 3,28s user 1,03s system 99% cpu 4,315 total
wc -l  0,00s user 0,01s system 0% cpu 4,312 total

% time rg -uui "sizeof\([a-z].*[0-9]\)" /somelargeproject |wc -l
   11690
rg -uui "sizeof\([a-z].*[0-9]\)" /somelargeproject  3,18s user 2,71s system 374% cpu 1,573 total

% time /usr/bin/grep -Iir "sizeof([a-zA-Z].*[0-9])" /somelargeproject |wc -l
   11690
/usr/bin/grep -Iir "sizeof([a-zA-Z].*[0-9])" /somelargeproject  3,36s user 1,21s system 99% cpu 4,577 total

% /usr/bin/grep -V                                                                                    
grep (GNU grep) 3.3

Хорошее, годное поколение подрастает, раз будучи школьниками уделали старперов :)

Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

75. "Выпуск языка программирования Rust 1.38"  –6 +/
Сообщение от Аноним (86), 27-Сен-19, 16:12 
Опять кроме синтетики ничего сказать не могут. Классика. Почему растобои всегда ведут дискуссию в одном ключе? У вас методичка есть как защищать раст на опеннете?

Синтетику можно подогнать к чему угодно когда угодно.

Ответить | Правка | ^ к родителю #71 | Наверх | Cообщить модератору

78. "Выпуск языка программирования Rust 1.38"  –2 +/
Сообщение от Аноним (78), 27-Сен-19, 16:25 
4 ядра обогнали 1.
Ответить | Правка | ^ к родителю #75 | Наверх | Cообщить модератору

80. "Выпуск языка программирования Rust 1.38"  +2 +/
Сообщение от Аноним84701 (ok), 27-Сен-19, 16:33 
> 4 ядра обогнали 1.

Реальных ядер только 2, если что.
Ну и я весь внимание и жду с нетерпением патч/опции запуска grep на нескольких ядрах.

Ответить | Правка | ^ к родителю #78 | Наверх | Cообщить модератору

79. "Выпуск языка программирования Rust 1.38"  –2 +/
Сообщение от Аноним84701 (ok), 27-Сен-19, 16:27 
> Опять кроме синтетики ничего сказать не могут. Классика.

Специально для танкистов добавил уточнение про "локально".  "Локально" - это значит на реальной репе в 2.5 GB кода на собственном локалхосте.
Теперь жду объяснений про "синтетику" и примеров "несинтетики" :)

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

Т.е. по теме ничего не будет, будет батхерт? :)

> Синтетику можно подогнать к чему угодно когда угодно.

Ну давайте подгон под grep, я только за!

Ответить | Правка | ^ к родителю #75 | Наверх | Cообщить модератору

85. Скрыто модератором  –5 +/
Сообщение от Аноним (86), 27-Сен-19, 17:17 
Ответить | Правка | ^ к родителю #79 | Наверх | Cообщить модератору

93. Скрыто модератором  +6 +/
Сообщение от Аноним84701 (ok), 27-Сен-19, 17:50 
Ответить | Правка | ^ к родителю #85 | Наверх | Cообщить модератору

77. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (78), 27-Сен-19, 16:24 
> system 372% cpu 1,400 total
> system 99% cpu 4,315 total

То есть выигрыш алгоритмический.

Два вопроса:
1. почему в 1м варианте (rust) ядра частично проставивают?
2. почему второй вариант (С) "не смогли" распараллелить?

Ответить | Правка | ^ к родителю #71 | Наверх | Cообщить модератору

99. "Выпуск языка программирования Rust 1.38"  –3 +/
Сообщение от Аноним (45), 27-Сен-19, 18:12 
Вспоминается статья со сравнением производительности aws-кластера hadoop'а и grep'а. Угадайте кто выиграл.
Ответить | Правка | ^ к родителю #77 | Наверх | Cообщить модератору

115. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от Аноним (115), 27-Сен-19, 20:10 
Раст.
Ответить | Правка | ^ к родителю #99 | Наверх | Cообщить модератору

158. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Ordu (ok), 28-Сен-19, 01:25 
> 1. почему в 1м варианте (rust) ядра частично проставивают?

Если там написано 375%, то есть 25% одного ядра не было занято ripgrep'ом, я подозреваю, что это из-за того, что они были заняты чем-то ещё. Выводом в консоль, например.

> 2. почему второй вариант (С) "не смогли" распараллелить?

Потому что писали его при царе Горохе, когда никому в голову не приходило параллелить. А теперь "работает, не трожь", то есть не осталось никого, кому было бы интересно этот код переписывать.

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

Ответить | Правка | ^ к родителю #77 | Наверх | Cообщить модератору

140. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Ололо (?), 27-Сен-19, 22:26 
Как там насчёт сравнения с The Silver Searcher (ag), написанном на C?
Ответить | Правка | ^ к родителю #71 | Наверх | Cообщить модератору

155. "Выпуск языка программирования Rust 1.38"  –2 +/
Сообщение от Аноним84701 (ok), 28-Сен-19, 00:31 
> Как там насчёт сравнения с The Silver Searcher (ag), написанном на C?
>> Regex searching uses PCRE's JIT compiler (if Ag is built with PCRE >=8.21).

Угу, угу.


% ag --version                                                                          
ag version 2.2.0
Features:
  +jit +lzma +zlib

% rg --version
ripgrep 11.0.2
+SIMD -AVX (compiled) # это конечно круто, но AVX тута вот нема :)
+SIMD -AVX (runtime)

% time rg -uuui "sizeof\([a-z].*[0-9]\)" /somelargeproject |wc -l
   11691
rg -uuui "sizeof\([a-z].*[0-9]\)" /somelargeproject  3,46s user 3,29s system 376% cpu 1,795 total

% time rg -i "sizeof\([a-z].*[0-9]\)" /somelargeproject |wc -l
   11687
rg -i "sizeof\([a-z].*[0-9]\)" /somelargeproject  3,61s user 3,10s system 377% cpu 1,777 total

% time ag -iur "sizeof\([a-zA-Z].*[0-9]\)" /somelargeproject |wc -l
   11691
ag -iur "sizeof\([a-zA-Z].*[0-9]\)" /somelargeproject  3,39s user 3,88s system 350% cpu 2,073 total
wc -l  0,00s user 0,03s system 1% cpu 2,068 total

% 3,24s user 4,40s system 353% cpu 2,161 total

% 3,39s user 3,88s system 350% cpu 2,073 total


без опции -u (11687 результатов)

3,01s user 3,65s system 337% cpu 1,975 total
3,05s user 3,35s system 339% cpu 1,883 total


три прогона


% time rg -uuui uint16 /somelargeproject |wc -l                                                  
   40925
rg -uuui uint16 /somelargeproject  2,50s user 3,08s system 372% cpu 1,497 total
wc -l  0,01s user 0,03s system 2% cpu 1,492 total

% time ag -iur uint16 /somelargeproject|wc -l
   40925
ag -iur uint16 /somelargeproject  3,36s user 3,52s system 284% cpu 2,416 total
wc -l  0,00s user 0,03s system 1% cpu 2,411 total

% 3,23s user 3,48s system 282% cpu 2,372 total

% 3,16s user 3,70s system 286% cpu 2,398 total


немного синтетики:

% seq 100000000 > testit  # tmpfs
% echo foobar >> testit
% time ag -ic f testit
1        # посл. строчки с reзультатом я вырезал - итак слишком длинная простыня получилась
ag -ic f testit  6,72s user 0,14s system 99% cpu 6,871 total
%2 6,73s user 0,17s system 99% cpu 6,908 total
%3  6,63s user 0,14s system 99% cpu 6,785 total

% time grep -ic f testit
/usr/bin/grep --color=auto -ic f testit  2,06s user 0,31s system 99% cpu 2,375 total

% time rg -ic f testit
rg -ic f testit  0,31s user 0,22s system 99% cpu 0,533 total
=========
% time ag -ic foobar testit
ag -ic foobar testit  0,61s user 0,14s system 99% cpu 0,754 total
%2  0,78s user 0,22s system 99% cpu 1,004 total
%3  0,69s user 0,21s system 99% cpu 0,903 total

% time rg -ic foobar testit
rg -ic foobar testit  0,80s user 0,17s system 99% cpu 0,974 total
%2  0,78s user 0,13s system 99% cpu 0,908 total
%3  0,69s user 0,18s system 99% cpu 0,879 total

% time /usr//bin/grep -ic foobar testit
/usr/bin/grep -ic foobar testit  2,21s user 0,23s system 99% cpu 2,445 total
%2  2,27s user 0,23s system 99% cpu 2,496 total
%3 2,24s user 0,24s system 99% cpu 2,479 total
==========
% time rg -ic 1 testit  
56953280
rg -ic 1 testit  6,52s user 0,13s system 99% cpu 6,663 total

% time /usr/bin/grep -ic 1 testit
56953280
/usr/bin/grep -ic 1 testit  4,49s user 0,31s system 99% cpu 4,803 total

% time ag -ic 1 testit
80000001 # похоже, оно считает не строки, а кол. матчей
ag -ic 1 testit  8,14s user 1,04s system 99% cpu 9,188 total
=========
# далее по просты^W тексту просто взято лучшее время из 3 запусков
=========
% time ag -ic "12.[1-3]4" testit
119940
ag -ic "12.[1-3]4" testit  1,75s user 0,14s system 99% cpu 1,899 total

% time /usr/bin/grep -ic "12.[1-3]4" testit
/usr/bin/grep -ic "12.[1-3]4" testit  2,58s user 0,25s system 99% cpu 2,843 total

% time rg -ic "12.[1-3]4" testit
rg -ic "12.[1-3]4" testit  2,49s user 0,11s system 99% cpu 2,606 total
===========
% time /usr/bin/grep -ic "^1" testit
11111112
/usr/bin/grep -ic "^1" testit  2,68s user 0,27s system 99% cpu 2,971 total

% time ag -ic "^1" testit
ag -ic "^1" testit  2,27s user 0,27s system 99% cpu 2,546 total

% time rg -ic "^1" testit
rg -iuuc "^1" testit  9,93s user 0,13s system 99% cpu 10,057 total
===========
% time rg -ic "1001" testit
49979
rg -ic "1001" testit  1,15s user 0,16s system 99% cpu 1,313 total
% time ag -ic "1001" testit
49980
ag -ic "1001" testit  0,74s user 0,23s system 99% cpu 0,974 total
% time /usr/bin/grep -ic "1001" testit
49979
/usr/bin/grep -ic "1001" testit  2,56s user 0,31s system 99% cpu 2,870 total


Ответить | Правка | ^ к родителю #140 | Наверх | Cообщить модератору

118. "Выпуск языка программирования Rust 1.38"  –3 +/
Сообщение от аноним3 (?), 27-Сен-19, 20:34 
а еще синтаксис раст такое уг, что прочесть его через пару лет сможет не каждый. а там и язык сменится)) короче он далек от реальной сферы применения.
Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

28. "Выпуск языка программирования Rust 1.38"  +2 +/
Сообщение от Аноним (28), 27-Сен-19, 12:24 
Язык снабжён огромным количеством runtime сахара, но всё это тонет в куче синтаксического мусора. По моему скромному мнению Swift, Nim и python вполне адекватные и современные языки с простым и выразительным синтаксисом. Скобочный синтаксис это прошлый век, но ручное управление памятью - для низкоуровневых задач вполне приелемо, поэтому скобочный Си всегда будет нужен. Даже Си++ имеет более низкий порог вхождения чем Rust, при этом Си++ был разработан давно, а это значит что создатели Rust не получилось учесть опыт разработчиков Си++, т.к. по совокупности свойств Си и Си++ опережают Rust, к сожалению.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

30. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Fatum (??), 27-Сен-19, 12:51 
Какие его годы - вырастет еще мальчонка. Swift | Nim | Python решают совершенно иной круг задач нежели C | C++ | Rust - сравнение тут неуместно.
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

41. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от kiwinix (?), 27-Сен-19, 13:21 
Особенно производительность Пайтона может как-то вообще стоять рядом с растом.. Питона даже PHP уделывает... А вы тут с Растом сравнили
Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

81. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (28), 27-Сен-19, 16:38 
Не знаю в какой ситуации пэхапэ уделывает питона, но я за семь лет использования питона, ни разу не сталкивался с проблемой нехватки времени ЦПУ в задачах решаемых на питоне, при этом графически нагруженные приложения работают у меня на целеронах и атомах.
Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

138. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (139), 27-Сен-19, 22:22 
Ну смотри: я такое недавно реализовывал для "анализа" пролетающего в наш же сервис трафика. Задача:  необходимо посчитать неопределённое количество сообщений из UDP-"сокета" и каждую секунду впихивать в KV-хоронилище результат в виде суммы по ключам сообщений со сбросом счётчика. Сообщение — UDP-пакет вида ```key{:,=,/}value```. Однопоточное нечто на похапэ 7.2 (вроде) порвало мой многопоточный нетривиальный код на питоне со счётом 0:400 (в количестве потерянных пакетов в секунду) при общем потоке чот около 15000-20000 сообщений в секунду. Это была основная характеристика. По памяти я тоже (вроде) проиграл раза в 2. После такого унижения смеяться совсем не захотелось. Хотел отомстить, но крыть было нечем.
Ответить | Правка | ^ к родителю #81 | Наверх | Cообщить модератору

121. "Выпуск языка программирования Rust 1.38"  –4 +/
Сообщение от аноним3 (?), 27-Сен-19, 20:39 
ты где это видел такого питона чтоб так тихо полз?))) скрипты на питоне прекрасно летают. чес слово не замечал большой разницы с тем же башем, или другими приложениями в консоли. если ты только его не тормозишь через input().
Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

145. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (139), 27-Сен-19, 22:39 
Соглашусь про мусор. Только мусор этот не синтаксический, а визуальный. Привычки искать парные символы, вот это вот всё…
Все эти свифты, нимы и пыхтоны обладают одной интересной особенностью — ЖИРНЮЧИМ рантаймом. И это имеет свою цену. В первую очередь — размер финального "бинаря". Скомплить сколь-нибудь сложное питононячье приложение как статический бинарник под большинство платформ ты, скорее всего не сможешь. Двое других тянут с собой приличный запас "батареек". И если хэллоуворд на NIM занимает куда меньше чем тот же хэллоуворд на свифте (спасибо умному линковщику), то вот более-менее работающее веб-приложение с приличным деревом зависимостей не оставит тебя равнодушным.
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

193. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Anonim (??), 29-Сен-19, 18:41 
Не трясите ерундой.
https://hackaday.com/wp-content/uploads/2018/09/graph.png
Ответить | Правка | ^ к родителю #145 | Наверх | Cообщить модератору

31. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от kiwinix (?), 27-Сен-19, 12:52 
> пакетный менеджер Cargo, позволяющий получить нужные для программы библиотеки в один клик

Да не в один клик, а в один пись...

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

88. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от user90 (?), 27-Сен-19, 17:29 
> :type_name::‹T›());

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

112. "Выпуск языка программирования Rust 1.38"  +2 +/
Сообщение от Аноним (111), 27-Сен-19, 19:55 
Ты не одинок.
Ответить | Правка | ^ к родителю #88 | Наверх | Cообщить модератору

114. "Выпуск языка программирования Rust 1.38"  +4 +/
Сообщение от burjui (ok), 27-Сен-19, 20:07 
Если вы плохо знаете язык, то это ваша проблема, а не языка. Любой, кто знает Rust, читает это без напряга и сразу понимает, что это значит. А у вас подход, как у каждого второго комментатора в новостях про Rust: "Буээ, ужасный синтаксис, да ещё и не такой же, как у C++! Я языку не уделил даже десятой части времени, потраченной на освоение C++, но читать не могу не потому, что я предвзят и ленив, а потому что язык - дерьмо! А раз язык - дерьмо, то его изучение - пустая трата времени. Шах и мат, растоманы!"

Вот вы почитайте код STL и скажите после этого, какой у C++ изящный и интуитивно понятный синтаксис. Однако под новостями о C++ даже близко нет такого количества нытья. По-моему, это говорит лишь о двойных стандартах. Вы по-русски хорошо читаете? А вот подавляющая часть иностранцев - нет. Как вы думаете, почему? Наверное, потому, что вы в нём варитесь уже больше десятка лет, а они его видят впервые. Почему-то, это всем очевидно, но как только разговор заходит о синтаксисе не естественного языка, а языка программирования, вы резко забываете об этом и считаете, что ваша бурная висцеральная реакция - вина разработчика, и никого другого.

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

Ответить | Правка | ^ к родителю #88 | Наверх | Cообщить модератору

123. "Выпуск языка программирования Rust 1.38"  –4 +/
Сообщение от аноним3 (?), 27-Сен-19, 20:43 
плюсую за то что смог выучить весь синтаксис плюсов и их изменения. я вот только думаю где такого гения нашли? даже мастера плюсов говорят , что они не знают всего языка, а тыт тут говоришь , что знаешь. извини это хвастовство.
Ответить | Правка | ^ к родителю #114 | Наверх | Cообщить модератору

125. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от burjui (ok), 27-Сен-19, 20:49 
Где я так говорю? Приведите цитату, будьте любезны.
Ответить | Правка | ^ к родителю #123 | Наверх | Cообщить модератору

124. "Выпуск языка программирования Rust 1.38"  –1 +/
Сообщение от user90 (?), 27-Сен-19, 20:48 
> Вообще, поражаюсь таким, как вы. Как вы умудряетесь развиваться как программисты ...

Деградирую.. К тому же я юууузер а не кодер, на ник посмотрите в конце концов!

Ответить | Правка | ^ к родителю #114 | Наверх | Cообщить модератору

126. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от burjui (ok), 27-Сен-19, 20:54 
> на ник посмотрите

Выше есть комментарий от пользователя с ником "заминированный тапок". Это так, к слову.

Ответить | Правка | ^ к родителю #124 | Наверх | Cообщить модератору

134. "Выпуск языка программирования Rust 1.38"  –2 +/
Сообщение от user90 (?), 27-Сен-19, 21:54 
> Если вы плохо знаете язык, то это ваша проблема, а не языка.

Поясню свой базар)) Мне честно говоря плевать на сам раст с 9го этажа, речь только про то, что мозилла не сумела впихнуть свои гениальные идеи в адекватное текстовое представление. Ну не вышло! Толи букавок не хватило, то ли сами идеи не совсем того..

Ответить | Правка | ^ к родителю #114 | Наверх | Cообщить модератору

146. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от burjui (ok), 27-Сен-19, 22:54 
> мозилла не сумела

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

Ответить | Правка | ^ к родителю #134 | Наверх | Cообщить модератору

150. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от user90 (?), 27-Сен-19, 23:15 
> Сильное заявление.

Как раз самое банальнейшее. Достаточно просто сравнить с чем-то другим.

Ответить | Правка | ^ к родителю #146 | Наверх | Cообщить модератору

175. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от Илья (??), 28-Сен-19, 07:17 
> Желаю вам удачи.

Синтаксис нормальный у python или c#, или котлина там. И наверное сравнивают его по синтаксису именно с "красивыми" языками, а не с c++

Ответить | Правка | ^ к родителю #114 | Наверх | Cообщить модератору

166. "Выпуск языка программирования Rust 1.38"  +3 +/
Сообщение от анон (?), 28-Сен-19, 04:35 
Т.е. плюсовый

auto x = std::vector<int>();

ты понимаешь, а растовский

let x = std::any::type_name::‹i32›();

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

Ответить | Правка | ^ к родителю #88 | Наверх | Cообщить модератору

156. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Petremail (??), 28-Сен-19, 00:35 
Сначала "rustup update" а потом уже читаю комментарии уважаемых экспертов.
Пишем на нём инструменты для своих инженеров - пока нравится. Может и до основных сервисов дойдёт если так и продолжится. В отличие от других языков Rust у нас и Java и C++ разработчики хотят попробовать. Есть наконец-то общая тема.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

157. "Выпуск языка программирования Rust 1.38"  –2 +/
Сообщение от pripolz (?), 28-Сен-19, 00:38 
Создание и использование Раста совершенно логично. Невозможно создать современную систему без современных инструментов.

Одно только не понятно: зачем они написали "призван заменить Си"? На нем же давно уже никто не пишет. Самая лучшая среда программирования - Visual Studio его даже не поддерживает толком. Может еще Паскаль давайте заменим?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

160. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от аноним3 (?), 28-Сен-19, 01:29 
на си пишут и много. сколько низкоуровневых программ и драйверов ты знаешь на чем то другом. есть конечно, но это не в какие ворота не лезет рядом с сишным кодом.
Ответить | Правка | ^ к родителю #157 | Наверх | Cообщить модератору

181. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Аноним (180), 28-Сен-19, 13:17 
Потому что до уровня С++ это месиво не дотягивает. Поэтому решили заменить то что может заменить что угодно.
Ответить | Правка | ^ к родителю #157 | Наверх | Cообщить модератору

183. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Wilem (?), 28-Сен-19, 15:22 
Это студия-то лучшая? Мда, тяжело некоторые люди живут.
Ответить | Правка | ^ к родителю #157 | Наверх | Cообщить модератору

184. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от аноним3 (?), 28-Сен-19, 19:27 
у си всегда была одна лучшая студия и это текстовый редактор да gcc.
Ответить | Правка | ^ к родителю #183 | Наверх | Cообщить модератору

196. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от pripolz (?), 30-Сен-19, 03:20 
Не надо про простоту, 'жизни', это самое главное. Решается очень просто. Скачал, установил, запустил. Новый проект, кнопочка "билд"
Ответить | Правка | ^ к родителю #183 | Наверх | Cообщить модератору

191. "Выпуск языка программирования Rust 1.38"  +1 +/
Сообщение от Аноним (189), 29-Сен-19, 12:13 
Из того, что я уже в Расте увидел, сделал вывод, что, наверное впервые за всю историю развития императивных ЯП (ну, кроме Виртовско-Дейкстровско-Хоаровуских, наверное), развитие языка начали правильно и с привлечения грамотных математиков.
Имеет шанс.
А что будет с Си и Си++?
Они начнут движение в сторону Раст-мира.
Другое дело, что Си будет легче стать "как Раст", а вот На счёт Си++ - не уверен. Там уже столько тонн прилепок и "обеспечений совместимости" в стандартах наговнили, что "добавление ещё одной универсальности", может его окончательно превратить в кучу неподъёмного и внутренне несовместимого говнища.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

204. "Выпуск языка программирования Rust 1.38"  +/
Сообщение от Java (?), 30-Сен-19, 17:39 
Кстати да, добавление в C lifetime'ов было бы весьма кстати.
Ответить | Правка | ^ к родителю #191 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2019 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру