LINUX.ORG.RU

Качество книжек по Rust

 


1

4

Решил посмотреть что есть на русском языке по Rust для старта, и каково качество оригинала и перевода. Нашел книжку https://doc.rust-lang.ru/book/, решил посмотреть, хватит ли моих утомленных мозгов чтобы осилить введение в язык. Споткнулся в самом начале на элементарном примере:

io::stdin().read_line(&mut guess)
Вот что там написано:

Главная задача read_line — принять все, что пользователь вводит в стандартный ввод, и сложить это в строку (не переписывая её содержимое), поэтому мы передаём эту строку в качестве аргумента. Строковый аргумент должен быть изменяемым, чтобы метод мог изменить содержимое строки.

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

Подумал, что может быть перевод корявый, посмотрел оригинал - нет, там написано то же самое.

Далее:

одним из главных преимуществ Rust является безопасность и простота использования ссылок. Чтобы дописать эту программу, вам не понадобится знать много таких подробностей. Пока вам достаточно знать, что ссылки, как и переменные, по умолчанию неизменяемы. Соответственно, чтобы сделать её изменяемой, нужно написать &mut guess, а не &guess. (В главе 4 ссылки будут описаны более подробно)

Что значит, что по умолчанию ссылки неизменяемы? Ведь мне только это достаточно знать. Неизменяем «адрес», хранимый в ссылке, или неизменяемы данные, на которые указывает ссылка? Что делает синтаксис «&mut guess» ? Он дает меняться «адресу», чтобы ссылка могла указываеть на другую область памяти, или дает меняться данным, на которые указывает ссылка? Почему, блин, с самого начала людей оставляют в неизвестности, не объясняя что конкретно происходит? Концепция владения в гл. 4 тут вообще не при чем.

Почему я пишу слово «адрес» в кавычках? Потому что я не смог понять, что такое ссылка. Поэтому я не понимаю механизм работы ссылки:

  • Ссылка Rust хранит адрес в памяти, где хранятся данные?
  • Ссылка Rust хранит адрес в памяти, где находится внутреннее описание переменной, на которую указывает ссылка? Через которое уже будет доступ к памяти, где хранятся данные?
  • Ссылка Rust вообще не хранит адрес в памяти, а хранит некий номер/дескриптор из какой-то таблицы доступных переменных, по которой получается адрес в памяти? Но тогда это адрес чего - самих данных или внутреннего описания переменной, по которой доступен адрес самих данных?
  • Может быть, конструкция вообще другая?
★★★★★

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

Здесь совершенно другая тема.

Тему про полезность изучения английского языка вы сами подняли своими жалкими нападками на качество книг по Rust при том, что дело было не в качестве книг, а в отсутствии у вас знаний, денег итд. Если вы хотели обсуждать другую тему, то постарайтесь в следующий раз чётче формулировать свои мысли.

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

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

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

Из двух высеров пассажир выбирает высер на расте, а потом спрашивает, почему я что-то там говорю про засирание форумов растофилами. :) Восхитительно.

Причём пассажир даже не понимает в чём ржака. :)

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

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

почему я что-то там говорю про засирание форумов растофилами

А если выберу высер на сишке, будете говорить про засирание форума сишкафилами?

Причём пассажир даже не понимает в чём ржака.

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

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

Вы же не пустослов и нам всем сейчас поясните почему ПО на расте не может быть качественным. А ещё лучше предложите какое-то мерило качества. Я знаю одно – количество уязвимостей. Оно не слишком объективное, конечно, но если рассмотреть какие именно уязвимости чаще всего по статистике мелькают в новостях, то для сишки и плюсишки это будут в основном некорректная работа с памятью. То выход за границы буфера, то use after free.

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

Вы же не пустослов и нам всем сейчас поясните почему ПО на расте не может быть качественным.

Всё очень просто. Раст выбирают только нубы купившиеся на маркетинговую пропаганду усиленно распространяемую Rust Evangelism Strike Force. Слепо веря что этот чудесный безопасный язык позволит даже им сходу писать безошибочный софт они пишут лютую дичь. А потому как ни фантазии и таланта у людей покупающихся на маркетинг сектантов быть не может, ничего своего они придумать не могут, поэтому занимаются переписыванием уже имеющихся несложных софтин на расте. Это отвращает от раста тех, кто может и мог бы на расте что-то годное написать, но после ознакомления с контингентом такое желание у любого нормального человека пропадает напрочь.

Идиотскими маркетингом и пропагандой скопированными со всяких woke активистов раст был убит ещё даже толком не родившись.

То выход за границы буфера, то use after free.

Чем больше вы эту мантру из методички Rust Evangelism Strike Force повторяете под копикрку, как заклинание, тем меньше вероятность что когда-нибудь появится хоть кто-то, кто на расте напишет что-то новое и полезное.

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

Напишите что-то типа Cura, или там Blender, например. Не в смысле переписать Cura или Blender на расте, а что-то новое настолько же значимое. Ну или хотя бы что-то попроще, типа ONVIF Device Manager, который только под венду есть, чтоб нативно под линукс с интерфесом поудобнее и с поддержкой всех современных камер, если уж сами ничего придумать не можете. И разгоните к чёртовой бабушке этот ваш дебильный Rust Evagelism Strike Force, иначе вам сходу в морду бить начнут, как Свидетелям Иеговы и прочим сектантам во времена оные. Сайтик нормальный сделайте, а не этот лендинг убогий, который больше производителю памперсов подходит, чем авторам языка программирования. Может и не сдохнет ваш раст тогда.

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

почему ПО на расте не может быть качественным

Потому что Rust является не тем, за что себя выдает. Наличие unsafe и банальных утечек в safe-режиме множит на нет все заявления о безопасности.

Когда после машкодов появился транслятор Ассемблера, люди возрадовались: теперь не надо считать смещения, теперь можно делать доступ к участкам памяти по имени. И джампы и циклы можно делать по именованным меткам. Это решает все проблемы! Ну, почти.

Когда после Ассемблера и машкодов появился Си, тогда адепты тоже говорили: ну теперь-то заживем. Сишечка вам просто так не даст сделать LEA/MOV [R1],R2/LDAX/STAX жонглируя обычным интом. В сишечке типы кастовать придется. Сишечка вам не даст выплясывать со стеком, в сишечке всё под контролем. Ну почти всё.

И вот это вот «почти» мы видим до сих пор. И Rust сегодня находится примерно в таком же положении. Вот только фишка в том, что помимо Раста теперь есть языки, в которых проблем с памятью нету как класса. А адепты Раста почему-то этого не понимают и утверждают что ихнее «почти» - это отсутствие проблем.

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

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

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

И теперь питон, даже со своими тараканами, типа отступов и пр. является вполне приличным и даже уважаемым в каком-то смысле ЯП.

Вот именно, без пропаганды это говно так и болталось бы в проруби. Язык древний как перл, а всплыл только спустя годы, когда гугл нанял Гвидона и внедрил его поделие для макакинга своих сервисов. Тут и понадобился хайп для доставки боевых макак в товарном количестве.

пропаганда … мантра из методички … маркетинг сектантов

Тут молодец, всё правильно пишешь, но маловато экспрессии. Внесите царя!

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

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

А почему? Потому что там сборка мусора и обычных указателей нет как класса (точнее указатели используются оптимизатором после escape analysis, но программисту их в ручонки не дают).

Пихать сборщик мусора в ядро ОС народ пытался, но почему-то не взлетело. А на микроконтроллерах и подавно.

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

банальных утечек в safe-режиме

утечки там ровно такие же как в С++, и без зацикленных умных shared указателей их, в обоих языках не специально, (если пользуешься как положено RAII, а не вручную управляешь памятью) очень сложно получить.

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

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

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

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

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

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

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

Раст выбирают только нубы

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

Чем больше вы эту мантру из методички Rust Evangelism Strike Force повторяете под копикрку, как заклинание, тем меньше вероятность что когда-нибудь появится хоть кто-то, кто на расте напишет что-то новое и полезное.

Как это работает? Чем чаще напоминаешь про кучу уязвимостей в софте на сишки и плюсишке, тем больше людей хотят на них писать дырявое ПО?

переписать Cura или Blender на расте, а что-то новое настолько же значимое

Это строго индивидуально. Мне вот Blender вообще не нужен и значимость его соответственно я оценить не могу. Про Cura вообще не знаю что такое, видимо, ещё более значимое для меня чем Blender. Зато есть другое для каждого своё.

морду бить начнут, как Свидетелям Иеговы и прочим сектантам

Как уже бьют свидетелям недырявой сишки?

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

утечек в safe-режиме множит на нет все заявления о безопасности.

Как связаны утечки и уязвимости? Если что, в языках с GC тоже можно устроить утечку.

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

Эт какие языки у которых не проблем с памятью и при этом позволяют компиляторам производить такой же шустрый код как у C/C++/Rust?

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

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

rupert ★★★★★
()

Качество книжек по Rust

отвратительное качество. бумага жесткая. перфорации нет. ароматизация отсутствует.

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

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

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

Растофанбои же это скорее тормоз повсеместного использования языка тк их агрессивная узколобость отбрасывает тень на возможности языка отбивная желание ковырять его концепции.

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

Не иначе как всемирный заговор рептилоидов с Цукербергом во главе.

Нет, просто инклюзивность, DEI и пр. идиотизм.

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

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

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

За раст что ли?

Вообще ни разу не удивлюсь. Уж слишком паттерн поведения растофилов в обществе совпадает с паттерном поведения всяких альтернативных которые совершенно точно получали бабло от USAID. Да и цели абсолютно идентичны - влезть без мыла в существующие communities и перехватить управление или максимально внести разлад чтобы нарушить их нормальную деятельность.

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

Кстати, вспомнил характерную херню, которая гарантированно указывает на влияние USAID и прочих NED. Еле нашёл, не удалили ещё:

https://blog.rust-lang.org/2022/02/24/Rust-1.59.0.html

Today’s release falls on the day in which the world’s attention is captured by the sudden invasion of Ukraine by Putin’s forces. Before going into the details of the new Rust release, we’d like to state that we stand in solidarity with the people of Ukraine and express our support for all people affected by this conflict.

We sTAnD WiTh UkRaiNe и прочая откровенная пропаганда.

Интересно, хоть один из русскоязычных топящих за раст подумал о том, что в один прекрасный день, во время очередной пересборки какого-нибудь более безопасного ls на расте, crates.io может отдать ему не какой-нибудь невинный «fancy_colored_console_println» а хрень которая уничтожит его хомяк, например? Или сольёт всё его содержимое неизвестно куда. Просто потому что IP российский.

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

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

указывает на влияние USAID и прочих NED

Это даже не подлежит сомнению, потому что Mozilla, под крылом которой раст был очень долго, точно получала деньги от USAID.

We sTAnD WiTh UkRaiNe и прочая откровенная пропаганда.

Щас им агент Краснов впиндюрит!

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

т.е zig это раст который смог?

Что он смог? Не вижу ни одного мало-мальски популярного проекта на нём. Не, я может чего не знаю, и на самом деле есть например удобная гуйня для настройки IP-камер поддерживающих ONVIF написанная на zic? Ну или хотя бы в процессе что-то многообещающее и заполняющее пустую нишу в софте под линукс.

Но даже если ничего этого нет, как и у раста, то zig уже тем хорош, что его адепты не засирают ЛОР.

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

We sTAnD WiTh UkRaiNe и прочая откровенная пропаганда.

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

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

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

в один прекрасный день, его процессор может превратится в тыкву?

Это надо будет microcode update, например, скачать, а интель не пускает с российских ИП, поэтому его скачают через зарубежный VPN и он будет нормальным.

А crates.io - доступен в РФ и я сильно сомневаюсь что растофилы озаботились запихиванием crates.io в туннель, чтобы обезопасить себя от такой дырищи в безопасности раста.

раст в отличии от процессора хоть собрать можно самому из исходников и завести свою локальную репу для crate.

Скачав сырцы откуда?

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

А это вообще что?

Bun is an all-in-one toolkit for JavaScript and TypeScript apps. It ships as a single executable called bun.

Что этот тулкит делает-то? Это IDE какое-то, что-ли? Скриншотов нету, даже сырцы еле нашёл, предлагают бинарь качать сходу.

Может хотя бы какой-нибудь простенький 2D CAD для примера есть? Или там программка чтобы мебель в помещении расставлять, типа SweetHome3D?

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

Вообще ни разу не удивлюсь.

В общем, никаких подтверждений. Одни фантазии подкреплённые лишь уверенностью Stanson, что тысячи разработчиков на раст спят и видят как подменяют ls на компе у Stanson. Это чистой воды конспирология, не вижу что здесь можно вообще обсуждать без шапочки из фольги на голове, а у меня как назло фольга кончилась. Предлагаю закольцевать это документацией на язык раст, раз тема посвещена ей. И сделать ещё одно предположение, что это специальная продуманная диверсия со стороны разработчиков раст, которые криво перевели документацию на русски, чтобы Xintrea, который не может выучить английский на уровне начальных классов, чтобы переводить со словарём, был введён в заблуждение и не мог раскрыть заговор разработчиков на раст против Stanson.

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

Странная теория у Stanson, согласен. Более реалистичную я недавно описывал: АНБ лично и настоятельно рекомендует писать критически важные проекты на безопасных языках которые они определили (и включили туда Delphi). С Google, Microsoft, Linux Foundation они уже давно поговорили и о чем то договорились.

По мнению Страуструпа, времени осталось очень мало и необходимо до 2026 года успеть предпринять какие-то меры, так как Агентство по кибербезопасности и защите инфраструктуры США и ФБР стали более активно продвигать среди производителей ПО идею перехода на языки, безопасного работающие с памятью.

А USAID вроде для тех кто за пределами США.

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

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

Но, как известно, ничто так не портит имярек, как его фанаты. (c) neolurk.org/wiki/Бард

Но, как известно, ничто так не портит имярек, как его фанаты. Каждый рано или поздно столкнётся с человеком, утверждающим, что творчество бардов — это единственное Настоящее Творчество, содержащее Пищу Для Ума и, конечно же, Житейскую Мудрость. А всё остальное — фигня и коммерция.

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

рекомендует писать критически важные проекты на безопасных языках которые они определили (и включили туда Delphi)

А Delphi-то почему туда включили? Потому что у него есть дюже умный менеджер памяти и исключения при ошибках доступа к памяти? А работа с сырыми указателями их не смущает?

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

crates.io может отдать ему не какой-нибудь невинный «fancy_colored_console_println» а хрень которая уничтожит его хомяк, например?

Это вообще соображение против современного OpenSource. Мы слепо доверяем каким-то другим людям в интернете работу со своими данными на своём железе. Когда-нибудь это закончится.

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

Не иначе как всемирный заговор рептилоидов

Никакого заговора. По приказу ЗОГ все подорвались внедрять, вот и всё. Ты посмотри как Тролльвадс запел! Это тот самый клоун, который с матерками гонял адептов C++, хотя плюсы было гораздо проще внедрить, не говоря о том, что они намного безопаснее сишки и привлекательнее для разрабов. Но на счет C++ распоряжений ЗОГ не было, и тролльвадс мог строить из себя фюрера в песочнице.

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

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

И как раз в браузерах сделано более-менее разумно и чужой код запускается в песочницах.

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

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

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

И как раз в браузерах сделано более-менее разумно и чужой код запускается в песочницах.

Код браузеров давно уже неконтролируемым стал, поэтому и сам браузер приходится в песочнице запускать. firejail не просто так именно fire jail. Его именно как песочницу для firefox начали делать.

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

Не знаю, типичный код на Delphi мне представляется не очень безопасным, а отсутствие достойных инструментов из мира C/C++ делает его еще более сомнительным.

Кстати, нашел ссылку в документе, то есть моя теория вовсе не теория, как то пропустил эту новость: https://www.linuxfoundation.org/press/press-release/linux-foundation-openssf-...

Linux Foundation и OpenSSF собирают лидеров отрасли и правительства

Опубликован план мобилизации из 10 пунктов по обеспечению безопасности цепочки поставок программного обеспечения с открытым исходным кодом и первоначальными взносами, превышающими 30 млн долларов США

*) Устранить коренные причины многих уязвимостей путем замены языков, не обеспечивающих безопасность памяти.

*) Создать публичную, нейтральную по отношению к поставщикам и основанную на объективных показателях панель оценки рисков для 10 000 основных компонентов с открытым исходным кодом.

Так что если не USAID, то другие правительственные организации в США заинтересованы и выделяют деньги на Rust, и другие меры.

+ andalevor

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

Более реалистичную я недавно описывал

Когда срыв покровов-то состоится? Ну намекнули в АНБ крупным софтверным компаниям обратить вниание на безопасные языки, дальше-то что?

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

Ну просто ты прокомментировал догадки Stanson по USAID вот так:

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

Поэтому я подумал что ты вообще отрицаешь участия США в роли продвижения Rust для открытых проектов.

MOPKOBKA ★★★★★
()