Опубликован релиз языка программирования Rust 1.90, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки)...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=63906
как его собрать с помощью gcc?
его даже llvm не собрать вечно
его-то собрать, но как раз вечно, потому что из-за постоянного ломания обратной совместимости приходится держать 2-3 версии этого дерьма в системекогда его уже выкинут из ff и ещё чего-то там зависимого
Если вы одержимы процессом постоянной сборки (пересборки), то причём здесь Rust? Это я так мягко намекаю, что проблема не в нём, а у вас в голове.
При том, что монстровидный.
Ещё раз, поскольку с первого раза, видимо, не дошло. Вас кто-то заставляет исходники компилировать?
> из-за постоянного ломания обратной совместимости приходится держать 2-3 версии этого дерьмаЧто ж ты так нагло врешь? В Расте не ломается ОБРАТНАЯ совместимость: последняя версия компилятора собирает код всех предыдущих версий.
Да это тролль местный.
>> из-за постоянного ломания обратной совместимости приходится держать 2-3 версии этого дерьма
> Что ж ты так нагло врешь? В Расте не ломается ОБРАТНАЯ совместимость:
> последняя версия компилятора собирает код всех предыдущих версий.он имел в виду шланг, 3+ тулчейна разных версий ллвм лично меня немного напрягают и они нужны для сборки примерно 3 программ (сборку гцц в них регулярно ломают)
https://forums.gentoo.org/viewtopic-t-1173283.html
Ты НИКОГДА не собирал раст с исходников.
> https://forums.gentoo.org/viewtopic-t-1173283.html
> Ты НИКОГДА не собирал раст с исходников.У го емнип похожая ситуация -- тебе приходится полагаться на бутстрап с бинарного кода из интернета. Но да, без этого боль. Это большая проблема шланга тоже на самом деле: если его зависимости собрать гцц, в том же фф потом интересные баги, которые невозможно диагностировать нормально.
>У го емнип похожая ситуация -- тебе приходится полагаться на бутстрап с бинарного кода из интернета.Клонируешь репозиторий раста, откатываешься на первые коммиты, когда rust был написан на ocaml, после чего собираешь его с помощью ocaml, и далее с версии на версию, вплоть до текущей. Вот просто интересно, почему это ыксперд может собрать из исходников текущую версию, а вот начать сборку с самой первой - не может.
Кстати, чтобы собрать gcc, вам тоже нужен уже готовый сишный компилятор.
> Кстати, чтобы собрать gcc, вам тоже нужен уже готовый сишный компилятор.Там развёртка начинается с компилятора Си на лиспе, емнип.
> https://forums.gentoo.org
> Ты НИКОГДА не собирал раст с исходниковНу да, я же не гентушник. 🤣
> gentoo.orgО, типичные прдлико-проблемы.
А просто взять бинарник dev-lang/rust-bin как это написано в мануале нельзя?
gentoo.org/wiki/Rust#Development
>Ты НИКОГДА не собирал раст с исходников.Любители собирать софт из исходников по этой же логике должны ненавидеть кучу других языков: си https://www.opennet.dev/opennews/art.shtml?num=56449
>Инго Молнар (Ingo Molnar), известный разработчик ядра Linux и автор планировщика задач CFS (Completely Fair Scheduler), предложил для обсуждения в списке рассылки разработчиков ядра Linux серию патчей, затрагивающих более половины всех файлов в исходных текстах ядра и обеспечивающих увеличение скорости полной пересборки ядра на 50-80% в зависимости от настроек.
>Прирост производительности достигается за счёт изменения метода обработки заголовочных файлов. Отмечается, что за тридцать лет разработки ядра состояние заголовочных файлов приняло удручающий вид из-за наличия большого числа перекрёстных зависимостей между файлами.c++, что скажет каждый, кто собирал chromium, кучу других языков. Любить pascal и ocaml.
И? К чему вы вообще это написали? Нить потеряли? Речь шла про самораскручивание компилятора.
> https://forums.gentoo.org/viewtopic-t-1173283.html
> Ты НИКОГДА не собирал раст с исходников.Вообще, по ссылке виден нормальный бутстрап компилятора. Они сохраняют обратную совместимость только между соседними версиями: т.е. для сборки 1.80 нужен 1.79, для него нужен 1.78, итд. То, что в source-based роллинг-дистрибутиве это приводит к последовательной сборке всех версий компилятора подряд -- закономерное следствие. Со стороны это конечно может показаться чем-то из ряда вон, но поверьте: если вы гентушник -- это не просто не проблема, это нормально и вообще фича.
Я гентушник и это проблема, поэтому я избегаю компилить всякую жирноту типа Firefox и Webkit. Либо ставлю -bin пакет, либо вообще из флатпака.Впрочем, не так страшен чёрт, как его малюют - тот же llvm собирается у меня всего за 20 минут, и это на половине потоков ЦП.
> Либо ставлю -bin пакет, либо вообще из флатпака.Так может ты на самом деле не хочешь быть гентушником?
Нет, я просто не хочу собирать всё подряд.
> я просто не хочу собирать всё подрядПо преданию, именно после этих слов Ян Мёрдок создал Debian.
Жаль конепчно что он не создал нормальный дистриб вместо дебиана
> Ты НИКОГДА не собирал раст с исходников.Я бы сказал: В скором времени ты Никогда не соберешь раст. Вот цитаты из вашей ссылки:"Rust can build from one version to the next.", "needs all rust versions !"
>Я бы сказалИной раз лучше молчать. Нужна версия 1.90 - берёте готовую,уже собранную кем-то для вас, версию 1.89. Хотя не понимаю этого бесполезного времяпрепровождения по самостоятельной сборке компилятора. Чтобы какой цели достичь?
> Хотя не понимаю этого бесполезного времяпрепровождения по самостоятельной сборке компилятора. Чтобы какой цели достичь?Если отвечать на этот вопрос, то неминуемо по индукции последует и более общий: зачем вообще собирать систему с нуля при каждой установке?
> его-то собрать, но как раз вечно, потому что из-за постоянного ломания
> обратной совместимости приходится держать 2-3 версии этого дерьма в системеДа и в целом LLVM это пример корпоративного монстра в хучшем виде. Какой гений допер вообще ВСЮ кодогенерацию ВСЕХ платформ затолкать в ОДНУ убер-либу - это вообще отдельный вопрос. Поэтому оно обречено пухнуть и уже распухло до ~100 мегов. Нормальная такая шаред либа. По моему более крупных в моей системе просто нет.
> Да и в целом LLVM это пример корпоративного монстра в хучшем виде.Спорное утверждение)
> Какой гений допер вообще ВСЮ кодогенерацию ВСЕХ платформ затолкать в ОДНУ убер-либу - это вообще отдельный вопрос.
Это лучше чем потом попадать в ситуацию "нужно исправить баг в 10 либах и проверить чтобы ничего не потерялось".
> Поэтому оно обречено пухнуть и уже распухло до ~100 мегов. Нормальная такая шаред либа. По моему более крупных в моей системе просто нет.
И? 100 метров это непосильно для билд машины?
Ты же не на коре2duo будешь собирать.
> уже распухло до ~100 меговО боже, какая драма, библиотека для решения отнюдь не тривиальной задачи весит как средний видосик твоей любимой тиктокерши! Ну не качай, посмотри лучше как она танцует.
GCC точно умеет компилировать код на RUST:
https://archlinux.org/packages/core/x86_64/gcc-rust
ну так иди собери им ff, потом расскажешь
В FFmpeg точно нет кода на RUST. При чём здесь это?
ты ошибся новостью
FF - это всё таки имелось ввиду Firefox, а не FFmpeg?
FF это FireFox.
он знает
и thunderbird
Пока что ещё не умеет, а только учится.
Встречный вопрос. Есть ли дистры, которые избавились от gcc?
> Встречный вопрос. Есть ли дистры, которые избавились от gcc?FreeBSD.
>> Встречный вопрос. Есть ли дистры, которые избавились от gcc?
> FreeBSD.А OpenMandriva чё?
>>> Встречный вопрос. Есть ли дистры, которые избавились от gcc?
>> FreeBSD.
> А OpenMandriva чё?А чё OpenMandriva?
Не избавилась? Она так забавно по всем бенчмаркам просела сразу.
Хорошая новость, но мы на nightly.
> для динамического связывания crate-пакетов по умолчанию задействован компоновщик LLD от проекта LLVM.Этот компоновщик написан на C++, не безопасно же.
Когда ты уже поймешь что никакой безопасности не существует. А раст это маркетинговый продукт.
https://ru.wikipedia.org/wiki/%D0%A1%D0%...
>А раст это маркетинговый продукт.Это в лучшем случае он маркетинговый. В худшем и наиболее реальном, судя по продавливанию, это продукт АНБ и их друзей.
> не безопасно жевот и не используй
Лично мне не нравится когда средство разработки предоставляются как услуга (Compiler as a Service). Мне, когда приобретёшь продукт - то он твой полностью. Представьте что вы купили холодильник, который через интернет контролируется производителем. Вы никогда не будете уверены будет ли работать этот холодильник завтра.А у этого Rust'а стандартный фреймворк находится на централизированном (единственном) хранилище. Конечно, можно сделать частичную локальную копию этого хранилища, но, извините меня, откуда в него вы будете скачиваются крейты? Из центрального, конечно. Который может быть заблокирован.
То же и централизированное хранение документации на крейты (docs.rs)
А репозиторий gcc заблокирован быть не может?
> А у этого Rust'а стандартный фреймворк находится на централизированном (единственном) хранилищеЧто есть стандартный фреймворк? Репозиторий cargo не используется пока ты его не используешь, оттуда ничего по дефолту не качает.
Это бесполезно объяснять. Одно и то же, под каждой новостью о Rust.
Такое нынче модно - жизнь по подписке и вендорлок - массы такое схавают и будут просить еще. И корпорации и всякие фонды только рады.
> Представьте что вы купили холодильник, который через интернет контролируется производителем. Вы никогда не будете уверены будет ли работать этот холодильник завтра.всегда будем. в РФ интернета нет, так что производитель не дотянется.
> Лично мне не нравится когда средство разработки предоставляются как услуга (Compiler as a Service). Мне, когда приобретёшь продукт - то он твой полностью. Представьте что вы купили холодильник, который через интернет контролируется производителем. Вы никогда не будете уверены будет ли работать этот холодильник завтра.Бред. Компилятор скачивается и работает локально. Ты ничего не покупаешь - весь код открыт и бесплатен (лицензия MIT). Завтра он будет работать так же, как и вчера. Если тебе не хватает уверенности, иди к психиатру.
> А у этого Rust'а стандартный фреймворк находится на централизированном (единственном) хранилище. Конечно, можно сделать частичную локальную копию этого хранилища, но, извините меня, откуда в него вы будете скачиваются крейты? Из центрального, конечно. Который может быть заблокирован.
Бред. У Rust нет "стандартного фреймворка", а crates.io - не единственное хранилище. Можно поднять своё локальное зеркало и прописать его в Cargo.toml. Не хочешь тянуть пакеты из crates.io - скачивай их напрямую с репозитория и складывай в своё зеркало, либо прямо указывай репозитории в манифесте.
> То же и централизированное хранение документации на крейты (docs.rs)
Бред. Документация не хранится в каком‑то едином центре. Она является частью кода, а HTML версию для любого крейта можно собрать самому командой cargo doc.
>Конечно, можно сделать частичную локальную копию этого хранилища, но, извините меня, откуда в него вы будете скачиваются крейты? Из центрального, конечно.Интересно, Зоркий Глаз уже обнаружил, что он может делать локальную копию. Сколько времени должно пройти, пока он не обнаружит, что он может во-первых синхронизировать все зависимости, а во-вторых регулярно их скачивать?
Исходники зависимостей и так качаются самим cargo и кладутся в локальный репозиторий.
> rustflags = ["-Clinker-features=-lld"]господи, какой же треш. вот просто каждый символ здесь - эталон вырвиглазного бардака
Так специально что бы не пользовались этим....
Ты до Rust части не дошёл, это toml обычный ещё...
то, что в кавычках, - тоже toml?
на раст-код я боюсь смотреть, уже как-то пробовал
Внутри кавычек обычный синтаксис аргументов. -С затем linker-features=-lld. Очевидно, что в данном случае -ldd передаётся дальше как опция для следующего уровня процесса компиляции. Возможно тебе несколько непривычно, что одна программа может вызывать другую и иногда нужно иметь способ протащить аргументы на следующий уровень.Если ты считаешь этот синтаксис плохим, то предложи замену, которая не будет выглядеть странно в глазах типичного *nix-пользователя. Только для того, чтоб что-то поменять, тебе придётся предложение пропихивать в стандарт POSIX раздел 12.
В кавычках передача аргументов, которая не хуже gccшного"-Wl,-Map,output.map" (да, это один аргумент для gcc)
Что и требовалось доказать, местные критики Rust даже на сях ничего внятного не писали
> В кавычках передача аргументов, которая не хуже gccшногоА как же эффект утенка?
Местные один раз увидели и уже будут до самой старости топить за первое впечатление.
Принять что-то новое, это слишком сложно.
>то, что в кавычках, - тоже toml?Типичный ыксперд. Зато про makefile, с кучей приблуд сверху, типа cmake - ни слова.
>> rustflags = ["-Clinker-features=-lld"]
> каждый символ здесь - эталон вырвиглазного бардакаЧто, прямо каждый символ? Тут какой-то особый ACII - не такой, как в C++?
Эталон бардака, говоришь. Ты же там вроде пел, что являешься разработчиком на C++. Шаблоны плюсовые давно видел?
Вобщем, слабенько набрасываешь. Впрочем, как и всегда...
> Вобщем, слабенько набрасываешьнормально, ты вон сколько желчи выдал
Слабенько? Зато ты кучу вон навалил и в ней еще и перемазался, да еще и пообедал видимо..C++ шаблоны хочешь пользуй, хочешь нет. А вот с синтаксисом RUST данный номер не пройдет.
> C++ шаблоны хочешь пользуй, хочешь нет.Если ты пишеш на С++ без шаблонов, есть 2 варианта:
1 - ты пишеш на С (без ++)
2 - это хелоуворд
Какой какой ворд?
> Какой какой ворд?хелоу, хелоуворд
>> Какой какой ворд?
> хелоу, хелоувордЭто который у "Злобных Растаманов", по многолетним неустанным заверениям опеннетного Военства, был "жирнючий-жирнючий!" (а на практике оказался не сильно больше ассемблерного, после чего все вопли резко прекратились) 😉?
хеловорд - это приветственное Слово.
хеловорЛд - это "привет, мир".
3 - он не пишет ни на C++, ни на Rust
>> C++ шаблоны хочешь пользуй, хочешь нет.
> Если ты пишеш на С++ без шаблонов, есть 2 варианта:
> 1 - ты пишеш на С (без ++)
> 2 - это хелоувордБреднятина полная - никто не мешает в целом писать как на C но с удобствами в виде классов. Архаичность и костыльность работы со структурами в обычном С - это головная и не только боль. Причем и опять риск различных утечек, переписываний и т.д. данных. И еще раз повторяю - дальше ты можешь использовать шаблоны, а можешь и не использовать. С++ достаточно гибок чтобы обходится без шаблонов.
Но недопрограммисты, в том числе и ты и 2-3 плюсующих, которые только и слышали о С++ и якобы сложности шаблонов, но никогда не щупали - не понимают вообще что такое шаблоны и для чего они используются.
> С++ достаточно гибок чтобы обходится без шаблонов
> недопрограммисты [...] не понимают вообще что такое шаблоны и для чего они используются.Объясни, как ты будешь "гибко" обходиться без шаблонов, когда нужен полиморфизм времени компиляции?
Если классы не имеют общего предка, через составной класс. Но с шаблонами удобнее.
>> С++ достаточно гибок чтобы обходится без шаблонов
>> недопрограммисты [...] не понимают вообще что такое шаблоны и для чего они используются.
> Объясни, как ты будешь "гибко" обходиться без шаблонов, когда нужен полиморфизм времени
> компиляции?Перегрузить операторы/методы класса с нужными типами.
В целом тоже что и class cls<T> и это далеко не сложное в шаблонах и доступно для использования даже новичку.
>> С++ достаточно гибок чтобы обходится без шаблонов
>> недопрограммисты [...] не понимают вообще что такое шаблоны и для чего они используются.
> Объясни, как ты будешь "гибко" обходиться без шаблонов, когда нужен полиморфизм времени
> компиляции?А вообще конечно позорище - элементарных вещей в С++ не знать..
>ты пишеш на С (без ++)Программист на C++ никогда не сможет писать на процедурном Си. Чтобы писать на Чистом нужно алгоритмы знать, а также нужно знать типичные для Си идиомы.
Откуда Вам знать? Если он свои классы пишет? Если алгоритм построен с использованием аффинных типов, реализовывать их придется самому.
>>ты пишеш на С (без ++)
> Программист на C++ никогда не сможет писать на процедурном Си. Чтобы писать
> на Чистом нужно алгоритмы знать, а также нужно знать типичные для
> Си идиомы.Что за бред вообще? Чтобы писать на любом языке программирования - нужно алгоритмы знать, Кнута, Вирта прочитать. В худшем случае "общая библиотека" может быть недоступна.
А "идиомы С" - это какой-то словесный понос.
Ну Clinker-features - это как бы синтаксис похожий на флаги в GCC, Сишные мейкфайлы выглядят похоже. Что касается квадратных скобок, это обозначение массива. Здесь могло быть несколько аргументов. Но в данном конкретном случае только один.Так что странная претензия, вот здесь-то как раз всё по делу. Предложите лучше, если вам не нравится
карл, это синтаксис конфига toml, а не rust
> WDM (Windows Driver Kit), KMDF (Kernel-Mode Driver Framework) и UMDF (User-Mode Driver Framework)А про KMFDM опять забыли.
> Безопасная работа с памятью
> Windows-драйверов на языке Rust`unsafe impl GlobalAlloc for WdkAllocator {
unsafe fn alloc(&self, layout: Layout) -> *mut u8 {
let ptr =
// SAFETY: `ExAllocatePool2` is safe to call from any `IRQL` <= `DISPATCH_LEVEL` since its allocating from `POOL_FLAG_NON_PAGED`
unsafe {
ExAllocatePool2(POOL_FLAG_NON_PAGED, layout.size() as SIZE_T, RUST_TAG)
};`🌬
У вас вызвало недовольство unsafe? Или вас просто с бодуна тошнит?1. Похоже, очередному Воину надо пояснить, что в Rust небезопасны только сырые указатели. В остальном код, помеченный как unsafe подчиняется тем же ограничениям, что и код без этой пометки.
2.unsafe в коде на Rust часто нужен потому, что этому коду приходится пока использовать внешние библиотеки, написанные на C, C++.
> очередному Воину надо пояснитьНе надо пояснить. Воин получил плюсиков к комментарию от сослуживцев - воин свою цель выполнил. 🫡
М... а как вы иначе представляете вызов в безопасном языке функций из мерзопакостной сишки или плюсов? Они же никаких гарантий не дают и могут запороть память в любом месте!
Поэтому каждое взаимодействие с ними приходится обмазывать ансефом.
> вызов в безопасном языке функций из мерзопакостной сишки или плюсовЭто что такое, опять раст - всего лишь обмазка вокруг написанного на си?
>> вызов в безопасном языке функций из мерзопакостной сишки или плюсов
>>> инструментария для разработки Windows-драйверов на языке Rust
> Это что такое, опять раст - всего лишь обмазка вокруг написанного на си?Не, это опять лишь унылое πоπукивание жабоскриптозников в новости о Расте.
> Это что такое, опять раст - всего лишь обмазка вокруг написанного на си?Это что такое, опять Си - всего лишь обмазка вокруг системных вызовов и ASM?
Сами "системные вызовы" написаны, внезапно, на немодном C
> В случае возникновения проблем можно вернуть BFDМеня озадачило почему не ld.
Я так понял BFD (что расшифровывается как "Big Fucking Deal") это либы для кросс-исполняемого-файла-форматы линковки которые используются в ld.И получается раст использовал не линкер-cli-программу, а линкер-библиотеку.
И это меня озадачило ещё больше, т.к. я думал что в процессе компиляции линкер именно как отдельная программа вызывается. (что контр-интуитивно когда только начинаешь всё это изучать, когда я был маленький и глупый думал что компилятор это один исполняемый файл, а не куча которые друг друга вызывают).
У меня есть несколько вопросов:1. Rust по-прежнему требует больше ресурсов (RAM и CPU) по сравнению с C++ при сборке крупных проектов?
2. Защита от реверс-инжиниринга в Rust по-прежнему неэффективна? 🤔C++:
• Есть статический полиморфизм шаблонов (запутывают код)
• Есть возможность вынести критический код в отдельную динамическую библиотеку (.so/.dll) (скрывают логику)
• late binding (вызовы по имени в рантайме — сложнее отследить).
• Предоставляет полный контроль над тем, какие символы (имена функций, переменных) экспортируются в бинарник. Можно легко скрыть почти все символы с помощью компоновщика или атрибутов вроде __attribute__((visibility("hidden")))
• Прогер может намеренно заюзать UB или хитрые оптимизации, которые затруднят реверс-инжиниринг.
1. Да пусть хоть сколько ресурсов тратит при сборке, лишь бы результат лучше был.
2. Зачем нужна защита от reverse engineering в open-source программах?
>запутывают кодЧто в этом хорошего?
>динамическую библиотеку
В Rust тоже можно её сделать.
>Предоставляет полный контроль над тем, какие символы (имена функций, переменных) экспортируются в бинарник.
В Rust тоже возможен полный контроль над видимостью символов в бинарнике — с помощью #[no_mangle], pub extern "C", и атрибутов видимости, а также благодаря возможностям линковщика по удалению неиспользуемых символов и настройкам компиляции
>Прогер может намеренно заюзать UB
Чтобы потом его программа навернулась в самом непоходящем месте? Это вы считаете достоинством?
Вы в другом треде говорили, что делаете вклад в опенсорс, а тут сетуете на то, что не получается запутывать код. А зачем вам это, разве это не противоречит концепциям свободы?
>2. Защита от реверс-инжиниринга в Rust по-прежнему неэффективна?Я не понимаю, а почему вы пишите не на хаскеле? Там даже если исходники утекут, всё равно ничего не понятно.
Когда-то дизассемблировал программы на Прологе. Вот это hardcore. Там логика программы совсем другая, основанная на backtracking'е
Даже если драйвера писать на Python - BSODы никуда не денутся. Большинство дров опирается на недокументированную информацию, полученную путём реверсинга ядра.
И на г8рязные хаки с хукингом и патчингом.
Не успело у хейтеров остыть после системд и WebAssembly, как тут раст обновили! Кстати, раст можно компилить в WebAssembly))
Может поэтому хейтеры вбрасывают с удвоенной силой.
не то что можно, а это и есть основной язык wasm
Ты такое не говори, а то начнется))
Вон выше наш Ыксперт-бульбазавр уже наcpaл почти в каждом треде.
Ишъ беднягу корежит.
А что будет если он интернет не сможет смотреть без раста?!!
Они будут отключать wasm как сейчас отключают js
> Они будут отключать wasm как сейчас отключают jsНо тогда кроме опеннета можно будет почитать только блог Столярова))
Впрочем если им норм...
Кто я такой, чтобы осуждать чужие извращения.
Не Rust, а Golang
Хорошо вот программистам на Rust, можно программировать на системном уровне без головной боли. Хотел бы я тоже писать на этом языке!
Да, Раст - великолепный язык и главное, он позволяет безопасно работать с памятью!
Я люблю Раст❤, потому что он позволяет сосредоточиться на алгоритме, а не отвлекаться на проблемы с распределением памяти.
Это да, но когда дело доходит до производительности, то приходётся работать напрямую с железом и гарантировать безопасность сможет только железо.
Мы прекрасно осведомлены, что ****rustы тоже любят, только странной любовью... Но зачем же парад в честь этого проводить? Не могли бы вы проводить свои парады в другом месте, подальше от глаз людских?
Раст - самый современный и безопасный язык!
Безопастный, Ватсон. БезопасТный!
И это ты ещё про provenance не узнал ☺☺☺
Раст — самый лучший, самый современный и самый безопасный язык! Советую попробовать! (Текст не редактировать, информацию в скобках - удалить. Оплата по ранее указанным реквизитам в течение 15 минут после публикации)
> Оплата по ранее указанным реквизитам в течение 15 минут после публикацииНе заслужил! Требовать премию за жалкие 40 м³ метана в минуту со среднего опеннетного "Борца с Растом" — это даже не смешно! Старайся лучше!
Планктон, не суй свой нос в мои дела!
Rust не нужен, так как в нём нет зависимых типов, только афинные. Нужен ATS. Сишников, не согласных использовать зависимые типы, ровно как и писать другие доказательства корректности кода, следует отлучать от компьютера.
За ATS яро плюсую!
Пока есть, что есть. И не то, чтобы с завтипамм было эргономично работать, но кое-где они нужны.
На вершине лямбда-куба холодно и одиноко, там обитают только theorem provers. Мало что из промышленного есть.
> Rust не нужен, так как в нём нет зависимых типов, только афинные.Пока нету)
Но если посмотреть на практические успехи всяких хаскелистов, то может оно и не надо?
С теорией у них все чётко, это без вопросов.
А вот сделать что-то полезное...
> А вот сделать что-то полезное...Define полезное. А так, я в хаскельном финтех-стартапе работал, и как по мне, так польза была — и моему карману, и инвесторам, и клиентам бизнеса.
> Нужен ATSА чекер не устанет? Не уйдет весь "пар" в клонирование или выдачу одноразовых ссылок в высоко-нагруженных чтением системах?
typenum и без них прекрасно справляется
В Ada/SPARK есть зависимые типы.https://en.m.wikipedia.org/wiki/Dependent_type#Comparison_of...
https://nytpu.com/gemlog/2024-12-27
Настоящие программисты не используют Rust.
Настоящий программист на Си понимает как работать с памятью. Он чувствует её душу. Он знает каждый байт, который аллоцировал, и несёт за него личную ответственность. Его код — это отточенная работа мастера, где каждая операция malloc() и free() — это осознанный выбор, а не слепое следование правилам компилятора.
Растоводы же плачут, что у них «висячий указатель» или «data race». Они прячутся за спину у нянечки-компилятора, который не даёт им сделать и шага без unsafe. Сишник в это время строит сложные системы, полагаясь на собственную дисциплину и понимание, а не на крики боровчекера. Его код не компилируется с ошибкой заимствования, а работает десятилетиями, потому что архитектура была продумана мозгами, а не просто одобрена компилятором.
Компилятор Rust с его «заимствованиями» и «время́ми жизни» похож на гиперопекающую маму: «Не бегай с указателями! Не делись без моего разрешения! А то поранишься!». Настоящий программист на Си давно вышел из детского сада. Он не бегает с указателями — он ими мастерски владеет. Он не боится многопоточности, он её проектирует, понимая каждое своё действие до мелочей.
Rust — это для тех, кому нужно разрешение, чтобы думать. Си — для тех, кто уже подумал. Если ты не можешь организовать работу с памятью без костылей компилятора, значит, ты просто не понял её до конца.
Настоящие программисты пишут на Си. Потому что их код работает не потому, что его заставили скомпилироваться, а потому, что он правильно спроектирован. Всё остальное — костыли для тех, кто не хочет разбираться в основах.
Длинные тире (—) признак того, что эту простыню сгенерировал LLM.
И слишком пафосно, типичный сишник уже в первом предложении вышел бы за пределы буфера.
Чтобы программировать на C++ и C нужен высокий уровень организации процесса разработки, дисциплинированные и ответственные разработчики. А этого обычно нет.
Обычно менеджеры - пофигисты, а программисты - безответственные халтурщики. Кроме Rust'а им вообще ничего доверить нельзя.
О, обновлюсь. Lld уже включил. В целом после sccache+lld и ряда настроек rust-analyzer стало значительно быстрее.
скоро дрова для линукса и винды станут одинаковыми)
> одинаковымиОдинаково глючными или одинаково отсутствующими?