Перейти к содержанию
    

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

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

Т.е. не memory safety of assembler and speed of ruby, а наоборот.

 

Вот свежий пример: в зависимости от уровня приоритета прерывания, компилятор может потребовать обернуть обращение к переменной из обработчика в мьютекс.

 

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

 

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

 

Всё пошло дальше: из раста получилось выкинуть привычный stdlib и компилировать его под микроконтроллеры.

https://rust-embedded.github.io/book/

 

а на базе этого родилась целая микро-ос в стиле freertos.

https://rtfm.rs/

 

Если интересно — могу поделиться опытом нашей разработки под stm32
 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще более наркоманский язык, нежели даже питон!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Кривые мозги не лечатся модификацией языка программирования :). По этой дорожке уже топали: казалось, что, запретив оператор goto и указатели на память, можно получить надежный код. Тогда как в действительности ошибки подобного рода встречается исключительно редко, а большинство ошибок порождает непродуманный алгоритм.

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

 

2. Западло мне перед всяким присваиванием писать слово "Let" :). Аки возвращение к древним версиям Бейсика .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, Максим Лапшин сказал:

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

Вот кому-то интересно же все-таки придумывать чего-то такое, чтобы занять свои мозги... Я понимаю, если б в Сях было что-то такое, что не позволяло бы сделать какие-либо нужные вещи, и для этого мы придумаем язык "D", в котором они реализованы, НО все остальное остается Си-подобным, чтоб было проще перейти на новый язык, но тут-то даже весь синтаксис другой, равносильно переходу с Асма на Си, но этот-то переход был оправдан...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, Максим Лапшин said:

Если интересно — могу поделиться опытом нашей разработки под stm32

Расскажите, действительно интересно1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 minutes ago, Xenia said:

Похоже, что Rust ожидает судьба C++

Ну, С++ вполне в десктопной разработке используется. А ржавчина - несуразность какая-то для гиков. Чем-то напоминает язык brainfuck: тоже никому нафиг не нужный.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 hours ago, Максим Лапшин said:

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

От же молодежь, совсем ничего не помнит и мало чем интересуется. 
Эта самая килер-фича Rust-под названием ownership, позволяющая автоматом освобождать память есть не что иное как реинкарнация ARC (Automatic Reference Counting) в Delphi, придуманная десятки лет назад.
Но ! ARC теперь уже есть в компиляторах C++ под Android и iOS и в  CLang - https://clang.llvm.org/docs/AutomaticReferenceCounting.html

И вообще когда топят за язык, то по боку весь его синтаксис и тулсы, важны только либы! 
И да, Rust снабжен мощными строковыми либами которые в паре с ownership-ом делают его хорошим выбором если занимаетесь работой со строковыми данными. А это все интернет технологии, IoT и проч. бизнес процессы.  Либы Rust-а повторяют всю функциональность STL в C++ и еще добавляют. 

И точно Rust не умрет с такими либами. Но на без MMU-шный embedded ему еще рано.
Эт где нить на Raspberry PI с ним можно, а на Cortex-M замучаются разгребать фрагментацию heap-а, и портировать свой ввод-вывод и профилировать.  

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, haker_fox said:

Расскажите, действительно интересно1

боюсь, что одному вам.

Остальные тут годятся лишь на дебильные аргументы про «эх, молодежь» и дискуссию уровня «у нас тут один программист, гит нам не нужен»

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, Максим Лапшин said:

Остальные тут годятся лишь на дебильные аргументы про «эх, молодежь» и дискуссию уровня «у нас тут один программист, гит нам не нужен»

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

----

Изменено пользователем Максим Лапшин

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, Максим Лапшин said:

С Rust это сильно облегчается.

Вот и покажите как. Покажите конкретно, как у вас все хорошо! А то мы все тут обросли valgrind'ами, PVS-студиями, полиспейсами и прочими LDRA и не знаем, как в других вселенных все хорошо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 часов назад, Максим Лапшин сказал:

Скажите, а  эту книжицу можно добыть в pdf-формате или ее только на погляд читать дают?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

28 minutes ago, Xenia said:

Скажите, а  эту книжицу можно добыть в pdf-формате или ее только на погляд читать дают?

Читаем здесь о недостатках библиотеки ядра для Rust  https://github.com/rust-lang/rfcs/blob/master/text/1184-stabilize-no_std.md#drawbacks
После такого - "and owned strings are not available without liballoc, which will remain an unstable library. "  програмить на Basic-e будет лучшей альтернативой. 
А Core Library - единственная либа доступная под bare metal в Ruste 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 часов назад, Максим Лапшин сказал:

боюсь, что одному вам.

Остальные тут годятся лишь на дебильные аргументы про «эх, молодежь» и дискуссию уровня «у нас тут один программист, гит нам не нужен»

 

Ну, Вы тоже не слишком оригинальны.

Я эти мантры про новейший язык/технологию программирования которые всё-всё изменят и углубят не первый раз вижу.

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

Временами даже возникает ощущение что они сами понимают о чём говорят.

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

А серебряной пули как не было, так и нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...