Опубликован релиз языка программирования общего назначения Rust 1.74, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки)...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=60133
Победоносное шествие безопасного раста по ядру уже не остановить.
> Победоносное шествие безопасного раста по ядру уже не остановить.пока он сбоку валяется я не заинтересован в нём, но вы не останавливайтесь
Прости анон, но всем глубоко пофиг на твою незаинтересованность.
> Прости анон, но всем глубоко пофиг на твою незаинтересованность.прости но нет - пока раст сбоку всем на него пофиг так же как мне, я не стану тратить год на то что могу сделать за неделю
А потом 30 лет будешь исправлять баги?
Как в том жутком выпрограмише X.Org ?
> А потом 30 лет будешь исправлять баги?мне до несуществующих багов которые исправляет раст в драйверах нет дела - это не парсеры протоколов, фс или ipc, куда больше проблем в железе и просто отстуствии информации по нему. Будут платить за раст напишу, а нет - и пальцем не пошевелю - смысла не вижу.
Буду 30 лет исправлять растобаги, когда маркетологи перестанут форсить эту поделку, а разработчики поймут что проблем он доставляет больше чем решает.
>а разработчики поймут что проблем он доставляет больше чем решает.Так разработчики уже всё поняли. И продолжают заниматься делом, тогда как ты протираешь штаны на форуме. Подозреваю, и через 30 лет будет всё то же самое. Потому что на большее ты вряд ли способен.
> маркетологи перестанут форсить эту поделку
И примеры можешь привести, где именно маркетологи что-то форсят где-то? Потому что всё, что я до сих пор видел - это статьи от программистов-практиков, утверждающих, что Раст решает гораздо больше проблем, чем создаёт новых.
Будем ждать 30 лет правильный вялый(чтоб догнать X11), а потом не дождавшись увидим перписывание на хруст, но только реализуют, хорошо если половину и забросят, т.к. дальше unsafe и сложно(как и остальные переписывания чего-то на раст)
> пока раст сбоку всем на него пофигВот эти все, о которых ты говоришь, кто так или иначе задействован в индустрии разработки системного ПО как раз начинают понимать, что Rust в итоге существенно удешевляет и разработку, и последующую эксплуатацию ПО.
> Rust в итоге существенно удешевляет и разработку, и последующую эксплуатацию ПОтак я же не против - напишут биндинги и примеры и я начну упрощать себе жизнь а бежать впереди паровоза себе дороже
> пока раст сбоку всем на него пофигНелогичный анон. Наверное не пофиг тем, кто предлагает новые поделки на расте всунуть в ядро. Они тоже входят в группу "все". По логике. Или все - это только ты со своим начальником?
И еще из противоречий. Если они последуют твоему совету из твоего предыдущего коммента ("но вы не останавливайтесь", а они останавливаться не собираются и у них всё получается) - то латентно подсосзнательно ты тоже жаждешь больше раста в ядре? Но при этом одновременно "мне на него пофиг пока он сбоку"? Ты какой-то оригинал.
> Прости анон, но всем глубоко пофиг на твою незаинтересованность.Судя по твоей горячности, тебе _очень_ не пофиг на незаинтересованность этого анона.
Это вполне могла быть просто констатация факта. Но ты, конечно, можешь продолжать пытаться натянуть сову на глобус.
Совершенно не печет что на Раст всем плевать и рост его популярности сменяется падением.
И когда местные эксперты отучатся говорить за всех? Во-первых, популярность Rust растёт. Во-вторых, очень много людей заинтересованы в его освоении, судя по опросам на StackOverflow.
Лол, типа твое мнение кого-то парит.
Добавят его в ядро вот и будешь использовать, или сидеть на старом.
Wait oh shi...! Так это уже (°ロ°)☝В общем кушай что дали, и не обляпайся)
>Добавят его в ядро вот и будешь использоватьТак уже ж добавили в ядро, не? Выходит опять растоманы всех обманули. Надули!
Алсо ядро модульное и с легкостью отключается то, что тебе не нужно, то есть весь экспериментальный мусор на Расте.
Напишите свое ведро, что в наше лезете.
Почему это оно "ваше"? За это ядро платили корпорации. Кто девушку кормит, тот её и танцует.
Девушку кормят бесплатные разработчики на Си а не подачки от спонсоров, и уж конечно не проповедники Раста на опеннете.
Раст как рыба прилипала - так и норовят прилипнуть к любому нужному и успешному проекту :)
А по сути действуют как паразит поражая и убивая носителя.
Покажешь, где валяются горы убитых Растом проектов? Или как обычно тебе надо было что-то ляпнуть, вот и ляпнул?
Покажешь, где находятся горы успешных проектов, переписанных на Раст? Или как обычно тебе надо было что-то ляпнуть, вот и ляпнул?
нужно гуглить по скоплению слов unwrap 😂😂😂
Согласен и даже больше могу сказать, с++ как паразит-прилипала прилип к с и все тоже делает как Rust :)
Хотите скорость и меньший жор электричества в дата-центрах - пишите на "с", а с++ и раст в топку для всеобщего развития.
>Хотите скоростьВ следующий раз попробуй сначала дочитать новость до конца, а потом уже строчи свои комментарии. На этот раз подскажу. Разницы в скорости нет.
Согласен, между с++ и раст - нет разницы в скорости.
Более того и синтаксис у обоих одинаково отвратительный.
Угу, а потом ваш сервак ляжет из-за того что лучший погромист на божественной забыл проверить размер буфера при обработке пакета.
Поправят и перезапустят, ничо страшного.
> Поправят и перезапустятИ так - 30 лет. А потом они решат, что хватит и начнуть писать ойвэйланд.
Ничего страшного, сказал погромист криптобиржи с которой увели мегатонный крипты. Но когда в дверь к нему постучали, он только плакал и обещал все исправить патчем...
> Угу, а потом ваш сервак ляжет из-за того что лучший погромист на
> божественной забыл проверить размер буфера при обработке пакета.Погромист на то и погромист, что бы сервак упал, когда он будет без мозгов писать код в безопасном и на безопасном языке. (Ты защиту от комаров взял - взял, а от укуса змии взял - взял, а от крокодила взял - взял, а от удара молнии - unsafe, а от деградации мозгов - fatal error ++).
Программисты же сперва думают, решают задачу, пишут код, производят тесты, запрашивают сторонний аудит, делают своевременные backup, резервируют на замену быстрого старта другой дежурный сервер, и т.д.
Из всего вышеперечисленного нормальные программисты лишь пишут код иногда задумываясь как. А эникейщики - те еще программисты.
>Раст как рыба прилипала - так и норовят прилипнуть к любому нужному и успешному проекту :)
>А по сути действуют как паразит поражая и убивая носителя.К счастью, у большинства руководителей проектов все же хватает ума не обращать внимания на фанатиков Раста, скачущих вокруг и потрясяющих своими хеллоуворлдами.
Ну вот! Пишете о ЯП, а в строке сообщения уже первые два байта - лишние.
У Rust Foundation как и у другого независимого Foundation тоже мелкософт в списке платиновых донатеров?
а что, у микрософта какие-то другие доллары? так-то микрософт - лучший друг опенсорса. Не при баллмере конечно, а при нынешнем вполне разумном руководстве.
Точнее корпорации лучшие друзья опенсорса, ведь именно они его используют для сдерживания конкурентов, пилят, пишут, оплачивают.
Местным экспертам обязательно нужно чтобы проекты брали деньги из воздуха. Или от добровольцев (2$ за месяц).
Или по заветам комуняки Столмана - получать деньги налогоплатильщиков от государства!
Ну или от производителей железа (привет "налог на болванки")
С такими друзьями и враги не нужны.
И в каком месте они НЕзависиимые? Раз зависят от бабла копрорастов.
Ну оплачивай сам вместо мелкософта, какие проблемы? Бесплатно писать неинтересное никто не хочет, бесплатно вылизывать тяжёлые сложные системы - тем более.
А кто сейчас не зависит?
Давай я открою тебе глаза на реальность. Люди - существа социальные. А это, в свою очередь, подразумевает наличие завимости одних членов общества от других. Другими словами, в этом мире нет независимых людей.
> У Rust Foundation как и у другого независимого Foundation тоже мелкософт в списке платиновых донатеров?Да, как и у самого Linux Foundation. Или ты думал твой Linux святым духом питается?
Платиновые донатеры как на подбор
> независимой некоммерческой
> организации Rust FoundationДиректоры в совете от амазона, гугли и майкрософт не дадут соврать!
о, начинается! напомнить кто в коммитете самого швобдной ГНУ СИ ?
GCC steering committee members
David Edelsohn (IBM)
Kaveh R. Ghazi
Jeffrey A. Law (Ventana Micro Systems)
Marc Lehmann (nethype GmbH)
Jason Merrill (Red Hat)
David Miller (Red Hat)
Toon Moene (Koninklijk Nederlands Meteorologisch Instituut)
Joseph Myers (CodeSourcery / Mentor Graphics) [co-Release Manager]
Gerald Pfeifer (SUSE)
Ramana Radhakrishnan
Joel Sherrill (OAR Corporation)
Ian Lance Taylor (Google)
Jim Wilson (SiFive)Именно корпы создали тот опенсорс который мы имеем сейчас, тот который работает на миллионах устройств. А фанатики верящие в Сообщество™ и васянов которые "в одиночку пишут огромные проекты" их за это ненавидят.
> о, начинается! напомнить кто в коммитете самого швобдной ГНУ СИ ?Лучше напомнить, кто в комитете самого Linux, чтобы чела вообще удар хватил:
Хм... всё те же лица... как же так получилось??
Ну, объективнее все-таки сравнивать два языка.
Т.к в линуксе заинтересованных побольше будет.Например для плюсов https://isocpp.org/std/the-committee
The WG21 officers are:
Convener: Herb Sutter (Microsoft).
Project Editor: Thomas Köppe (Google), backup editor Richard Smith (Google).
Secretary: Nina Ranns ("have worked for Siemens, Motorola, Datasift, and Symantec")И саб-группы
SG1, Concurrency: Olivier Giroux (Apple), assistant chair Hans Boehm (Google).
SG4, Networking: Jeff Snyder (PDT Partners), assistant chair Gašper Ažman (Citadel Securities).
SG6, Numerics: Matthias Kretz (GSI Helmholtz Centre for Heavy Ion Research), assistant chairs Lisa Lippincott (Tanium) and John McFarlane (Jaguar Land Rover).
SG7, Compile-time programming: Hana Dusíková, assistant chair Daveed Vandevoorde (EDG).
SG9, Ranges: Daisy Hollman (Google), assistant chair Casey Carter (Microsoft).
SG10, Feature Test: Barry Revzin (Jump Trading), assistant chair Jonathan Wakely (IBM)
SG14, Game Development & Low Latency: Michael Wong (Codeplay).
SG15, Tooling: Michael Spencer (Apple), assistant chair Ben Boeckel (Kitware).
SG16, Unicode: Tom Honermann (Intel), assistant chair Steve Downey (Bloomberg).
SG17, EWG Incubator: Erich Keane (NVIDIA).
SG18, LEWG Incubator: Billy Baker (NVIDIA), assistant chair Nevin Liber (Argonne National Laboratory).
SG19, Machine Learning: Michael Wong (Codeplay), assistant chair Vincent Reverdy (Paris Observatory/NCSA).
SG20, Education: JC van Winkel ("Since 2010: Software Engineer at Google’s Site Reliability Engineering (SRE) department")
SG21, Contracts: John Spicer (Edison Design Group), assistant chair Timur Doumler (JetBrains).
SG22, WG21/WG14 C/C++ Liaison: Nina Ranns (WG21) and JeanHeyd Meneide (WG14, Netherlands), assistant chair Thomas Koeppe (Google).
SG23, Safety and Security: Roger Orr (BSI), assistant chair Ben Craig (Raven).Как можно наблюдать с++ тоже делают корпы и определяют его развитие.
Ну я тоже не в самой уважаемой организации работаю. И хотя я за опенсурс и всегда его продвигаю, по шильдику меня бы тоже к корпам отнесли, а то и к проприетарастам. А по факту мне просто здесь платят неплохо и не сильно следят чем же я на рабочем месте занимаюсь. Уверен, 90% людей из этого списка на таких же условиях.
А RCE в rust-analyzer так и не пофиксили. Безопастно.
>В пакетный менеджер Crate добавлена возможность аутентификации при подключении к репозиториюХотите сказать, что раньше её не было?!
> runtime сводится к базовой инициализации и сопровождению стандартной библиотекиНо он все таки есть. Причем поверх сишного 🌚
> Причем поверх сишногоИ как же я интересно для DOS на нём пишу, где никакого libc не водится?
Строго говоря на хрусте ты не обязан рантаймом пользоваться.
В досе у тебя статически все линкуется в бинарник. И бинарнмки эти довольно жирные даже по сравнению с бинарниками выдаваемыми паскалем.
> В досе у тебя статически все линкуется в бинарник. И бинарнмки эти
> довольно жирные даже по сравнению с бинарниками выдаваемыми паскалем.Что слинкуется-то? libc для DOS, которой у меня нет? А размер такой же, как в Си.
> Причем поверх сишногоЭто пока))
С этим "пока" тебе еще долго существовать, терпи ))
Двух сишных - glibc и musl. Только ими не обязательно пользоваться - есть режим no_std.
Так фанатики о нем не знают)
Они, думаю, даже доку не читали, так просто выпукивают свои фантазии про Раст без каких либо пруфов.Кстати musl это отличный пример, это реализация libc, которую переписали полностью, да еще ина человеческую лицензию.
Думаю рано или поздно дойдут руки сделать вариант на раст.
>переписалиИ получили то, что получили, лол. В 3 раза медленнее (но не по табличке на сайте, конечно), в 100 раз глючнее, и абсолютно непредсказуемое.
Да и это ржавофаги умеют только переписывать (криво), а тут скорее альтернативная реализация без оглядок на конкурентов. Просто потому, что есть стандарты. Это то, чего у ржавчины нет.
Стандарты как в СИ?
В виде
"Каша готовится из крупы, может содержать добавки.
Добавки у нас неопределены, и в зависимости от реализации и желания левой пятки повара могут быть в виде мяса или говна". ?Не спасибо, такой стандарт нам не нужен)
Уже насмотрелись на дыряшный код и уязвимости которым по 30 лет.
Ну правильно, технологии дедов. Зато посмотри, сколько реализаций, и все совместимые в значительной мере.
https://en.cppreference.com/w/c/99ога, стандарты и компиляторы которые мы унаследовали от дидов.
совместимость так и хлещет.
досихпор С99 не реализован полностью никем
Это не мешает один и тот же код собирать и для андроида и для венды (с десятком либц на выбор).
да, если это hello world.
Если это что угодно. Когда код делает одно и то же, не имеет значения, как он это делает.
угу, если хорошо обложиться #IFDEF-ами, то да, код становиться кросскомпиляторным.
хахаха! надеюсь ты это не серьезно)
давай глянем на плюсы
https://en.cppreference.com/w/cpp/compiler_support/20
ни один из компиляторов не поддерживает стандарт полностью. А уже почти 24 год на носу.
Про 23 стандарт можно вообще не заикаться.Или какой открытый компилятор который полностью реализует С17?
А ни какой! Ни GCC, ни CLANG не реализуют его полностью.
Есть Acorn, AMD OCC, Edison Design, IAR C которые поддерживают. Но они все проприетарные.
А мы ведь на сайте OPENnet, а не ПРОПРИЕТАРЬnet.Так что стандарт что для плюсов, что для дыряшки - это бесполезная макулатура.
>Или какой открытый компилятор который полностью реализует С17?C17!?
не так быстро.
дай дедам еще лет 30 на C99 🤣
С чего вдруг поддержка стандарта должна быть полностью?Сам стандарт предусматривает возможность определить какие фичи стандарта поддерживаются макросами.
>С чего вдруг поддержка стандарта должна быть полностью?да вот действительно с чего бы?
а смысл тогда в стандарте, если и сам стандарт написан в стиле "да как хотите так и делайте", так даже это не сделано.
а так да, "xер по колено, но не стоит" 🤣🤣🤣
Очевидно смысл в том, что разработчик сам принимает решение об использовании новых фич стандарта исходя из платформ потребителей и компиляторов, которые на них можно использовать.И если впоследствии примет решение о необходимости работать на компиляторах не поддерживающих фичи стандарта - то реализует альтернативу без использования фич, обложив это условной компиляцией.
Ах да. Я же забыл. В расте так не умеют.И делают вид, что такой вариант использования принципиально существовать не может.
Каждый разработчик принимает решение… 😂😂😂Иными словами жрет с лопаты что дают производители компиляторов, и в любом случае говорит что было вкусно.
И там компилятор. И там компиляторы - но, как в анекдоте, есть ньюанс.У сишников этих компиляторов, ... выбирай любой из них, или как обычно делают - некоторое множество.
А вот расте. Один.
Вот и выходит как в анекдоте. И меня ... в ... и у тебя ... в ..., но есть ньюанс.
Анекдот выходит всегда когда сишник про свой дырявый стандарт заливать начинает.
А по итогу это не стандарт, а кусок никому не нужной писанины об которую все вытирают ноги.
Какая альтернативная логика в твоем высказывании. Ты большой оригинал.
Из твоего высказывания получается что каждый раз, когда когда сишник говорит про стандарт. Бедный (ну или довольный, смотря по ориентации) растоман страдает (ну или расслабляется и получает удовольствие).Ты из второго типа растоманов?
>> runtime сводится к базовой инициализации и сопровождению стандартной библиотеки
> Но он все таки есть. Причем поверх сишного 🌚Неа, ты сейчас таки просто "опеннетно-экпердно" эт-самое в лужу,
https://github.com/rust-lang/rust/blob/bb4d1491466d8239a7a5f...
Заодно и показав "уровень" местных Военов Супротив Раста.
> Аудит подтвердил высокое качество кодовое базы и использование в архитектуре и реализации приёмов, нацеленных на достижение максимальной безопасности.Ну кто бы сомневался, это же не на дыряшке писать по заветам дидов.
С помощью локомотивов опенсорса - Гугл и Майкрософт, думаю он заменит Си при написании нового кода уже до конца десятилетия.
Ну еще попутно перепишут самые дырявые, но ответственные приложения.
Тут спасибо нейросетям надо говорить. Прогоняя и оптимизируя через нее, можно получить офигенный код. Мы с коллегой провели эксперимент, написали простое приложение вручную, сначала честно без нейросетей, потом с помощью нейросети. Разница просто невероятная в плане качества кода и его структуры.
Выглядит как сообщение написанное нейросетью))
Нейросети непредсказуемые. Заложенные баги все дружно проглядят. И они там будут, потому что сетки в принципе не осознают, что делают, и зачем. Другое дело, когда они являются ассистентом, избавляющим от необходимости копипастить вручную (практика, приводящая всё к тем эе багам). Конечно, это ускоряет создание, но толку.
Ага, мне коллега присылал этот код. Он во-первых не работает. Во-вторых не по нашим гайдлайнам (логично, сеть то о них ничего не знает), а в четвёртых небезопасный.
Без примера кода, есть основания полагать, что сами написали излишне плохо.
Конечно исключения возможны, когда пусть и не шедевральный, но вменяемый код можно сильно заулучшать. Но, упоминание о невероятном качестве настораживает.
>Тут спасибо нейросетям надо говорить. Прогоняя и оптимизируя через нее, можно получить офигенный код.Крутая идея. Это буквально означает вторую жизнь для Си и никакого Раста не нужно в принципе. Все баги и уязвимости просто фиксит нейросеть, вот и решение всех проблем.
Угу, я скормил код одного нашего корпоративного решения на Java, попросил оптимизировать, нейронка подумала и переписала все на хрен на С++, кстати красиво переписала-))))
Нужно преобразование кода в ассемблер, как в Си/Си++. Иначе непонятно, как там всё работает. Вот в Си понятно: функция - это метка ассемблера, поэтому будь добр сначала хотя бы обьявить её в коде, чтобы метка попала в таблицу меток ELF файла и компоновщик ld увидел её и заменил на реальный адрес во всех файлах.
Э... ну как бы это уже есть
cargo rustc --release -- --emit asm
и смотри на ассемблерный код
rustc --emit asm test1.rsУжас, сколько кода нужно для обычного Hello World!
Надеюсь ты не в дебаге смотришь?
А то есть тут особо одуренные...500 байт хелло ворд весит
$ cat hello.rs
#![no_std]
#![no_main]
use core::panic::PanicInfo;
use syscall::syscall;#[panic_handler]
fn panic(_info: &PanicInfo) -> ! { loop {} }#[no_mangle]
pub extern fn _start() -> ! {
let message = "Hello World\n".as_bytes();
unsafe {
syscall!(WRITE, 0, message.as_ptr(), message.len());
syscall!(EXIT,0);
}
loop {}
}
Капец сколько бойлерплейта
Неужели тебе строчек кода жалко)?
Все равно лучше чем в дыряшке код вида
*((char*)0)=null
или
printf("%d", *((char*)ptr+4));
Оба примера- го́вноко́д, за который на работе получили бы по затылку.
это оптимизации)
А ты можешь не дёргать сисколы, а честно вызывать функции и чтоб так же 500 байт было?Так-то и я на Си могу сисколами в 500 байт уложиться, а на асме и того меньше.
> а на асме и того меньше.Ну да, ну да
Disassembly of section .text:
00000000004000b0 <.text>:
4000b0: b8 04 00 00 00 mov $0x4,%eax
4000b5: be d2 00 40 00 mov $0x4000d2,%esi
4000ba: ba 0c 00 00 00 mov $0xc,%edx
4000bf: 31 ff xor %edi,%edi
4000c1: 0f 05 syscall
4000c3: b8 01 00 00 00 mov $0x1,%eax
4000c8: 31 ff xor %edi,%edi
4000ca: 0f 05 syscall
4000cc: 0f 1f 40 00 nopl 0x0(%rax)
4000d0: eb fe jmp 0x4000d0Contents of section .rodata:
4000d2 48656c6c 6f20576f 726c640a Hello World.
Это - весь код, остальную кучу байтиков в принципе можно и убрать, хорошенько поигравшись с опциями линковки ...
Это не hello world, это hello i'm heater
hello world должен штатно завершаться, а не требовать срубить его киллом или через таск менеджер.
#include <stdio.h>
struct {
int (*printf)(const char* format, ...);
} fmt = {printf};
int main(void) {
fmt.printf("hello");
}
Hello world с unsafe, серьёзно?
А как ещё дёргать системные вызовы? Это не то, за что компилятор может отвечать.Код выше просто для демонстрации того, что результирующий бинарник может быть вполне себе малюсеньким. Более каноничный Hello world куда проще, но и бинарник весить будет больше.
С таким убогим синтаксисом он всегда будет местечковым язычком. Что печально, со своей концепцией он мог занять ниши от системного, до серверного программирования. Но сейчас проще брать жс, писать на нем фронт, бэк, электрон, и реакт натив. Потому что бойлерплейта как в питоне, а не как в расте.
Можно вопрос? Зачем loop {} в конце?
Что бы безопасно зависнуть при ошибке хелловорда.
Там у него unsafe в хеллоуин уорлде, безопасностью тут даже не пахнет
Unsafe говорит не об отсутствии безопасности, а о том, что обеспечение безопасности берёт на себя программист, а не компилятор.
Да я понял. Это безопасность кого надо безопасность. Не то что в Си.
> Unsafe говорит не об отсутствии безопасности, а о том, что обеспечение безопасности
> берёт на себя программист, а не компилятор.В двух местах по тупому завесить процесс при ошибке.
Не велика ответственность.Кстати, если при вызове фукнции write и произойдет ошибка, то или и так получим сообщение об ошибке в консоли.
Если же ошибка будет на стороне драйвера не вернет управление, то от обмазывания unsafe пользы не больше чем от бубна.Но помощь системе зависнуть при ошибке, прямо в хелооворде, вместо возврата кода ошибки, ставит под сомнение квалификацию автора.
>> Unsafe говорит не об отсутствии безопасности, а о том, что обеспечение безопасности
>> берёт на себя программист, а не компилятор.
> В двух местах по тупому завесить процесс при ошибке.
> Не велика ответственность.Не велика заслуга, требовать написать полноценный паник-хендлер (учитывающий невозможность сискола write) в хелловроте, вместо простого и действенного метода сообщения об ошибке.
> Кстати, если при вызове фукнции write и произойдет ошибка, то или и
> так получим сообщение об ошибке в консоли.Чегось?
> Если же ошибка будет на стороне драйвера не вернет управление, то от
> обмазывания unsafe пользы не больше чем от бубна.А в огороде бузина. В общем, опять Воены ничего не поняли, но ценное мнение заимели.
> Но помощь системе зависнуть при ошибке, прямо в хелооворде, вместо возврата кода
> ошибки, ставит под сомнение квалификацию автора.Пока что лишь Воены своми "смелыми" выскзываниями ставят свою квалификацию под сомнение.
> Можно вопрос? Зачем loop {} в конце?Это на случай если exit не сработает как должен.
Хм... а на Википедии хелловорлд на расте по-другому выглядит. Можете заменить нынешний пример вашим здесь: https://en.m.wikipedia.org/wiki/Rust_(programming_language)#Hello_World_program ?
Там врут опять, вот каноничный привет мир на расте
> Там врут опять, вот каноничный привет мир на расте"Канноничность",точнее параноидальность, зашкаливает.
Но если писать под многоялерный контроллер без ОС (что уже не массовая задача), то и на Си получится почти тоже самое.
Ты опцию --release специально пропусти?
А так... да, кода побольше чем в тупом как валенок си. А тут и ошибки нормальны выдавать будет.
>Ужас, сколько кода нужно для обычного Hello World!Первое знакомство с Растом и сразу такое столкновение с реальностью.
А знатоки --release пусть добавят аналогичную оптимизацию и в хеллоуворлд на Си.
>Компания Google представила в списке рассылки разработчиков ядра Linux новую реализацию механизма межпроцессного взаимодействия BinderРазработчики кернела вежливо отказали...
Отказали платиновому спонсору?
Те самые "Разработчики кернела" которые на зарплате от гугла?!Ох уж эти сказочники!
ето он про разрабов hurd
Так он все еще 0.9 причем 2016 года.
Имхо он уже помер, но еще не завонялся.В хурде была как минимум одна хорошая идея - микроядерность.
Так что посмотрим как будет развиваться Open Se Cura - чтобы уйти от ситуации "драйвер видяхи упал и уронил всю систему".
Open Se Cura выглядит так что это специализировання ОС, которая будет жить в ИИ ускорителях.
или других подобных девайсах. не будет там никаких драйверов видяхи.
Ну так оно будет жить только в ядре андроида.
Гуглу от этого не холодно и не жарко.
> Ну так оно будет жить только в ядре андроида.binder в ядре давно
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux...
и он даже используется в waydroid. Непонятно куда внедрилы kdbus из редхата рассосались - им так нужен был быстрый ядрёный ipc, вот он есть а интереса нет.
Быстрый ядерный IP много лет сушествует: mmap, shmem
*ipc
ок, а ты внедрилам kdbus из редхата это рассказал?
> Быстрый ядерный IP много лет сушествует: mmap, shmemи как там быстро узнавать что кто-то тебе написал что-то в общую память - постоянно опрашивать ?
/* * Finally, we wait until the other process * changes the first character of our
memory * to '*', indicating that it has read what * we put there. */
while (*shm != '*')
sleep(1);
Во-первых, с чего ты взял что твой пример со слипом корректный?Во-вторых, shmem был просто как пример что межпроцессорное взаимодействие в ядре существует
В-третьих, mmap куда лучше разделяемой памяти. Можешь epoll'ом слушать что файловый дескриптор получил данные.
> Во-первых, с чего ты взял что твой пример со слипом корректный?давай ты пояснишь тогда что там не корректно ?
> В-третьих, mmap куда лучше разделяемой памяти
что ты предлагаешь мапить для ipc ?
> shmem был просто как пример что межпроцессорное взаимодействие в ядре существует
твои примеры подходят для череззадничного ipc - спора нет, очевидно для современных разработок такое не подходит
От новости к новости Уже сложнее плюсов становится.Иногда проще написать void*, чем возиться с типами. Зачем стремится к вероятности 1, если в 98% хватит более меньшего значения. Как школьники без знания тервера.
> проще написать void*, чем возиться с типамиЭто всё, что нужно знать о программировании на C, C++, и о программистах, выбирающих эти языки. Действительно, зачем возиться с какой-то никому не нужной детерминированностью программы, если с вероятностью в 90% ваше бизнес-приложение не рухнет под нагрузкой?
И эти гэмблеры ещё пытаются кого-то учить.
> Это всё, что нужно знать о программировании на C, C++, и о программистах, выбирающих эти языки. Действительно, зачем возиться с какой-то никому не нужной детерминированностью программы, если с вероятностью в 90% ваше бизнес-приложение не рухнет под нагрузкой?С чего ты такие выводы делаешь? Если ты знаешь, что тут можно сделать каст и на тестах это не падает, то в чем проблема? Это лучше, чем писать кучу кода и возиться с типами ради мнимой безопасности.
>то в чем проблема?Проблема в плохой читаемости и сопровождаемости такого кода. Ваш Кэп.
Про плохую читаемость и сопровождаемость фанатикам Раста лучше бы помалкивать.
У Rust-кода отличная сопровождаемость. Потому что львиную долю проверок делает компилятор автоматически.
"Отличная сопровождаемость кода, потому что компилятор делает проверки." Это была короткая, но честная демонстрация растологики.
Если подумать, то высказывание форумчанина выше вполне себе логично. Но это если подумать, к чему программисты на Си, вроде тебя, с детства не приучены.В Си для того, чтобы обеспечить безопасность продукта, придётся обмазываться какими-то дополнительными функциями, проверками и тому подобной ерундой, которая засоряет код. В Расте эта логика (её часть) возложена на компилятор, следовательно, код на Раст будет короче и более лёгким для чтения и сопровождения при прочих равных.
Разумеется, речь не идёт о всех возможных проверках. Только о тех, что встроены в компилятор Раста.
У раст отличная читаемость.unwrap()
потому что львиную долю проверок делает компилятор.unwrap()
Очередной неосилятор монад порвался
Во-первых, я - не фанатик. Я сторонник использования этого языка вместо морально устаревшего Си или переусложнённого Си++.Во-вторых, а в чём проблемы с читаемостью в Rust? И чем она принципиально отличается от Си? Набор символов везде один и тот же примерно. Некоторые конструкции непривычны взгляду Си-программиста? В этом всё дело?
> Набор символов везде один и тот же примерно.Пиши тогда на брэйнфаке
> Это всё, что нужно знать о программировании на C, C++, и о программистах, выбирающих эти языки. Действительно, зачем возиться с какой-то никому не нужной детерминированностью программы, если с вероятностью в 90% ваше бизнес-приложение не рухнет под нагрузкой?Потому что на расте никаого приложения бы вообще не было. А код падает... Под нагрузкой... Любой Узнаешь, когда вырастешь и перестанешь здороваться с миром.
> А код падает... Под нагрузкой... ЛюбойКогда в разработке ПО ни в зуб ногой, но пыли в глаза напустить надо...
> Когда в разработке ПО ни в зуб ногой, но пыли в глаза напустить надо...Газифицируешь опять? Вообще то летс ит крэш нормальная тема. Ты никогда не можешьна 100 процентов быть уверен , поэтому мониторинги и вотчеры по-любому нужны. Вопрос не есть ли ошибки, а в их кол-ве. Да кому я объясняю, выложишь что-тотпосложнее хэллоуворда тогда поймёшь.
> Потому что на расте никаого приложения бы вообще не было.Ты новость точно читал полностью? Там как раз про приложения на Rust.
Отличная идея!
Пусть в рентген аппарате на котором тебя будут исследовать, с вероятностью 98% будет нормальная экспозиция, а в остальных переполнение и доза в 100 раз больше.
Ты наверное с радостью пойдешь на такой риск)ps в Therac-25 одной из ошибок было как раз целочисленно переполнение, именно такое как любят разработчики дыряшки
Только там был не Си
Речь в первую очередь в отношении к делу.
Какой быстрый спрыг. Отношение может быть таким же и при программировании на Rust, наоборот оно там еще больше поощряется.
Как скажешь :)
> а в остальных переполнениеЗапусти ты код под санитайзерами. Ну или добавь проверку где надо. Или в расте вместо + ты пишешь checked_add()?
> Пусть в рентген аппарате на котором тебя будут исследоватьВот тебе задание на дом: приведи мне на чем работаю эти аппараты сейчас? Да, те самые, которые тебя облучают, когда ты приходишь в больничку.
Еще можно порекомендовать вообразить, что если ПО для рентгена напишут на Rust, с его постоянными обновлениями и отсуствием стандарта.
Кто о чем, а сишник о своем никчемном стандарте, об который все производители компиляторов вытирают ноги …
😂😂😂
Беги обновляй раст, а то собираться перестанет
Почему же тогда компиляторы Си совместимы между собой? Загадка! Наверное растоман как всегда...
> Почему же тогда компиляторы Си совместимы между собой?Удачи тебе скомпилировать ядро без расширений GNU.
> От новости к новости Уже сложнее плюсов становится.Нет, не становится. Подебажил бы ты пару раз какую-нибудь висячую ссылку, да еще и в многопоточном коде - вот тогда бы и понял, что сложнее.
Причем тут висячие ссылки и многопоточность? В расте код многопоточный сильно проще? Умные указатели не используешь? Ты раст дебажил? Ты смотрел, что под капотом, используемых тобой растовых оберток?
> Причем тут висячие ссылки и многопоточность?В том, что в десятитысячный раз разгребать одни и те же идиотские ошибки, тратя нервы, время и деньги - это совсем не "проще", чем выучить нормальный инструмент, который выжег их на корню.
Хотя, какой смысл это все тебе объяснять, если любитель void*
и критик Раста с таким даже не сталкивался?Но ты иди, раскрой глаза разработчикам ядра: расскажи им, как ты лихо сорвал покровы с шарлотанов, продвигающих Раст. Будет сенсация!
> В расте код многопоточный сильно проще?
Прикинь, да. Или критикам Раста ниезвестно, что borrow checker проверяет владение и доступ в том числе и в многопоточныом коде?
> Но ты иди, раскрой глаза разработчикам ядра: расскажи им, как ты лихо сорвал покровы с шарлотанов, продвигающих Раст. Будет сенсация!Почитай ревью патчей прежде чем тут писать. Там просто никто не знает раст у них вопрос зачем
> Почитай ревью патчей прежде чем тут писать. Там просто никто не знает раст у них вопрос зачемНу так я об этом и говорю: ты иди, раскрой глаза этим "незнающим раст", возглавляемых Торвальдсом, который принял Раст в ядро.
Ладно они дурачки, но тебя-то не проведешь - раскусил растозаговор! Ну так спаси ядро от метастаз Раста, пока не поздно. Лишь на тебя вся надежда - всем остальным уже запудрили мозги!
Если ржавчина такая суперская почему она намерьво привязанна к менеджеру пакетов? GCC проекты можно и в офлайне собрать.
Потому что смузи-way.
О, еще один "исксперт", лучше бы ты жевал...Вот почитай https://doc.rust-lang.org/cargo/faq.html#how-can-cargo-work-...
Можно и оффлайн все собрать, и свою коллекцию пакетов сделать.
Ок, тогда другой вопрос - а почему название такое говеное? Карго, это грузоперевозки какие-то?
ого, неужели аргументы закончились и последний шаг "прикапаться к названию"?Ну тогда представь:
"маленькие человечки на маленьких машинках везут тебе по сети пакетики с данными, которые называются crates (тобишъ ящики на эльфийском)"
вот тебе и грузоперевозкиПримерно по той же причине в Руби есть gems, у Джавы есть jars (тк банка кофе), в Crystal - shards, а любимица игроделов Lua использует rocks.
Уже не знаешь к чему докопаться?
Потому что раст crate - минимальная единица компиляции ("A crate is the smallest amount of code that the Rust compiler considers at a time"), что в переводе "ящик".
А чем ящики являются - грузом.
Но, кроме шуток, это худшее, что могло случиться с растом.
Название правильное и в точку. То самое карго, которое в идиоме «карго-культ».Постмодерновая самоирония она такая — когда сам себя беззлобно обсмеял, и тем самым исключил серьёзные нападки.
«Мы конструируем сверх-сложную и сверх-монструозную систему, разобраться в которой давно не под силу одному человеку, но всем говорим что она безопасная и лучше конкурентов. Верьте нам — разве люди с такими прекрасными лицами и инклюзивными идеалами могут врать? Что? Карго–культ? Ха–ха–ха, мы уже сами так пошутили. И вам доброго дня!»
Вот только карго-культ - это делать действия, без понимания в надежде что что-то произойдет.
А раст - тут и понимание есть, и сам язык лучше и безопаснее дыряшки.
Хотел написать "конкурента", но ее даже конкурентом назвать нельзя...
>аже конкурентом назвать нельзяЭто потому, что на расте ничего на написано до сих пор? Или из-за отсутствия стандартов? Или из-за отсутствия стабильного аби? Или из-за того, что поведение меняется каждое обновление, и всё отваливается среди прочего? Я думаю, ты слишком критично относишься к расту всё же, Москва не сразу строилась.
Может ты читать не умеешь?
Прям в этой статье написано про RustVMM и новую реализацию Binder, причем первое написано с нуля, второе - переписали с дыряшки. И после этого ты пишешь "на расте ничего на написано до сих пор".
И все бредовые "проблемы", которые ты описал никак не мешает на расте писать тем, кто реально что-то делает.> из-за отсутствия стандартов
Прелестнейшие "стандарты" дыряшки и плюсов уже обсудили выше. Спасибо, такое нам не надо.
> отсутствия стабильного аби
А где оно еще стабильное кроме дыряшки?
> поведение меняется каждое обновление, и всё отваливается среди прочего
Вранье. Сидишь на стабильной generation и у тебя вообще ничего не меняется.
> Я думаю, ты слишком критично относишься к расту всё же
Унылая попытка набросить, в след. раз постарайся лучше.
>Может ты читать не умеешь?
>Прям в этой статье написано про RustVMM и новую реализацию Binder, причем первое написано с нуля, >второе - переписали с дыряшки. И после этого ты пишешь "на расте ничего на написано до сих пор".
>И все бредовые "проблемы", которые ты описал никак не мешает на расте писать тем, кто реально что-то делает.Так я тебе и говорю. Постепенно улучшаются инструменты, и когда-нибудь кто-нибудь что-нибудь напишет. Просто нельзя ничего серьёзного написать на языке, который не готов для написания кода. Когда он малопопулярный к тому же. Так что, чем больше развитие, тем скорее это произойдёт. А ты всё жалуешься.
>и когда-нибудь кто-нибудь что-нибудь напишетВ полный рост пишут. И новое. И старое переписывают.
>который не готов для написания кода
Крупные корпорации начали использовать этот язык в своих продуктах. Но Аноним с форума утверждает, что язык не готов. Кому верить?
Крупные корпорации как писали на Java и NET, так и пишут. Но Аноним с форума утверждает, что они используют Раст. Кому верить?
ути пути. насильничек пытаеться поиграть в логику ...вот тебе крупная корпорация переписала проект с тормозной явы на раст - https://github.com/facebook/buck2
от как оно может быть, крупные корпорации могут испольщовать более 2-х ЯП одновременно.
но куда уж это понять простому сишнику !
Вроде пока только плачутся, что это очень дорого и неэффективно. Не получается нанимать дешёвых глупых растовиков и на этом экономить, просто нет желающих. А в остальных случаях проигрывает во всём.
Всё бы ничего, но те кто пишут что на русте что на петоне что на руби - не поддерживают свои поделия на платформах за пределами их десктопа.
Руст не самый ужасный из списка, но тоже неприятный для меинтейнеров.
> Вот почитай https://doc.rust-lang.org/cargo/faq.html#how-can-cargo-work-...
> Можно и оффлайн все собрать, и свою коллекцию пакетов сделать.Что вы все кидаете эту ссылку. Ты лучше покажи кто так делает.
А можно без Cargo? Старым проверенным методом через tar-файлы? Собираю свой дистр, со своим менеджером пакетов. Тащить Cargo чтоб собрать librsvg выглядит глупо. Не находите?
>А можно без Cargo?конечно можно.
тебе никто не запрещает вызывать rustc из башскрипта или мейкфайла. все в твоих руках.
> привязанна к менеджеру пакетов?Потому что это язык для контроля над погромистами. Все будет привязано.
Но есть его форк Crab.
Столько пафосных слов, а в реальности нишевой язык для нишевых проектов.
Столько пафосных обличений, а в реальности - отличный язык общего назначения для большого спектра проектов.
> нишевой язык для нишевых проектовКак и C.
Он не нишевый: что написано на нем пользуется вестимо каждый день
Отличный язык, позволяет безопасно работать с памятью. А когда добавили в Линукс, Линукс стал еще безопаснее. Наконец-то исчезнут ошибки, связанные с памятью.
Согласен, на Расте программируется на 200% лучше чем на любом другом языке!
> А когда добавили в Линукс, Линукс стал еще безопаснееЭто типа как иконка в машине? Так это работает?
Они могут смело засудить разработчиков brainfuck за то, что те украли название их языка.
> но ныне развиваемого под покровительством независимой некоммерческой организации Rust FoundationОбнаружено логическое противоречие в строке 1.
Либо развиваемый, либо независимый. Организация не может быть одновременно независимой от тех, кто её спонсирует, и при этом развивать проект. Прямое следствие тут: организацию спонсируют, организация развивает язык, значит развитие языка зависит от спонсирования.
Можно конечно сказать, что спонсирование организации никак не влияет на развитие языка, но тогда придётся вычеркнуть утверждение о том, что организация развивает язык.
Всё ещё слишком мало скобочек, надо больше.
чего спорить Си как был так и останется навсегда
И раст останется. Будет попыхивать в сторонке чекать своих боровов
В итоге код всё равно нейронки писать будут. Скорее всего на Си
> чего спорить Си как был так и останется навсегдаВ юникс подобных системах - да. Учитывая, что всё завязано на системные си-шные библиотеки и в манах (которые почему-то никто не читает) описывается только си-шка.
> В итоге код всё равно нейронки писать будут.Так уже пишут. Мои проекты за последние полгода все сделаны с помощью chatgpt + google bard + github copilot. Но скажу так, если у человека нет навыков программирования, то за него нейронки код не напишут. Всё равно нужно подправлять, дописывать, доробатывать напильником, а самое главное - понимать что делаешь. Но то что они ускоряют процесс - факт.
С учетом колоссальной существующей кодовой базы для обучения нейросетей и отличных компиляторов скорее всего будут генерировать на Си. Для обучения нейросетей также очень важна стабильность языка.
Заголовок в rrs поправьте, то там 1.73 указан.