LINUX.ORG.RU
ФорумTalks

В чем смысл Rust?

 , , , ,


1

4

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

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



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

пренебрежение правилами пунктуации чувствую я, падаван

в чем смысл, Раст?

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

Rust — худшее, что случилось с Linux, буквально худшее. Кроме того, это затронуло не только Linux, но и другие UNIX-like оси. У Rust’а перед Си есть только надуманные преимущества, но и они разбиваются о невозможность сборки rustc без Интернета.

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

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

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

Его еще не запретили в России, ибо не знают про него, но все основания есть. А нетрадиционный Rust во всех смыслах.

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

Да, мешает, так как там, слышал, всегда идёт закачка с crates.io, чтобы ты ни делал. И сам rustc без Интернета не собирается никак. Кроме того, в Rust постоянно ломают обратную совместимость со старыми растоподелками.

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

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

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

Если что, она целиком включает в себя сишную.

Если говорить о фактическом коде, а не о стандартах, то нет. libstdc++ (gcc) и libc++ (llvm) являются отдельными библиотеками и используют вызовы libc в своей реализации. Портировать libstdc++/libc++ проще чем glibc/musl libc/msvcrt.

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

Зачем портировать glibc/musl, если можно свою libc под свою ось написать?

rcldev
() автор топика

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

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

нельзя делать ничего неопределенного.

чем ты занимешься на работе?

Делаю что-то неопределенное.

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

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

Раст – хороший язык, исправляющий кучу проблем C. Другое дело, что как и со всеми хорошими вещами, меняющими привычный мироуклад, вокруг него появляется сообщество фанатиков, в ответ на которое у старого уклада тоже возникает такое же сообщество, но уже фанатиков прошлого, которым, как правило, просто страшно и лениво приспосабливаться к изменениям. Потом начинается замес между фанатиками, они начинают кидаться какашками друг в друга, иногда вскрывая проблемы обоих вариантов что может позволить возникнуть третьему более компромиссному варианту, учитывающему проблемы двух борющихся между собой подходов, однако не смотря на все их потуги всегда в конце концов (иногда это очень долгий срок) наступает будущее, которое обуславливается исключительно прагматическими рассуждениями (правда не всегда они очевидны для большинства, как, например, было с квадратурой круга, которую 2 000 лет решали и со стороны геометрии и со стороны алгебры, но после исследования числа π совсем другими людьми, оказалось что задача принципиально не может быть решена, хотя большинство людей на ЛОР-е не смогут это доказать, не воспользовавшись справочным материалом, а большинство людей вообще не сможет вывести связь между свойствами числа π и нерешаемостью того что с помощью циркуля и линейки невозможно построить квадрат, равный по площади кругу и этим людям приходится принимать все мои утверждения на веру), обычно его результатом является либо новый вариант, либо компромиссный. Старый вариант, как правило, проигрывает, лишь изредка его признают верным и тогда считают другие, проигравшие подходы заблуждениями.

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

Раст – хороший язык, исправляющий кучу проблем C.

Но добавляет еще больше своих.

которым, как правило, просто страшно и лениво приспосабливаться к изменениям

Это совершенно естественно и нормально для человека. Любые изменения к худшему, если не доказано обратное.

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

На локалхостах нормальных людей Rust победить никак не может.

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

наступает будущее, которое обуславливается исключительно прагматическими рассуждениями

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

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

Лет 15 назад был популярен срач vim vs emacs. Где он там? Победили IDE, вроде Eclipse/IDEA/QtCreator/Netbeans (ну кроме очень специфических ЯП/проектов где IDE либо не поддерживают синтаксис и имеют убогую поддержку, либо не могут проект загрузить) а всё потому что объективно работу быстрее и с меньшим трудом делает тот, кто пользуется IDE. vim и emacs фанбои просто вымерли с голода и рыночек таки порешал к изумлению некоторых сказочных персонажей, теперь они дворники, продавцы, стоматологи, сантехники, но не айтишники. Я не говорю что vim или emacs не нужны, они не нужны в разработке в 95% случаев, конфиги на сервере поправить vim самое то.

Кстати, подобное было в конце позапрошлого и начале прошлого века, когда вояки (всех стран мира) не хотели брать пулемёт и автомат на вооружение - расход патронов то большой! и долго успешно от него отбивались. Результат мы все знаем.

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

https://letmegptthatforyou.com/a/brpr0

О, отличный вопрос! Видимо, ты хочешь узнать, зачем нужен Rust, если у нас есть Си и валгринд, чтобы ловить утечки памяти, как будто мы играем в прятки с багами! Ну, представь, что ты всегда ходишь в старом, дырявом свитере – да, он теплый и тебе в нем удобно, но ты вечно боишься, что ветер подует и ты заболеешь. Rust – это как новый, модный свитер, который не только выглядит круто, но и не позволит тебе замерзнуть от утечек памяти! В Си ты можешь писать код, который будет работать, пока он не решит внезапно отдохнуть в небесах, а Rust оберегает тебя от этого, как бдительный охранник на вечеринке. Так что, если ты не хочешь, чтобы твой код был как лотерея, где ты постоянно рискуешь нарваться на «взрыв» памяти, может стоит взглянуть на Rust? Но, конечно, если тебе нравится каждый раз вызывать «Духов памяти» с помощью валгринда, продолжай в том же духе! Просто не забудь почаще заглядывать в интернет – он тебя научит многому!

/thread

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

используют вызовы libc в своей реализации

Портировать libstdc++/libc++ проще чем glibc/musl libc/msvcrt

/0. Как ты собрался портировать первое без второго?

Если речь о том, что проще перенести плюсовую за вычетом сишной, то возможно, но смысла в таком вычете 0.

И еще раз, портировать стандартную библиотеку си - это не портировать glibc/etc.

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

Для чего тебе это понимать? Какую цель преследуешь?

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

срач vim vs emacs

Никуда не делся, просто стал вялотекущем.

вояки (всех стран мира) не хотели брать пулемёт и автомат на вооружение - расход патронов то большой!

И были правы ибо ещё низкая надежность, большая цена и т.п. Проблемы порешали и всё приняли. Или ты предлагаешь носить штаны до того как их дошьют?

Хотя как это к вопросу о срачах?

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

Rust — худшее, что случилось с Linux, буквально худшее.

Да-да, все поняли уже, не кипятись, вот прими витаминки.

но и они разбиваются о невозможность сборки rustc без Интернета

Даже если бы вдруг это было правдой, то в чем вообще проблема собирать с интернетом?

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

Лет 15 назад был популярен срач vim vs emacs. Где он там? Победили IDE, вроде Eclipse/IDEA/QtCreator/Netbeans

Кто-то на полном серьезе пользуется жирнющими IDE, отжирающими гигов по 32 оперативки?

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

Даже если бы вдруг это было правдой, то в чем вообще проблема собирать с интернетом?

Тебе в кайф зависеть от васянов, которые еще и за океаном живут?

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

Львиная доля софта/харда сделана где-то за океаном, индустрия родилась и продолжает развиваться именно там, основные ОС и архитектуры разрабатываются ими, даже твои любимые компиляторы сишки делают они, стандарты пишут они. Если ты боишься впасть в зависимость от них, меняй род деятельности. Можешь гордо плести лапти в тайге.

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

Но возможность собирать их сишный софт мне они удаленно отрубить не могут, а растеры тебе — могут.

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

Ну мужик ты такой «странный». Давай я тебя расскажу как собирается код, не обязательно с, из сорцов на чужом компе. Вариант 1 приходишь ты к другу, а там какой то урезанный линукс, без gcc совсем - и ты разворачиваешься и идешь либо в интернет, либо домой. Вариант 2, тоже самое, только gcc - древний как говно мамонта - и тут ты идешь домой, возможно переписывать свой код. Вариант 3, нет нужных зависимостей, ты же не пишешь школьные лабы уровня: отсортировать массив, - ну ты понял. Это я еще могу вспомнить, что в разных линуксах, вдруг, могут не совпадать мажорные версии библиотек. Ладно ты решил принести собранную версию - и тут: не те библиотеки, не та версия glibc. И тут мы приходим к двум вариантам: статистическая линковка (возможно musl), все возможные контейнеры типа: docker,pamac, apparmor,flatpack и т.д.

Знаешь, можно не скромный вопрос, а сколько тебе лет?

Silerus ★★★★★
()
Последнее исправление: Silerus (всего исправлений: 1)
Ответ на: комментарий от Silerus
  1. У кого может стоять Linux без gcc?
  2. Такие проблемы в основном касаются софта от хипстерья, которые испытывают удовольствие от использования добавленных вчера фич, и большого софта по типу Chrome/FF/NodeJS. Большинство софта новомодные фичи компилятора не используют, а по стандарту C им достаточно C99.
  3. Приносишь сорцы зависимостей и собираешься их.

Ладно ты решил принести собранную версию

Так делать не надо, но можно вместо статической линковки использовать бандл и LD_PRELOAD.

rcldev
() автор топика
Ответ на: комментарий от rcldev
  1. Прикинь и такое бывает.
  2. Ты где эту ерунду вычитал, даже геймдев, слазит с 99 стандарта вверх. На ютубе даже интервью было гемдев разработчиков. Да у них много специфических велосипедов, из-за которых они держались за старые стандарты, но это не значит что разработка стоит на месте.
  3. Ох удачи тебе в этом нелегком деле Ну и последнее, есть такая штука как conan - рекомендую ознакомиться
Silerus ★★★★★
()
Последнее исправление: Silerus (всего исправлений: 1)
Ответ на: комментарий от rcldev

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

Предположим самое логичное, захотят денег. Сделают платный компилятор? Ну так я заплачу, денег у разработчиков хватает. Crates.io по подписке? Опять заплачу и продолжу пользоваться. Возможность собирать растовый код останется, пусть и не бесплатно. Но то же самое может случиться с любыми технологиями, включая Си.

Gordon
()
Ответ на: комментарий от Silerus
  1. Разве что в эмбеддеде, под который кроссомпилируют. Но как без gcc можно ставить софт?
  2. Ну, еще гейдев. А больше? Львиная доля софта собирается и под Slackware 7.1 с ее древнющим gcc.
  3. Ну, статически слинковать программу никто не запрещает, это возможно, если постараться.
rcldev
() автор топика
Ответ на: комментарий от Gordon

Во-первых не могут

Могут, просто crates.io заблокируют России, либо с нашей стороны введут Чебурнет.

зачем

Им так прикажут сделать ради исполнения санкций.

Но то же самое может случиться с любыми технологиями, включая Си.

Не может, мои сорцы с моего локалхоста можно только физически отнять.

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

А зачем его состовлять, если некоторые используют линукс, только как развлекательную платформу, все устанавливается с бинарных пакетов, никакие компиляторы вообще не нужны. Ну даже возьмем тот же debian, на борту только gcc, g++ - нет, из интерпретаторов, только перл и питон. Или возьмем какой нибудь микролинукс, для запусков с флешек - там тоже его, компилятор, вырезали. Но это пол беды. А еще нам нужна документация и примеры к библиотекам, которые мы будем использовать в своих приложениях. И тут без интернета вообще никак, мы же не боги, что б знать как использовать любую библиотеку, с какими ключами ее линковать и прочие. И тут даже для с/с++ появляется пакетные менеджеры - потому что никто не хочет вручную «пердолится», особенно с кросскомпиляцией. И что тебя удивляеют, что появляются языки, в которых это под рукой сразу, как есть. И что люди их выбирают. Кто то rust, кто то go, кто то zig, python, node и т.д.

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

Ну даже возьмем тот же debian

Если у человека есть Debian, то у него есть и локальный репозиторий Debian.

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

В чем проблема поставить обычный Linux на флешку и монтировать корень [флешки] в RO?

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

Она скачивается вместе с либой с Интернета, если нужна.

с какими ключами ее линковать

Для такого есть README.

И тут даже для с/с++ появляется пакетные менеджеры

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

кто то go

Буквально худший язык, который без Интернета вообще не работает.

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

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

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

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

Могут, просто crates.io заблокируют России, либо с нашей стороны введут Чебурнет

Нетрудно сделать собственное локальное зеркало репозитория крейтов. Многие компании и сейчас так делают, и не только в России, по разным причинам: контроль безопасности, скорость работы, ограничение версий зависимостей…

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

интернет тебе не нужен, а вдруг нужен

Документация спокойно может быть взята и с флешки.

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

Лет 15 назад был популярен срач vim vs emacs. Где он там? Победили IDE, вроде Eclipse/IDEA/QtCreator/Netbeans

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

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

Ну не знаю. Все проекты пишутся на Microsoft Visual Studio (который не code), IDEA, Eclipse, очень редко Netbeans и QtCreator. Остальное вообще в пределах погрешности. Надо опрос делать.

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

Как в математике бывают разные сорта бесконечностей и одни бесконечности бесконечнее других, так и в инженерии одни невозможности невозможнее других. Вот, например, невозможность научить сишников кодить без CVE более невозможна, нежели поднятие зеркала crates.io.

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

Был же недавно: Какой редактор кода или IDE вы используете?

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

bread
()
Ответ на: комментарий от ugoday

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

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

С crates.io такое невозможно.

Действительно невозможно?

Я вот не программирую на Rust, но немного поискал сейчас инфы и нашел, что можно:

1) Использовать cargo vendor, которая сгружает локально все зависимости проекта.

2) команды для создания, инициализации и синхронизации локальной репы cargo install crates-mirror crates-mirror init /path/to/mirror crates-mirror sync /path/to/mirror

3) Настроить локальный registry (даже не знаю, что это) для работы с ним, а не с crates.io

4) Для всего инструментария cargo install rustup-mirror rustup-mirror sync /path/to/rustup-mirror

Да это выглядит подходом через задницу, вместо подхода с C/C++ когда можно просто установить компилятор и все тулзы как пакеты системы.

Может быть кто-то взял на себя труд опакетить все эти cargo install.

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

Принцип тот же, что и был в свое время у arch, есть утилиты которые стягивают весь репозиторий (там что то вроде гит репозитория), причем там около 6 способов как это сделать, а дальше надо указать cargo либо искать его в локальной папке, либо поднять веб сервер и подсунуть запись на него. Другой вопрос что этот репозиторий занимает несколько терабайт

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

Зашёл по ссылке. Читаю:

В настоящее время в Android на Rust написано около 5 млн строк кода, в которых выявлена лишь одна потенциальная уязвимость, вызванная проблемами при работе с памятью. Таким образом плотность подобных уязвимостей в коде на Rust составила 0.2 уязвимости на миллион строк кода. Для сравнения в коде на языках C и C++ данный показатель составляет около 1000 уязвимостей на миллион строк кода.

Я чего-то такого и ожидал.

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

Другой вопрос что этот репозиторий занимает несколько терабайт

Вот именно. Я не просто так ушел от репозиториев как концепции.

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