LINUX.ORG.RU
ФорумTalks

В чем смысл Rust?

 , , , ,


0

4

Зачем нужен Rust, если на Си с условным valgrind можно писать код без утечек и битья памяти переполняющимися буферами?

Перемещено dataman из general



Последнее исправление: dataman (всего исправлений: 1)
Ответ на: комментарий от ac130kz

аккаунту один день

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

опять вброс про «уязвимость», которая не уязвимость, часть бага которого была уже пофикшена

Это аргумент в дискуссии, в старте топика такого нет даже.

rcldev
() автор топика
Ответ на: комментарий от thesis

Вестись можно только на вброс, а это не вброс.

rcldev
() автор топика
Ответ на: комментарий от thesis

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

Знаю, что это спецефическое удовольствие, Ну вот, у кого-то такие потребности. Всё лучше, чем струшек в темноте грабить.

seiken ★★★★★
()
Ответ на: комментарий от seiken

ехидно смеешься

«Навалил себе в штаны и смеешься с того, что все оборачиваются».

Нормальная стратегия, да.

thesis ★★★★★
()
Ответ на: комментарий от thesis

так в том-то и отличие реального говна от виртуального. В виртуальном говно - это то, что другие воспринимают как говно. А если воспринимают как розу, то уже не важно, что на самом деле это говно. С реальным говном так не получится.

А выгода какая? Человек самоутверждается. Выгоды в деньгах, конечно, нет.

seiken ★★★★★
()
Последнее исправление: seiken (всего исправлений: 1)
Ответ на: комментарий от rcldev

Можно открыть хоть 5 соединений, не обязательно 1.

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

Никогда не принимай чужой код в свои программы

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

Gary ★★★★★
()

Вобщем времена меняются - люди не меняются.

Когда-то ассемблерщики считали сишников макаками.

bdrbt
()

Чтобы носить чулочки и ощущать себя UwU фембойчиком.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от rcldev

Кстати, так до сих пор и не пофиксили!

Во всяком случае со слов Speykious:

I believe at that time the version of the crate that was uploaded in crates.io was not building. Version 0.7.0 does build.

Так что rust-фанбои могут ставить сколько угодно клоунов, но в их символе веры дырень, котороую не почесались закрыть за 10+ лет.

shkolnick-kun ★★★★★
()
Последнее исправление: shkolnick-kun (всего исправлений: 2)
Ответ на: комментарий от tiinn

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

Всмысле?

firkax ★★★★★
()
Ответ на: комментарий от X512

Найди битьё памяти в моём коде. А аудит чьих-то чужих прог ради этого спора я проводить не собираюсь.

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

firkax ★★★★★
()
Ответ на: комментарий от Gary

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

Если речь про мультитред, то доступ к переменным (включая поля структур по отдельности!) изначально должен быть регламентирован. Просто так «хочу залезть в эту переменную и лезу» делать нельзя, смотрим комментарий рядом с её объявлением о порядке доступа к ней и строго ему следуем. Тогда никаких неожиданностей не случится.

firkax ★★★★★
()
Ответ на: комментарий от Gary

Если честно, складывается впечатление что ты разработкой софта вообще не занимался никогда.

Да он вроде и не претендует.

firkax ★★★★★
()
Ответ на: комментарий от lenin386

рантайм

Рантайм - это время, за которое выполняется программа (число). Измеряется командой time. Числа нельзя портировать.

firkax ★★★★★
()
Ответ на: комментарий от lenin386

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

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

firkax ★★★★★
()
Ответ на: комментарий от peregrine

Вот если бы я писал C==C++==C#==Java==Pascal==TRUE, то да, надо было бы меня к клавиатуре не подпускать.

Ты просто скобки забыл расставить.

Скомпилируй и запусти такую прогу:

#include <stdio.h>
#include <stdbool.h>
main() {printf("result1: %d\n",1==2==3==4==true);printf("result2: %d\n",1==2==(3==4)==true);}

firkax ★★★★★
()
Ответ на: комментарий от peregrine

Но почему-то никто не заявляет что C# это такая разновидность Java.

Вообще-то это оно и есть. Когда-то в 90-е микрософт решили сделать свой компилятор джавы с дополнениями (и он даже был в vs97), но на них наехали копирасты и заставили это дело прекратить. После чего микрософтовцы чуть переделали для маскировки и переименовали данный продукт в C#, и больше к ним претензий не предъявляли.

firkax ★★★★★
()
Ответ на: комментарий от dataman

Какой ужас, социальным инженерам предлагают лучшее инженерное решение. Надо сопротивляться всеми силами!!!111

unC0Rr ★★★★★
()
Ответ на: комментарий от X512

Там всё своё, даже базовые объявления вроде i32 вместо стандартных int32_t

У меня вот тоже int32_t нету а есть int32. Но это не мешает libc использовать.

firkax ★★★★★
()
Ответ на: комментарий от thesis

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

seiken ★★★★★
()
Ответ на: комментарий от rcldev

из-за нетрадиционности Rust’а

Если бы он был нетрадиционный, его бы уже запретили в России, так что не выдумывай.

firkax ★★★★★
()
Ответ на: комментарий от rcldev

Valgrind позволяет в этом удостовериться.

Лично я юзаю ASAN/TSAN, которые тоже позволяют. Valgrind тоже не знаю как запускать.

dimgel ★★★★★
()
Ответ на: комментарий от rcldev

когда в Rust-программе находят

И часто это происходит? На лоре сишники в десяти строках умудряются налажать, а растовских программ без единого unsafe полным-полно.

unC0Rr ★★★★★
()
Ответ на: комментарий от firkax

Всмысле?

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

tiinn ★★★★★
()
Ответ на: комментарий от tiinn

Эм. То есть ты предлагаешь, если тебе в функцию пришло int возраст, делать вычисления так как будто эта величина заведомо положительная? Не надо так. Либо ставь unsigned, чтобы на формальном уровне указать что ждёшь тут только >=0, либо делай проверку на неотрицательность if-ом.

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

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

А. Ты ещё юродствуешь. Ну, тогда смотри.

what is c runtime?

AI Overview

The C runtime (CRT) is a collection of essential startup routines, support code, and the C standard library implementation that creates the necessary environment for a compiled C program to run.

Гхде тут время, умник?

lenin386 ★★★★
()
Последнее исправление: lenin386 (всего исправлений: 1)
Ответ на: комментарий от X512

стандартная библиотека C++ намного более портируемая

Если что, она целиком включает в себя сишную. glibc - не стандартная библиотека (т. е. не только она).

unsigned ★★★★
()
Ответ на: комментарий от X512

в коде на этих языках ошибок будет суммарно меньше

Это если писать что-то новое, а не пере-писывать уже работающее и отлаженное.

thunar ★★★★★
()
Ответ на: комментарий от firkax

Эм. То есть ты предлагаешь, если тебе в функцию пришло int возраст,

Никому нормальному в голову не придёт делать его int’ом.

Либо ставь unsigned

Вот!

tiinn ★★★★★
()
Ответ на: комментарий от X512

Да? Ой, ой. Ошибка очень похожа на классическое переполнение, но без переполнения. А значит все норм)) Крупнейший факап в истории)) Лучше бы оно с сегфолтом упало, может быть не 10 лет бы искали.

BceM_IIpuBeT ★★☆☆☆
()
Ответ на: комментарий от firkax

Да. Тебя и забыл спросить, с чем и с кем мне консультироваться. Весь высокооплачиваемый мир с ними консультируется, а я не буду. Потому что великий ты запретил. А инглиш ты не знаешь.

lenin386 ★★★★
()
Последнее исправление: lenin386 (всего исправлений: 1)

В чем смысл Rust?

Как и в случае Java, или, например, C#, можно быдлокодить не убирая за собой и не обращая внимания на границы массивов. Но в отличие от других языков с автоматическим управлением памятью, можно быдлокодить прямо в ядро Linux. А если вы ИИ, то и в ядро Windows.

QsUPt7S ★★★
()

Гулял тут по рождественской ярмарке в Москве, и услышал народное творчество:

(играет гармонь)
Мы на сишке код писали,
Словно замарашки
Компилятор отобрали,
Ткнули нас в какашки!

Опа! Тра-ля-ля-ля-ля!

Вы не бойтесь господа
Багов и падений,
Результат почти всегда
Зависит от везения!

Опа! Подходи босота!
seiken ★★★★★
()

В чем смысл Rust?

Молодняк не желает пердолиться, як диды пердолились. Их можно понять.

yvv1
()
Ответ на: комментарий от Gary

Да нафиг тебе лям соединений? У тебя столько ось не вывезет.

хотя программированием даже не занимаешься

Ложь, где-то в на следующей неделе ждите от меня 2 убийцы 2 легендарных UNIX-утилит и UNIX-форматов.

rcldev
() автор топика
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)