The OpenNET Project / Index page

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



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

Оглавление

Шестая версия патчей для ядра Linux с поддержкой языка Rust , opennews (ok), 08-Май-22, (0) [смотреть все]

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


106. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Andrewpotam (?), 08-Май-22, 15:14 
Да нормальный там синтаксис, что вы как дети. Ничем не хуже С++.
Ответить | Правка | К родителю #19 | Наверх | Cообщить модератору

142. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  –2 +/
Сообщение от nvidiaamd (?), 08-Май-22, 16:46 
Для инопланетян, возможно. Но не для вменяемых гуманоидов.
Ответить | Правка | Наверх | Cообщить модератору

150. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +1 +/
Сообщение от НяшМяш (ok), 08-Май-22, 16:55 
Те же скобочки, двоеточия да точки с запятой. Не то что питоны с собачками и пробелами.
Ответить | Правка | Наверх | Cообщить модератору

249. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +1 +/
Сообщение от wyry (?), 09-Май-22, 02:18 
> Те же скобочки, двоеточия да точки с запятой. Не то что питоны
> с собачками и пробелами.

Это не так и проблема не в этом. Rust использует множество специальных символов, которые к тому же ещё иногда и можно комбинировать, получая какой-либо желаемый эффект (особенно если учесть приваренную намертво move-семантику). Простые программы с понятной и простой бизнес-логикой можно написать на любом языке и даже код получится примерно одинаковым. Проблемы то всегда начинаются в сложной бизнес-логике, когда множество сущностей каким-то образом взаимодействуют друг с другом, имеют состояние, что-то вычисляют и даже изменяют параметры друг друга по заданным правилам, а потом всё это отправляем в параллелизм и сходим с ума окончательно.
Одновременно с этим ЛЮБАЯ программа на C - это просто функции и структуры. Да, можно усложнить поведение передавая указатели или указатели на функции, можно поиграться с препроцессором, но в целом изучив вполне заурядные правила и изучив структуры данных, 90% задач с точки зрения программирования будут вполне тривиальными, сложности могут возникнуть лишь в предметной области.

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

349. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (265), 10-Май-22, 02:23 
>Одновременно с этим ЛЮБАЯ программа на C - это просто функции и структуры.

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

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

Также и в Си присутствует бойлерплейт, который может быть выражен более компактно и вместе с тем расширяемо. Да, для использования подобных конструкций нужно потратить дополнительное время на обучение. Взамен получаешь современные возможности без накладных расходов и с большей безопасностью:
-- удобные параллельные итераторы
https://play.integer32.com/?version=nightly&mode=release&edi...
-- генераторы парсеров сопоставимые по скорости с написанными вручную, влезающие на один экран монитора
https://zsiciarz.github.io/24daysofrust/book/vol2/day11.html
-- Можно построить абстракцию над портом ввода-вывода, которая во время компиляции будет проверять попадаешь ли ты в диапазон разрешенных значений, и правильную ли маску используешь при обращении к регистру.
https://blog.auxon.io/2019/10/25/type-level-registers/

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

413. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (-), 15-Май-22, 00:58 
> Одновременно с этим ЛЮБАЯ программа на C - это просто функции и
> структуры. Да, можно усложнить поведение передавая указатели или указатели на функции,
> можно поиграться с препроцессором, но в целом изучив вполне заурядные правила
> и изучив структуры данных, 90% задач с точки зрения программирования будут
> вполне тривиальными, сложности могут возникнуть лишь в предметной области.

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

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

333. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +1 +/
Сообщение от Аноним (-), 09-Май-22, 21:36 
За си++ тебя Торвальдс пожизненно люстрирует из системного программирования - и будет прав!
Ответить | Правка | К родителю #106 | Наверх | Cообщить модератору

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

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




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

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