The OpenNET Project / Index page

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



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

Оглавление

Выпуск языка программирования Rust 1.63, opennews (??), 11-Авг-22, (0) [смотреть все]

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


23. "Выпуск языка программирования Rust 1.63"  +1 +/
Сообщение от Аноним (23), 12-Авг-22, 00:11 
Всё таки Rust - переходный язык.

Он займёт свою нишу. Но он ОЧЕНЬ сложный ментально и семантически язык. И это абсолютно ненужная сложность.

Вместо алгоритмов, которые сами по себе простые, на них навешивается дикая помесь каких-то owned/borrowed/ref/arc типов. Какие типы имеют runtime значения, а какие только для компилятора?

И уже вообще непонятно как это внутри работает, какой memory layout и т.п.

Появятся более продвинутые языки, но потом.

Сейчас лучшая надежда - это Zig.
Очень классный и крутой язык.

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

28. "Выпуск языка программирования Rust 1.63"  +2 +/
Сообщение от Прохожий (??), 12-Авг-22, 01:00 
Если в целом понимаешь парадигму языка, то ничего сложного там нет. Выучить пару типов - на так уж сложно, их там немного. Memory layout тоже довольно простой, если подумать. То, что в стеке - то для компилятора, остальное - runtime, что логично.
Возможно, проблемы могут возникнуть при написании каких-то сложных структур данных, имеющих циклическую природу. Но при некоторой практике к этому можно привыкнуть.
А так - да, хороший язык тот, на котором ты думаешь. Но компьютерам пока до этого уровня очень далеко.
Ответить | Правка | Наверх | Cообщить модератору

35. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Ivan_83 (ok), 12-Авг-22, 02:21 
Зачем это всё нужно когда есть С!?
С решает куда больше чем раст, область применимости шире, читаемость выше, либ полным полно, людей тоже.

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

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

45. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Аноним (45), 12-Авг-22, 03:44 
ну-ка покажи свой гитхаб, посмотрим на твои "архитектурные решение"
зы. inb4 ничего не покажешь под банальным предлогом хейтерства гитхаба (разумеется, гитхаб тут не важен, выжен код)
Ответить | Правка | Наверх | Cообщить модератору

48. "Выпуск языка программирования Rust 1.63"  +6 +/
Сообщение от Ivan_83 (ok), 12-Авг-22, 03:54 
https://github.com/rozhuk-im/
Ответить | Правка | Наверх | Cообщить модератору

374. "Выпуск языка программирования Rust 1.63"  +1 +/
Сообщение от burjui (ok), 15-Авг-22, 13:59 
Как видим, сишники тоже делают ошибки (кто бы мог подумать). Собрал ваш проект строго по инструкции.

$ src/msd -c msd.conf
setrlimit(RLIMIT_MEMLOCK) error: 1 - `�J��
setpriority() error: 13 - `�J��

Видим какой-то мусор из памяти. Уже интересно :)

strerror_r(error, err_descr, sizeof(err_descr));
fprintf(stderr, "setrlimit(RLIMIT_MEMLOCK) error: %i - %s\n",
                error, err_descr);

То же самое видим по setpriority(). Ок, курим мануал по strerror_r:

int strerror_r(int errnum, char *buf, size_t buflen);
                      /* XSI-compliant */
char *strerror_r(int errnum, char *buf, size_t buflen);
                      /* GNU-specific */

Вот это уже очень интересно.

The GNU-specific strerror_r() returns a pointer to a string containing the error message. This may be either a pointer to a string that the function stores in buf, or a pointer to some (immutable)  static string (in which case buf is unused).

Всё, дальше читать не нужно. На скорую руку фиксим код:

const char *descr = strerror_r(error, err_descr, sizeof(err_descr));
fprintf(stderr, "setrlimit(RLIMIT_MEMLOCK) error: %i - %s\n",
                error, descr);

Аналогично делаем для setpriority(). Компилим и видим:

$ src/msd -c msd.conf
setrlimit(RLIMIT_MEMLOCK) error: 1 - Operation not permitted
setpriority() error: 13 - Permission denied

Ну что, Rust не нужен, да? Pull request сами себе напишите, чтобы не было стыдно принимать помощь из рук каких-то запомоенных хрустоманов, которые ничерта в программировании не понимают.

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

71. "Выпуск языка программирования Rust 1.63"  +4 +/
Сообщение от Анонн (?), 12-Авг-22, 09:59 
О! Наконец-то Си программист который (говорит что) умеет работать с памятью!
Срочно просим вас присоединиться к команде ядра линукс. А то там собрались рукoжопы, из-за которые постоянные проблемы. Про последние можете почитать тут https://www.opennet.ru/opennews/art.shtml?num=57622

Отправляешь свое резюме на kernel.org

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

117. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Аноним (117), 12-Авг-22, 14:08 
Хоть бы новость ту прочитал бы.

Там нет проблем с памятью.

Там же проблема сложных связанных структур. Одна структура ссылалась на другую - уже удаленную.

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

128. "Выпуск языка программирования Rust 1.63"  +4 +/
Сообщение от Анонн (?), 12-Авг-22, 14:30 
> обращению к освобождённой области памяти после удаления данной таблицы
> остаётся в списке, несмотря на очистку выделенной для хранения памяти

Это и называется проблемы в memory management))

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

386. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от burjui (ok), 17-Авг-22, 13:58 
Умеет ровно настолько, насколько ему позволяет компилятор, как и у всех сишников. См. код выше. Компилятор молча схавал, что дают, и даже не поперхнулся на попытке распечатать int как char*. Таких багов в дикой природе - миллионы.
Ответить | Правка | К родителю #71 | Наверх | Cообщить модератору

193. "Выпуск языка программирования Rust 1.63"  –1 +/
Сообщение от Прохожий (??), 12-Авг-22, 18:23 
> Зачем это всё нужно когда есть С!?

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

> Я вообще у себя в коде подсчёта ссылок избегаю и обхожу это архитектурно.

На вас ведь свет клином не сошёлся, правда? И вам лично Rust никто не навязывает. Продолжайте писать на C.

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

207. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Аноним (207), 12-Авг-22, 19:39 
>70% ошибок в софте на C - из-за плохого (никакого) управления памятью.

Вообще не ошибок, а эксплуатируемых уязвимостей. И не 70% а 75%.

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

233. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Ivan_83 (ok), 12-Авг-22, 20:49 
Очнитесь уже.
Для того с чем С не справляется уже лет 20 придуманы другие языки, всякие пхп, питоны, джавы, луа и прочие.

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

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

261. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Прохожий (??), 13-Авг-22, 01:10 
> Для того с чем С не справляется уже лет 20 придуманы другие языки, всякие пхп, питоны, джавы, луа и прочие.

Повторюсь, потому что с первого раза, я заметил, до вас редко доходит. В текущей нише (область системного программирования, высоконагруженного софта и т.п.) C уже не справляется. И не потому, что программисты - идиоты. И не потому, что культуры разработки нет. А потому, что в C есть куча серьёзных недоработок (слабая типизация, ручное управление памятью), которые не позволяют писать СЛОЖНОЕ СОВРЕМЕННОЕ  (специально для вас эти слова выделил) программное обеспечение с должным качеством. Не помогает при этом ничего - ни линтеры, ни санитайзеры, ни культура разработки, ни бог знает что ещё вы тут можете привести. C - изначально дефектный ЯП. Его до сих пор можно использовать, но это как закручивать шурупчики вручную, когда полуавтоматический шуруповёрт - обыденная повседневность: результат, возможно, будет тем же (если повезёт), но времени будет угроблено не в пример больше.

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

В чём это проявляется?

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

388. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от wyry (?), 17-Авг-22, 23:53 
Лицемерием попахивает, учитывая что первое, что делают изучающие Rust - читают о том, как подключать и взаимодействовать с Сишными библиотеками. Почему бы не создавать проекты исключительно на Rust ради соответствия всем требованиям безопасности? И да, что такое "СЛОЖНОЕ СОВРЕМЕННОЕ"? Вся ваша речь - это общие фразы без какой-либо конкретики. Тоже самое можно будет про Карбон или Котлин или Go начать говорить, совершенно голословно, а судьи кто?
Ответить | Правка | Наверх | Cообщить модератору

34. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Ivan_83 (ok), 12-Авг-22, 02:17 
Судя пото тому что я вижу раст писали контуженные.
Контузия у них случилась на производстве браузера с кучей легаси кода.

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

Зиг никакая не надежда, просто очередную кучку прогев в гугле задрало прогать всякий гуглотреш и они решили пострадать хернёй.

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

38. "Выпуск языка программирования Rust 1.63"  –1 +/
Сообщение от Аноним (23), 12-Авг-22, 03:00 
Zig в миллион, в миллиард раз лучше и эффективнее чем С.

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

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

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

42. "Выпуск языка программирования Rust 1.63"  +1 +/
Сообщение от Ivan_83 (ok), 12-Авг-22, 03:39 
Я ходил на сайт и ничего подобного там не заявлено.
Ответить | Правка | Наверх | Cообщить модератору

46. "Выпуск языка программирования Rust 1.63"  +2 +/
Сообщение от Анончик (?), 12-Авг-22, 03:45 
Да это один и тот же сумасшедший, сначало про карбон спамит, теперь про зиг.
Смотрите на стиль написание, заметите сходства.
Ответить | Правка | Наверх | Cообщить модератору

50. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Аноним (23), 12-Авг-22, 04:11 
Там какой-то дурачок местный про Carbon пишет из воинов супротив Rust-а.

Я лишь свой опыт описываю. Благо в своё время пару лет писал на С.

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

51. "Выпуск языка программирования Rust 1.63"  –2 +/
Сообщение от Аноним (23), 12-Авг-22, 04:30 
1. Можно сделать unrolling конкретного цикла (inline for, inline while).

2. Поддерживается SIMD в языка (тип Vector)

3. Можно изменить calling convention для конкретной функции

4. Можно вставлять ассемблерный код

5. Можно отключать padding для структур и их layout становится детерминированным (packed structs)

7. Нету типа "строка" (т.к. строки это просто набор байт и имеют разную кодировку).

8. Отличная интероперабельность с C из коробки

9. Можно задавать align для типа (структуры, выделенного куска памяти и т.п.; С этого не умеет и ничего об align не знает)

10. @fieldParentPtr - Given a pointer to a field, returns the base pointer of a struct. Как это сделать в С?

11. Можно получить frame функции - @frame - This function returns a pointer to the frame for a given function.

И ещё много того, чего С и не снилось.

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

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

52. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Ivan_83 (ok), 12-Авг-22, 05:25 
Это всё либо доступно в си либо не очень то и нужно.
Ответить | Правка | Наверх | Cообщить модератору

53. "Выпуск языка программирования Rust 1.63"  –3 +/
Сообщение от Аноним (23), 12-Авг-22, 06:04 
Ну да, ну да. Такого ответа я и ожидал.

И где же это доступно в С? Хотелось бы по пунктам.

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

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

Там ещё есть куча всего интересного.

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

Про корректность и сравнивать нечего.

Zig намного намного лучше и безопаснее чем С.

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

112. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Ivan_83 (ok), 12-Авг-22, 13:42 
Доступно в С означает что написано.
Это не означает что это втащили в сам С.
Этого вполне достаточно.
Ответить | Правка | Наверх | Cообщить модератору

54. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Аноним (23), 12-Авг-22, 06:10 
Ну-ка, как работать с direct i/o где память требует выравнивания 512?

Ах...в С этого сделать нельзя и можно передать память с неправильным выравниванием. И всё успешно скомпилируется.

Какая печаль :))) Какой "низкоуровневый" и "безопасный" язык С.

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

113. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Ivan_83 (ok), 12-Авг-22, 13:43 
Ответ очень простой: написать аллокатор или использовать имеющися.
Не нужно тащить это в язык.
Ответить | Правка | Наверх | Cообщить модератору

194. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Прохожий (??), 12-Авг-22, 18:28 
Давайте посравниваем C с ассемблером. Любой программист на ассемблере может задать вам тот же вопрос - зачем эти абстракции в C, зачем тащить это в язык? Просто поразмыслите на досуге. Абстракции призваны упрощать жизнь. Если они бесплатны, то почему бы и не притащить их в язык?
Ответить | Правка | Наверх | Cообщить модератору

241. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Ivan_83 (ok), 12-Авг-22, 21:25 
Любой пограмист на асембллере знает ответ: ради портабельности/переносимости.
Кроме того подмножество С значительно меньше подмножества ассемблера.
Ответить | Правка | Наверх | Cообщить модератору

262. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Прохожий (??), 13-Авг-22, 01:13 
Отлично. С обеспечивает переносимость и удобство за счёт своих абстракций. То есть, увеличивает производительность труда в конечном счёте. Те же выводы справедливы и по отношению к другим абстракциям в других ЯП.
Ответить | Правка | Наверх | Cообщить модератору

292. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Sw00p aka Jerom (?), 13-Авг-22, 12:11 
>Абстракции призваны упрощать жизнь.

посмотрел я на абстракцию присваивания int a = 0,и не понял, где мой нолик будет лежать, в регистрах, стеке, куче и т. д. и в итоге ни где не лежит, кхммм.

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

80. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Аноним (80), 12-Авг-22, 10:25 
Почти всё поддерживается gcc в си. Плюс сишные циклы можно автоматом распараллелить через OpenMP или вообще выгрузить на GPU, а зиг? https://gcc.gnu.org/wiki/Offloading
Ответить | Правка | К родителю #51 | Наверх | Cообщить модератору

78. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от vAnd (?), 12-Авг-22, 10:19 
"шикарный внедорожник с кондиционером" может оказаться паркетником
Ответить | Правка | К родителю #38 | Наверх | Cообщить модератору

118. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Аноним (117), 12-Авг-22, 14:10 
Сравнивть повозку с клячей?
А внедорожник сравнивать с кондиционером?

Ваш ум, батенька, не знает формальных границ!

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

195. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Прохожий (??), 12-Авг-22, 18:35 
> Судя пото тому что я вижу раст писали контуженные.

Вы точно туда смотрели? И со зрением у вас всё в порядке?

Что из перечисленного ниже вам кажется не заслуживающим внимания?
1. Строгая типизация.
2. Поддержка Юникода из коробки.
3. Автоматическое управление памятью с нулевыми накладными расходами.
4. Безопасные нити (threads).
5. Модули.
6. Встроенные макросы.
7. Современная инфраструктура.

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

75. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Аноним (-), 12-Авг-22, 10:11 
Зиг действительно похож на Си сделанный правильно (Rust в это же время пытается перенять на себя Си++). Никаких неоднозначных вещей и довольно низкий порог входа, для выделения памяти в библиотеках принято передавать аллокатор благодаря чему даже стандартную библиотеку можно портировать крайне свободно и на более редком железе, компиляцию и зависимости декларативно описываешь в build.zig на этом же языке, компиляция не занимает минуты и не порождает монстров (бинарники сравнимы размером с бинарниками на си), при этом и кодом на Си нет никаких проблем связать программу, вместо макросов вычисления на этапе компиляции, что гораздо более понятно и мощно (попробуйте для сравнения найти код для format строки в Zig и Rust) и удобная кросскомпиляция откуда угодно куда угодно.

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

Наверное он скорее будет потихоньку набирать обороты. К примеру не так давно выпустили bun.sh, что работает гораздо лучше nodejs и deno (написанном на Rust), баги исправляются. Многие проекты на Си (и компании) потихоньку добавляют файлик build.zig к себе, чтобы без задней мысли делать zig build и получать выход (хотя можно и кучу опций сделать).

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

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

274. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от freecoder (ok), 13-Авг-22, 09:24 
> К примеру не так давно выпустили bun.sh, что работает гораздо лучше nodejs и deno

Оно работает не лучше, а на некоторых тестах быстрее. Болид "Формулы-1" тоже быстрее любого пикапа, однако все массово на него не пересаживаются почему-то.

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

294. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Sw00p aka Jerom (?), 13-Авг-22, 12:39 
ага и микроскопом гвозди забиваем, каждому свое
Ответить | Правка | Наверх | Cообщить модератору

81. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Анонн (?), 12-Авг-22, 10:35 
Не смеши! Нужно быть совсем отбитым чтобы тащить Zig в прод и писать на нем хоть что-то сложное.

У них сейчас программа даже даже скомпилироваться не в состоянии правильно - куча вот багов на miscompilation. Причем это не какие-то хитрые штуки, а вполне себе обычный код.
https://github.com/ziglang/zig/issues/12363
https://github.com/ziglang/zig/issues/12364
https://github.com/ziglang/zig/issues/10349

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

83. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Аноним (-), 12-Авг-22, 10:45 
Знал бы на что давать ссылки. Первые два не относятся к основному компилятору stage1 вообще (вернее там пишет, что там всё работает), третье описывает не такой уж и обычный код и то там есть альтернативный способ.
Ответить | Правка | Наверх | Cообщить модератору

85. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Анонн (?), 12-Авг-22, 10:54 
Конечно не относятся к stage1, там даже лейба Stage2 стоит.
Не нравится что я Stage2 в пример привел - держи stage1
https://github.com/ziglang/zig/issues/12169
https://github.com/ziglang/zig/issues/11751
Даже не знаю какие примеры тебе еще показать - глаза разбегаются, у них на stage1 670 открытых висит.

А наличие альтернативного способа заставить свой код компилироваться - это прекрасный показать готовности языка))

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

149. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Аноним (23), 12-Авг-22, 15:41 
Посмотри на 8000 issues в Rust.
Ответить | Правка | Наверх | Cообщить модератору

275. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от freecoder (ok), 13-Авг-22, 09:28 
> Посмотри на 8000 issues в Rust.

А должно быть 0? Как тогда язык развиваться будет? Давай-ка лучше ссылки на конкретные баги, которые мешают программировать на стабильном Rust (типа тех, что привели для Zig).

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

110. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от YetAnotherOnanym (ok), 12-Авг-22, 13:27 
Zig будет крутым, когда сможет съесть русалку.
Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

309. "Выпуск языка программирования Rust 1.63"  +/
Сообщение от Аноним (307), 13-Авг-22, 18:50 
После Лиспа любой язык сложный и неуклюжий.
Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

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

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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