The OpenNET Project / Index page

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



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

Оглавление

Пятая редакция патчей для ядра Linux с поддержкой языка Rust , opennews (??), 13-Фев-22, (0) [смотреть все]

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


19. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +2 +/
Сообщение от Самокатофил (?), 13-Фев-22, 12:36 
Так и расту эта выразительность не помогает. Сношаться с кодом только помогает, а уязвимости как были так и есть.
Ответить | Правка | Наверх | Cообщить модератору

27. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +4 +/
Сообщение от Аноним (4), 13-Фев-22, 12:48 
Уязвимости никуда не денутся, но благодаря подходу Rust их становится меньше. А при использовании идиоматичного Rust еще и без ущерба производительности. Например итераторы по коллекциям там где существует последовательное индексирование не приводят к проверкам убежавших индексов / Парсеры (типа Nom) в подходящие струкуры где требуется работа с индексами. Опять же чтобы не пришлось индексировать и для удобства работы.
Ответить | Правка | Наверх | Cообщить модератору

54. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +1 +/
Сообщение от keydon (ok), 13-Фев-22, 13:22 
> Уязвимости никуда не денутся, но благодаря подходу современного C++ их становится меньше.

Когда дело касается голого маркетинга, а не фактов, то повернуть стрелочку можно не просто, а очень просто.

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

67. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Аноним (4), 13-Фев-22, 13:40 
Но это замедляет программу даже в простейших случаях ( https://www.youtube.com/watch?t=1061&v=rHIkrotSwcc ) , а также делает ее менее читаемой, поскольку эти инструменты не встроены в язык а являются дополнением стандартной библиотеки.
Ответить | Правка | Наверх | Cообщить модератору

68. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +1 +/
Сообщение от freecoderemail (ok), 13-Фев-22, 13:44 
Да, благодаря подходу современного C++ их действительно становится меньше. Rust же продолжает развитие этой плюсовой линии.
Ответить | Правка | К родителю #54 | Наверх | Cообщить модератору

371. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от wyry (?), 14-Фев-22, 16:50 
>Да, благодаря подходу современного C++ их действительно становится меньше.

Это как посмотреть. Можно писать сравнительно сложную систему на C с классами (пример, Джон Кармак, движок старенького Doom 3) и допускать минимум ошибок.
Также можно в современном C++ наделать висячих r-value ссылок просто где-то услышав, что ими модно пользоваться, но не разобравшись до конца как они работают и когда это вообще нужно. Причём код будет компилироваться. Rust не защитит от дурака хотя бы тем, что в любой непонятной ситуации будет заюзан unsafe (даже если объективно не нужен!), а опытные и благоразумные разработчики и так знают где подстелить соломку, а от опечаток, семантических ошибок вообще не застрахован никто и нигде. И уж тем более никто не застрахован от неверного использования legacy-c кода (при этом код на Rust будет легитимным), а ведь сложные ошибки чаще всего и возникают на стыке чего-либо.

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

140. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Аноним (4), 13-Фев-22, 16:18 
Ну например современный С++ не предотвращает data race на стадии компиляции. Или iterator invalidation.

В С++ существуют такие вещи которые нужно знать, но они создают "искусственную" сложность https://stackoverflow.com/questions/146452/what-are-pod-type...

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

159. Скрыто модератором  –2 +/
Сообщение от Самокатофил (?), 13-Фев-22, 17:13 
Ответить | Правка | Наверх | Cообщить модератору

428. Скрыто модератором  –1 +/
Сообщение от Прохожий (??), 16-Фев-22, 01:57 
Ответить | Правка | Наверх | Cообщить модератору

437. Скрыто модератором  +/
Сообщение от Самокатофил (?), 16-Фев-22, 05:02 
Ответить | Правка | Наверх | Cообщить модератору

120. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  –4 +/
Сообщение от Урри (ok), 13-Фев-22, 15:35 
> Уязвимости никуда не денутся, но благодаря подходу Rust их становится меньше

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

А, вы о borrow checking? Ну так этого мало. К этому еще и язык должен быть поддерживаемым, а не вот это вот аджайловое лоскутное одеяло.

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

162. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Аноним (4), 13-Фев-22, 17:19 
>Захламлению синтаксиса спецсимволами, превращающему программу в некое подобие нечитабельных регэкспов?

Такова доля любого системного языка претендующего на усиленную безопасность. Либо широкий и пространный код (как в SPARK), либо плохо читаемый (Без обучения языку. Я лично читаю его довольно легко, это приходит с опытом)

Синтаксис лайфтаймов, например, взят из Haskell, который славится своей немногословностью. Дженерики из Java. Остальное из С/С++. Какая часть синтаксиса вам не нравится, что бы вы изменили?

Единственная проблема с чтением кода в Rust которую можно поставить в сильный упрек экосистеме. Это отсутствие распаковки процедурных макросов во всех IDE (все обещают, но никак не реализуют). Что может усложнить разработку если у вас код весь из них состоит.

>Или в статическую компиляцию, требующую пересборки всех проектов после фиксов дыр в функциях работы с файлами?

Не всех проектов, а только тех что использовали уязвимую функцию std::fs::remove_dir_all.

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

К счастью в сообществе Rust стал стандартом модуль системы сборки cargo-audit, который позволяет при сборке проекта проверить все его зависимости на наличие уязвимостей.

>Или в регулярные диприкейтед, которые делают предыдущий пункт невыполнимым?

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

>К этому еще и язык должен быть поддерживаемым,

Он и поддерживается https://www.rust-lang.org/sponsors Помимо спонсоров есть также активное коммьюнити что подтверждается его популярностью на SO. Для него пишут библиотеки, хоть и не так активно как для top10 языков http://www.modulecounts.com/

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

170. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Аноним (-), 13-Фев-22, 17:39 
>>Или в регулярные диприкейтед, которые делают предыдущий пункт невыполнимым?
> Rust использует понятие Редакции (которые выходят раз в 3 года) для внесения

Да забей. Его в это ужа раз 5 носом тыкали - бесполезно, в каждой новости опять нытье о "все время ломают совместимость!".
Старческий маразм, не иначе.

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

181. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +1 +/
Сообщение от Урри (ok), 13-Фев-22, 18:06 
> Такова доля любого системного языка претендующего на усиленную безопасность.

Глупости.

С# - безопасный и достаточно системный язык (на нем тоже ОСь написана, - singularity, - не менее безопасная чем почти почивший redox).


> Либо широкий и пространный код (как в SPARK), либо плохо читаемый (Без обучения
> языку.

Еще раз - глупости.


> Я лично читаю его довольно легко, это приходит с опытом)

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


> Синтаксис лайфтаймов, например, взят из Haskell, который славится своей немногословностью.
> Дженерики из Java. Остальное из С/С++. Какая часть синтаксиса вам не
> нравится, что бы вы изменили?

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


> Единственная проблема с чтением кода в Rust которую можно поставить в сильный
> упрек экосистеме. Это отсутствие распаковки процедурных макросов во всех IDE...

Это упрек не экосистеме, а базовым библиотекам языка. И функции языка и макросы не должны требовать анализа "что же там внутри". Мы же не ходим исследовать printf, не так ли?


>>Или в статическую компиляцию, требующую пересборки всех проектов после фиксов дыр в функциях работы с файлами?
> Не всех проектов, а только тех что использовали уязвимую функцию std::fs::remove_dir_all.

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

Возникнет. Обязательно возникнет. На это можно ящик виски ставить.
И чем позже возникнет, тем дороже будет.


> Rust использует понятие Редакции (которые выходят раз в 3 года) для внесения
> в язык или стандартную библиотеку ломающих изменений

Напомните пожалуйста когда возникло это понятие. Не полгода назад, случайно?

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


>>К этому еще и язык должен быть поддерживаемым,
> Он и поддерживается https://www.rust-lang.org/sponsors

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

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


> Помимо спонсоров есть также активное коммьюнити

Угу, помним. То активное коммьюнити, которое успешно разоcpалось с кортимом, имевшим это активное коммьюнити в одном известном месте.


> что подтверждается его популярностью на SO.

Пххх. "А как мне вывести хелловорлд на печать, такой глупо-сложный язык что никак не могу понять".
Успех (с)


> Для него пишут библиотеки, хоть и не так активно как для top10 языков

А толку, если технический долг активно делает все эти библиотеки мертвым грузом?

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

194. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +1 +/
Сообщение от Аноним (194), 13-Фев-22, 18:29 
>> Rust использует понятие Редакции (которые выходят раз в 3 года) для внесения
>> в язык или стандартную библиотеку ломающих изменений
> Напомните пожалуйста когда возникло это понятие. Не полгода назад, случайно?

И в это тебя уже тыкали.
https://blog.rust-lang.org/2018/07/27/what-is-rust-2018.html
> July 27, 2018
> This year, we will deliver Rust 2018, marking the first major new edition of Rust since 1.0 (aka Rust 2015).

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

329. Скрыто модератором  –1 +/
Сообщение от Урри (ok), 14-Фев-22, 12:42 
Ответить | Правка | Наверх | Cообщить модератору

338. Скрыто модератором  +/
Сообщение от Аноним (-), 14-Фев-22, 12:56 
Ответить | Правка | Наверх | Cообщить модератору

380. Скрыто модератором  –1 +/
Сообщение от Урри (ok), 14-Фев-22, 19:13 
Ответить | Правка | Наверх | Cообщить модератору

360. Скрыто модератором  +1 +/
Сообщение от Самокатофил (?), 14-Фев-22, 15:02 
Ответить | Правка | К родителю #329 | Наверх | Cообщить модератору

381. Скрыто модератором  +/
Сообщение от Урри (ok), 14-Фев-22, 19:14 
Ответить | Правка | Наверх | Cообщить модератору

415. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Аноним (4), 15-Фев-22, 15:06 
>С# - безопасный и достаточно системный язык (на нем тоже ОСь написана, - singularity, - не менее безопасная чем почти почивший redox).

И Java безопасна и при грамотном использовании выдает быстрый код, и на ней ОС написана, но ее не примут в ядро Linux по тем же причинам что и C#.

>> Либо широкий и пространный код (как в SPARK), либо плохо читаемый (Без обучения языку.
>Еще раз - глупости.

Что конкретно глупости? SPARK сорсы выдают кода в 1,5 раза больше на смысловую единицу - это общеизвестный факт. За все приходится платить.

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

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

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

Вы так и не показали что конкретно вы бы переделали, если бы хотели сделать Rust красивей. Дело в том что при проектировании каждую закорючку в языке обсуждали с боем на Github. Там велись дискуссии размером с маленькие справочники. Я склонен считать что они нашли золотую середину для программистов на Си/С++.

>Все. Я бы все выкинул на помойку и сделал С++++ или C## с борроу-чекером.

Вам бы пришлось вводить явные лайфтаймы. Куда запихаете? Как они будут выглядеть?

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

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

>А толку, если технический долг активно делает все эти библиотеки мертвым грузом?

Так можно про любой язык написать. Редакции с новыми возможностями выходят и в крестах. В крайнем случае, если автор потерялся (что уже само по себе плохо для любой библиотеки) можно будет форкнуть проект и поправить там несколько строк для перехода на новую редакцию. Если не собираешься переписывать с новыми фичами. Не было пока таких изменений в Rust, которые бы потребовали серьезного глобального рефакторинга для получения совместимости с новой редакцией.
К тому же существует специльный гайд и утилита cargo --fix https://doc.rust-lang.org/edition-guide/rust-2021/prelude.ht...
Есть примеры более-менее крупных проектов которые используют Rust:
rust-lang 1.78 млн. LOC, redox 1.33 млн., diem 300 тыс., tikv 300 тыс., Veloren 200 тыс. (данные годичной давности)
Можно надеяться что чем больше будет таких проектов, тем проще будет поддержка в будущем.

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

447. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +/
Сообщение от Аноним (447), 17-Фев-22, 01:37 
>loc: Count lines of code quickly.

Ох лол.

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

444. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  –1 +/
Сообщение от anonymous (??), 16-Фев-22, 11:20 
> Захламлению синтаксиса спецсимволами, превращающему программу в некое подобие нечитабельных регэкспов?

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

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

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

446. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  +3 +/
Сообщение от Урри (ok), 16-Фев-22, 13:57 
> Умение читать конкретный синтаксис — это тупо дело привычки.

Само собой. Я вот брейнфак неплохо читаю. И хаскель. И даже регэкспы.

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

Чувствуешь себя неловко из-за того, что настолько идиот? Ведь только полный идиот может предположить, что его оппонент может быть настолько глуп, что может не понимать настолько базовые вещи ("Умение читать конкретный синтаксис — это тупо дело привычки").

Ну поздравляю, ты еще не совсем безнадежен.


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

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

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

442. "Пятая редакция патчей для ядра Linux с поддержкой языка Rust..."  –1 +/
Сообщение от anonymous (??), 16-Фев-22, 11:11 
> Так и расту эта выразительность не помогает.

В смысле? Те гарантии, что хотели обеспечить — обеспечили. Что значит «не помогает»?

> Сношаться с кодом только помогает,

Что конкретно это значит?

> а уязвимости как были так и есть.

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

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

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

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




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

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