LINUX.ORG.RU

Rust и МК

 ,


0

5

Есть реальные истории успеха применения в продакшене?
Вижу что stm32 и esp8266 уже тянет. Вопрос только насколько тормознее и жирнее код получается по сравнению с c++.
+ актуальный вопрос с батарейками и rtos
Жаль 8битные контроллеры вообще никак

★★

Ну таки я юзал для ARM + Linux и видел как светодиодом моргали на AVR, но прям полноценно в STM32\ESP8266\AVR\PIC - это мне кажется дело не скорое.

Хотя смотрю текста прибавилось тут.

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

Да да да Половина тестов раста там:

        unsafe {
            let mut mpz = uninitialized();
            __gmpz_init_set_ui(&mut mpz, i);
            Mpz { mpz: mpz }
        }

Просто охеренный тест охеренного языка с охеренной безопасностью.

anonymous ()

Оно не тормознее и не жирнее, но с библиотеками еще не айс. Общий прогресс наблюдать лучше тут https://github.com/rust-embedded/wg/issues

- В качестве rtos посмотри https://github.com/japaric/cortex-m-rtfm.
- Нема встроенной заливалки фреша, но кто-то уже взялся делать https://github.com/rust-embedded/wg/issues/311
- Нема GUI
- esp через странные препроцессоры, я бы не стал это рассматривать всерьез, с каким-нибудь https://www.amebaiot.com/ шансов больше.

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

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

Как ты себе представляешь чтобы мимо всего святого вковбоить какой-то пин в другое значение? Это unsafe по определению. Другое дело что это можно протестировать и завернуть в safe метод, это и есть использование Rust здорового человека

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

В том, что большинство тестов там - практически сравнение оптимизаций llvm и gcc и не показывают ровным счетом ничего. То есть смысла сравнивать один и тот же код на С++ llvm и С++ gcc было бы куда больше. А по поводу «правильного» раста, так то можно глянуть на то как накалякана redox os. Которой чтоб просто запуститься нужно 500 мегов, а потом еще гига 2 чтоб просто шевелиться нормально. И это при том, что в ней ничего нет.

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

так то можно глянуть на то как накалякана redox os

То же нашёл с чем сравнивать, смысл Redox OS в том чтобы проверить что писать ОС на Rust возможно. Не всякая какашка написанная на Rust - это эталон кодописания, но всё равно дела лучше обстоят чем где либо КМК.

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

esp через странные препроцессоры, я бы не стал это рассматривать всерьез, с каким-нибудь https://www.amebaiot.com/ шансов больше.

Здесь насоветуют... я офигеваю (в плохом смысле). ESP32 один из самых распространённых вариантов для IoT. Не ARM, но по-своему интересен. Более распространены ARM, из которых основной вариант для рассмотрения STM32.

Что такое Ameba (впервые вижу это название). Посмотрел ссылку - платы на процессорах Realtek. Это ARM, но гораздо менее распространённые в IoT, чем STM32 (и гораздо менее распространённые, чем ESP32). Нафига было это советовать? Лишь бы что-то высказать и неважно, польза будет от этого или вред.

Про Rust в микроконтроллерах. Вроде бы, это пока эксперимент. Если интересно - принять в нём участие. Но сначала научиться программировать обычными способами.

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

В смысле тормозное? Он в некоторых местах, уделывает C++

Полная чушь: https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/rust.html

А так, почти в ровень идут.

Опять же - полная чушь. Мало того, что бенчмаркр ангажированный и автор не желает принимать решения. Так же, бенчится это на core2.

Rust!

И это тоже полная чушь. Весь «код» на «раст» - там есть просто перепаста 1в1 сишного кода - https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/nbody-rus... Т.е. адепт раста не написал этот код, а украл. К тому же - это unsafe через unsafe через сишный рантайм и llvm-рантайм.

К тому же, там нету сравнения с clang и все эти бенчмарки просто не имеют смысла.

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

а в чем конкретно претензия?

Тем, что это сишная либа. Каким образом ты измеряешь производительность языка, если дёргаешь через ffi сишный вызов, который делает 100% полезной работы?

что как всегда хейтеры агрятся на ключевое слово unsafe

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

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

То же нашёл с чем сравнивать, смысл Redox OS в том чтобы проверить что писать ОС на Rust возможно.

Нет, невозможно. Никому ненужны «ОС» - всем нужны конкурентоспособные и применимые ОС. Такую дристню и на js можно написать.

Не всякая какашка написанная на Rust - это эталон кодописания, но всё равно дела лучше обстоят чем где либо КМК.

На расте написано одно говно, а что формально «не совсем говно» - оно не совсем говно лишь потому, что это просто перепаста/биндинги с/к С/С++.

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

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

как только у тебя в коде появляется unsafe - слёту и сразу ломается методичка раст-адептов про безопасность, т.к. безопасность тут же кончается.

это уже сто раз проходили. до кого не дошло - дойдет только со временем.

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

это уже сто раз проходили. до кого не дошло - дойдет только со временем.

Ну да, что ты ещё можешь ответить. Вера она такая. Когда удобно у тебя балабольство вида «может и без unsafe и всё быстро и круто», а когда дело доходит до реальности «ну в unsafe нет ничего такого, да и вообще вы дураки».

unsafe раст несостоятелен в плане производительности и вообще чего-бы то ни было в контексте производительности, лоулевела. Точно так же как раст без перепасты из С/С++. Наврал и украл - вот девиз раста.

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

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

И заметим, как адепт опять же показал себя. Он задал вопрос - я ответил. Ответ очень неудобный и ему нечего ответить. Что делает адепт? Игнорирует ответ, игнорирует всё неудобное. В своё же ответе(на что методичка ему дала заготовку) - он ссылается на «ты тупой - тебе не понять».

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

К тому же - это unsafe через unsafe через сишный рантайм и llvm-рантайм.

Вы малость преувеличиваете.

ТестCLLVM
n-body08 (x86_64 SIMD)
binary-trees00
reverse-complement00
spectral-norm07 (x86_64 SIMD)
pidigits11 (GMP)0
fasta00
k-nucleotide00
fannkuch-redux00
mandelbrot00
regex-redux00

Итого: unsafe используют 3 из 10 тестов. Из них только один вызывает стороннюю C библиотеку, остальные используют LLVM для вызова SIMD.

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

Вы малость преувеличиваете.

Зачем ты играешь со мною в маня-манипуляции? Ты не показывай мне код, который сливает С/С++ - ты составляй таблицу из быстрее/равно. Всё остальное ни меня, ни тебя интересовать не должно.

К тому же, ты ещё ошибся с тем, что множество раст-портянок используют левые либы. И ты не можешь считать кодом решения только код написанный в портянке - иди считай unsafe в этих либах. Хотя считать их ты обязан и в stdlib, но так уж и быть - я сделаю скидку.

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

К тому же, я не раз говорил, что код С/С++ - там говно. Выиграть его не составляет никакого труда и соревнуясь с ним - это попросту выглядит жалко в глазах тех, кто что-то понимает в теме. Автор попросту не пропускает нормальный код и не хочет менять железо на актуальное. Этот бенчмарк уже давно нерелевантен.

К тому же, очень много бенчмарков там абсолютно тупых. Они бенчат io, какой-то ботлнек(типа https://benchmarksgame-team.pages.debian.net/benchmarksgame/performance/fasta... - там тупо всё упирает в код, который имеет одну и ту же производительность везде, даже в жаваскрипте).

Адекватные тесты: n-body, binary-trees, spectral-norm, reverse-complement(с натяжкой - там тоже io). Во всём остальном он сливает - мне лень смотреть.

Т.е. во всех тестах, где он не вливает - там либо unsafe(в 2-х), либо либы(ещё в 2х). Ну вообщем ты понял.

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

там есть просто перепаста 1в1 сишного кода
Т.е. адепт раста не написал этот код, а украл.

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

А, ну да, то что уделали сишечку, для хейтеров это как серпом по яйцам.

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

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

Сразу видно человека, который не знает, что делает unsafe в расте.

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

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

Запомни раз и навсегда. Во-первых этот код ни в какой раст не переноситься - это биндинги к llvm, а llvm к расту никакого отношения не имеет.

Во-вторых. Язык сам по себе ничего не значит - значит тот, кто пишет на нём. Человек, который может - выбирает язык, который может. И именно человек пишет код.

Именно поэтому ты не написал на расте ничего - ты украл чужое. Как украл чужой рантайм, чужой компилятор. Ты попросту вор, которые выдаёт чужое за своё и пытается это оправдать.

И при этом он оказался быстрее сишечного, это плохо?

Не оказался. Я уже объяснял ситуацию с теми бенчмарками.

А, ну да, то что уделали сишечку, для хейтеров это как серпом по яйцам.

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

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

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

Сразу видно человека, который не знает, что делает unsafe в расте.

Сразу видно человека, который не знает, что делает unsafe в расте.

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

Раст методичка имеет в своей базе то, что а) писать оптимальный код можно без unsafe, что есть враньё. б) unsafe где-то там видно и это как-то отличается от С/С++ - нет. Это такие же сектантские догматы. Каждый сектант считает, что вот его то догматы не догматы, а секта не секта. При этом никаких обоснований нет.

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

вот, кстати, хорошая методичка на тему https://www.youtube.com/watch?v=rTo2u13lVcQ

Дефолтная нелепая херня вида «надо делать безопасность руками», «у нас в С++ всё небезопасно, а в расте есть разделение» и прочее и прочее. И какие-то невнятные догматы уровня начальной школы.

Почему я в С++ не могу делать безопасность руками, а в этом убожестве могу? На чём основаны эти нелепые заявления? ДА ни на чём.

Тоже самое и в контексте «разделения». Если я не передаю в функцию никаких указателей - я знаю, что никакой «небезопасности» у меня(на уровне api) нету. Это очевидно. Далее уже в этой функции кто угодно может сделать что угодно.

добро пожаловать в комментарии ;)

Там 8 комментов + ноль дискуссии и вообще какой-либо осмысленности. Это мёртвая дристня.

К тому же кто-то уже написал более лёгкую версию моих контр-аргументов:

Better but now you depend on a huge ecosystem of crates with unsafe sprinkled all over. Not just the stdlib.

Уже 8 месяцев ответа нету.

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

К тому же разделение safe/unsafe - это не придумка раста - это было тысячи лет до. Опять сектанты занимаются подменой понятий. В расте - это ЯВНОЕ разделение, а не разделение вообще(оно есть везде).

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

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

Особенно меня смешат нелепые потуги клоуна «это С++-стиль». Убогие - нет, это не С++-стиль - это матчасть-стиль. И ты от неё никуда не уйдёшь, о чём ты далее и кукарекал. И это типичная тактика сектантов - наделять что-то конкретное свойствами общими.

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

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

Мы то другие, правда почему-то такие же.

И это типичная тактика сектантов - наделять что-то конкретное свойствами общими.

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

никто бы лучше тебя не описал тебя самого

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

И это типичная тактика сектантов - наделять что-то конкретное свойствами общими.

это еще и эталонный пример утверждения, описывающего самого себя

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

Лайк, если думаешь, что unsafe в расте отключает какие-то там проверки.

Откуда вообще пошло такое мнение? Не раз видел на лоре дурачков, которые так считают.

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

Лайк, если думаешь, что unsafe в расте отключает какие-то там проверки.

Никаких проверок там и нет, чтобы их отключать. Никакого safe-раста вообще не существует.

Какие проверки отключает - я могу прочитать что угодно, в частности выйти за границы массива. Иди оправдывайся за балабольство.

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

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

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

Это можно сделать и из safe-раста.

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

Да ты же не знаешь того, о чем пишешь.

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

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

Был в прошлом году на corehard и какой-то чел из комитета затирал что боится использовать string_view потому что легко случайно допустить ошибку. То есть он готов заплатить лишними копиями за спокойные нервы. Я думаю таких людей больше одного и никто бы добровольно так не делал если бы был уверен что string_view не насрет ему в штаны. Вот в этом и польза.

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

Был в прошлом году на corehard и какой-то чел из комитета затирал что боится использовать string_view потому что легко случайно допустить ошибку.

Ну адекватных людей тут не особо много. Хотя на самом деле - это фундаментальная дыра С++. Этот убогий stl дизайнил человек, который ничего вообще не знал о производительности.

Т.е. вместо концепции raw-ресурса и неких обёрток, которые были бы давали интерфейс к этому ресурсу - они решили делить всё это на конпейнеры - это полная чушь. Хотя и в расте так же, но то совсем днище.

И вот, если у нас есть абстрактный ресурс и живёт он до тех пор, пока его использует какой-то контейнер(вернее уже какой-то *_view/адаптор). Точно так же можно сделать shared_ресурс. Этот ресурс может жить во множестве контейнер(вернее уже какой-то *_view/адаптор).

И всё, никакого копирования ненужно. И никаких проблем с «прочитать мёртвый объект» - нет. Но мы жрёт говно - нам норм.

Я думаю таких людей больше одного и никто бы добровольно так не делал если бы был уверен что string_view не насрет ему в штаны. Вот в этом и польза.

Дело в том, что раст - это анти-производительность.

В расте существует концепция постоянного копирования. Т.е. там все объекты копируются и тасуются между вызовами. Это полная дичь. Но, llvm умеет делать хороший constant propagation и иже с ним, и может убирать эти тонны копирований.

К тому же, раст ничего не даёт. Хотя в контексте string_view это ещё работает, т.к. это всё же ro-доступ и тут ещё можно говорить о каком-то расте.

Но везде и всюду нужны ссылки, rw-ссылки, всякие std::span - в этом раст нихрена не умеет. Вернее в какой-то мере умеет, но это много заморочек и ограничений. С таким же успехом проще написать себе нормальную либу, чем жрать дерьмо.

Это вообще типичная проблема раста. Когда адепты пытаются выдать раст за альтернативу, хотя это нихрена не альтернатива. Это тысячи убогих ограничений и заморочек, на которые тебя обрекает это днище. И очень многих людей обманывают, и это в это действительно верят. Что это как С++, только безопасней.

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

Похоже трепло совсем сломалось. Да и ты опять обосрался с методичкой. Никакого «мне нет» - ты обязан доказывать не мне, а вообще. Поэтому эта убогая методичка про «тебе» не работает. Абсолютно неважно - кто тебя спрашивает, да и спрашивает ли вообще - ты обязан, если ты не трепло, обосновывать свои потуги.

Хотя в прочем, твой уровень развития вполне показательный. Типичный адепт раста. Рядовой школяр-эникей.

NishiragiShintaro ()