Максим Лапшин 0 25 января, 2020 Опубликовано 25 января, 2020 · Жалоба Вводная для тех, кто не слышал о Rust. Программисты Mozilla пережив три пожара и два переименования решили собрать все самые лучшие практики программирования на С и поняли, что они во многом сводятся к формализуемым четким правилам, выполнение которых делает программу надежной. Этот набор правил решили формализовать в виде компилятора языка программирования, который дает совершенно удивительные гарантии: целостность памяти, проверяемая во время компиляции. Т.е. не memory safety of assembler and speed of ruby, а наоборот. Вот свежий пример: в зависимости от уровня приоритета прерывания, компилятор может потребовать обернуть обращение к переменной из обработчика в мьютекс. Rust стал первым языком за много десятилетий, на котором можно написать библиотеку, которая будет встроена в код на С. В обратную сторону умеет каждый язык программирования, а вот стать базовым не удавалось фактически даже плюсам. Но всё было бы слишком скучно, если бы Rust так и оставался языком в рамках традиционного юникса. Всё пошло дальше: из раста получилось выкинуть привычный stdlib и компилировать его под микроконтроллеры. https://rust-embedded.github.io/book/ а на базе этого родилась целая микро-ос в стиле freertos. https://rtfm.rs/ Если интересно — могу поделиться опытом нашей разработки под stm32 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 25 января, 2020 Опубликовано 25 января, 2020 · Жалоба Еще более наркоманский язык, нежели даже питон! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 35 25 января, 2020 Опубликовано 25 января, 2020 · Жалоба 1. Кривые мозги не лечатся модификацией языка программирования :). По этой дорожке уже топали: казалось, что, запретив оператор goto и указатели на память, можно получить надежный код. Тогда как в действительности ошибки подобного рода встречается исключительно редко, а большинство ошибок порождает непродуманный алгоритм. Если перед тем, как совершить какой-то поступок, всякий законопослушный гражданин должен получить на это разрешение от 10-ти чиновников, то это ничуть не гарантирует, что он в своем начинании добьется успеха. Точно так же не получится ничего хорошего, если обставить язык программирования бюрократическими препонами, доходящими до маразма. Это приводит лишь к дополнительным тратам времени и сил на борьбу с компилятором, когда программист точно знает, что ему нужно, но компилятор отрезает ему прямой путь, заставляя искать обходные. 2. Западло мне перед всяким присваиванием писать слово "Let" :). Аки возвращение к древним версиям Бейсика . 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 34 25 января, 2020 Опубликовано 25 января, 2020 · Жалоба 2 часа назад, Максим Лапшин сказал: Этот набор правил решили формализовать в виде компилятора языка программирования, который дает совершенно удивительные гарантии: целостность памяти, проверяемая во время компиляции. Вот кому-то интересно же все-таки придумывать чего-то такое, чтобы занять свои мозги... Я понимаю, если б в Сях было что-то такое, что не позволяло бы сделать какие-либо нужные вещи, и для этого мы придумаем язык "D", в котором они реализованы, НО все остальное остается Си-подобным, чтоб было проще перейти на новый язык, но тут-то даже весь синтаксис другой, равносильно переходу с Асма на Си, но этот-то переход был оправдан... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 35 25 января, 2020 Опубликовано 25 января, 2020 · Жалоба Похоже, что Rust ожидает судьба C++. Т.е. для него попросту напишут прекомпилятор на тот же C++ и на этом успокоятся, т.к. писать компилятор под новый язык - довольно трудоемкое занятие, требующее не одноразовых усилий, а постоянного сопровождения. Точно так же и C++ по-началу существовал в виде прекомпилятора на C, и лишь гораздо позже стал сам по себе, превратив C в свое подмножество. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 25 января, 2020 Опубликовано 25 января, 2020 · Жалоба 3 hours ago, Максим Лапшин said: Если интересно — могу поделиться опытом нашей разработки под stm32 Расскажите, действительно интересно1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 25 января, 2020 Опубликовано 25 января, 2020 · Жалоба 7 minutes ago, Xenia said: Похоже, что Rust ожидает судьба C++ Ну, С++ вполне в десктопной разработке используется. А ржавчина - несуразность какая-то для гиков. Чем-то напоминает язык brainfuck: тоже никому нафиг не нужный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 2 25 января, 2020 Опубликовано 25 января, 2020 · Жалоба 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-а, и портировать свой ввод-вывод и профилировать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Максим Лапшин 0 25 января, 2020 Опубликовано 25 января, 2020 · Жалоба 4 hours ago, haker_fox said: Расскажите, действительно интересно1 боюсь, что одному вам. Остальные тут годятся лишь на дебильные аргументы про «эх, молодежь» и дискуссию уровня «у нас тут один программист, гит нам не нужен» Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha-z 2 25 января, 2020 Опубликовано 25 января, 2020 · Жалоба 2 minutes ago, Максим Лапшин said: Остальные тут годятся лишь на дебильные аргументы про «эх, молодежь» и дискуссию уровня «у нас тут один программист, гит нам не нужен» А вы попробуйте переубедить. Не шапкозакидательством, с чего вы начали, а повествованием в стиле "Смотрите, как мне хорошо, ибо...". Мне вот тоже интересно, может я что-то теряю в жизни, продолжая писать на plain C... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Максим Лапшин 0 25 января, 2020 Опубликовано 25 января, 2020 (изменено) · Жалоба ---- Изменено 25 января, 2020 пользователем Максим Лапшин Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha-z 2 25 января, 2020 Опубликовано 25 января, 2020 · Жалоба 2 minutes ago, Максим Лапшин said: С Rust это сильно облегчается. Вот и покажите как. Покажите конкретно, как у вас все хорошо! А то мы все тут обросли valgrind'ами, PVS-студиями, полиспейсами и прочими LDRA и не знаем, как в других вселенных все хорошо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 35 25 января, 2020 Опубликовано 25 января, 2020 · Жалоба 7 часов назад, Максим Лапшин сказал: https://rust-embedded.github.io/book/ Скажите, а эту книжицу можно добыть в pdf-формате или ее только на погляд читать дают? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 2 25 января, 2020 Опубликовано 25 января, 2020 · Жалоба 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SSerge 4 26 января, 2020 Опубликовано 26 января, 2020 · Жалоба 8 часов назад, Максим Лапшин сказал: боюсь, что одному вам. Остальные тут годятся лишь на дебильные аргументы про «эх, молодежь» и дискуссию уровня «у нас тут один программист, гит нам не нужен» Ну, Вы тоже не слишком оригинальны. Я эти мантры про новейший язык/технологию программирования которые всё-всё изменят и углубят не первый раз вижу. Пока идёт реклама - всё выглядит прилично, много умных слов, апологеты нового с умным видом рассуждают о стоящих перед отраслью проблемах, красочно расписывают как именно их детище эти проблемы решит и т.д. и т.п. Временами даже возникает ощущение что они сами понимают о чём говорят. Когда же дело доходит до демонстрации успехов чары рассеиваются, а всем кто на что-то надеялся с помпой презентуют ещё один самопальный велосипед с квадратными колёсами. А серебряной пули как не было, так и нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться