70,5
Карма
34,8
Рейтинг
30
Подписчики
Андрей Лесников @ozkriff

Крабообразный / Системный программист

Выпуск Rust 1.31 и Rust 2018

0

Как я понял, там какую-то мета-информацию rustup'а исправить нужно. В деталях сильно не копался, потому что способ выше занял десять секунд и все исправил.

У Интернета могут быть серьёзные проблемы из-за языков, подобных C и C++, которые способствуют появлению уязвимостей

У Интернета могут быть серьёзные проблемы из-за языков, подобных C и C++, которые способствуют появлению уязвимостей

+4
Напишете 100% безопасно с «автоматикой» — будет x1, напишете грамотно с «ручным управлением» — будет x50 скорость.

Есть ссылка откуда такие числа, особенно в контексте Rust'а?

Вышел Rust 2018… но что это такое?

+2

Меня тоже, если честно, немного тревожит этот аспект NLL — что оно более хитрое теперь все. Но 1) не так и просто придумать более-менее реалистичный пример, когда реально из-за этого сильно наступить на грабли 2) очень много людей просто отказывались пользоваться языком с до-NLL проверками, считая язык просто недоработанным (даже на хабре к прошлым статьям десятки таких коментов были).

Вышел Rust 2018… но что это такое?

Выпуск Rust 1.31 и Rust 2018

+7

Всех поздравляю с самым важым после 1.0 выпуском Rust. Уже успел перетащить свою поделку на новую редакцию, это было не больно, так что всем советую. :)


Предвидя два популярных вопроса:


1) rustup немного косячит с компонентами при обноввлении до новой версии. Есл иу вас раньше столи rustfmt-preview и clippy-preview компоненты, то теперь новые clippy и rustfmt компоненты нельзя будет поставить без переустановки тулчейна (URLO тема):


rustup self update
rustup toolchain uninstall stable
rustup toolchain install stable

2) Новый дизайн https://www.rust-lang.org очень спорное явление, сразу могу сказать что вот текущая активная тема для его обсуждения, а старый сайт можно найти тут: https://prev.rust-lang.org

У Интернета могут быть серьёзные проблемы из-за языков, подобных C и C++, которые способствуют появлению уязвимостей

0

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

Вышел Rust 2018… но что это такое?

0

На всякий оговорюсь, что не прям сильно в теме и для ржавой встройки я скорее просто сочувствующий, чем реально имеющий опыт.


… всё это оставляет ощущение глубокой альфы, на которую ещё несколько лет можно даже не смотреть.

С этим особо и спорить не стану — ржавая встройка в текущий момент это и правда еще удел энтузиастов и экспериментаторов, которые пытаются развить экосистему и довести до ума инструментарий. До серьезного "взял и в продакшн" тут еще море работы.


И как, повысили? И про это можно прочитать где-то в объёме большем, нежели «наши доблестные разработчики всё исправили»?

Можно, но за подробностями это с уровня таких больших "корпоративных релизов" надо спускаться на уровень конкретных Embedded WG ежемесячников (например, вот) или даже конкретных задач на гитхабе (например вот или вот).

Вышел Rust 2018… но что это такое?

0
"Для встроенной разработки необходимо было повысить стабильность существующей функциональности."
Обожаю такие фразы. Звучит весомо, не значит ничего.

Почему ничего? Есть всякие нестабильные флаги и возможности компилятора, очень полезные для разработки под встройку, но еще не доступные в стабильном канале. Где-то в Embedded WG ресурсах список был — потихоньку дело толкают к стабилизации всего этого хозяйства.


Для встраиваемой разработки необходимо было сделать так, чтобы без плясок с многочисленными бубнами бинарник занимал какое-то разумное место, сравнимое с написанным на C.

А no_std бинари много места занимают? Вроде не должны бы.

Зависимые типы — будущее языков программирования

0

Так разница ж принципиальная, аналогично как между написанием кода на ЯП со статической типизацией и на языке с динамической типизацией, но где мы при вызове функций в рантайме спрашиваем тип аргументов, возвращая ошибку, если нам вместо строки число передали.

Rust новости #3 (ноябрь 2018)

0

+1, это совсем другой уровень временных затрат.


Но тут даже скорее вопрос в просто другом фокусе. В "альфа версии" этих ежемесячников написано, какую примерно ЦА я себе представляю:


Я тут подумал, что на хабре довольно много сочувствующих ржавчине, но не прям сильно следящих за происходящим в экосистеме (не подписанных на TWIR?).

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


Ну и в целом, даже если и вопрос ЦА вынести за скобки, я сильно не уверен в жизнеспособности такого портала даже для основного раст сообщества, потому что практические потребности всех активных членов карго-культа покрываются или хорошо структурированным TWIR еженедельниками, или всезнающим /r/rust, оба которых уже всем знакомы и привычны.

Rust новости #3 (ноябрь 2018)

0

Шпаргалка и правда больше информации содержит, но не так что бы на порядок же.


просто ничего нет — кучка ключевых слов

Это звучит как Appendix A: Keywords, но есть же еще и Appendix B: Operators and Symbols, в котором как раз весь основной синтаксис разобран.

Rust новости #3 (ноябрь 2018)

10 неочевидных преимуществ использования Rust

0
В официальной группе по расту в телеграмме

Ни телеграмовское, ни rustycrate.ru/gitter сообщества не официальные.

10 неочевидных преимуществ использования Rust

+2

Пример показывает, что тесты писать просто — нашлепнул на функцию #[test] и готово, остальное встроено в стандартный cargo.

10 неочевидных преимуществ использования Rust

+3

Спокойно, просто вместо let a = 5; надо написать let mut a = 5; и она станет изменяемой.


Про идентификаторы — я подозреваю что в серьезных международных проектах просто будет включено предупреждение об использовании не-ascii идентификаторов (#![forbid(non_ascii_idents)]) и все.

10 неочевидных преимуществ использования Rust

10 неочевидных преимуществ использования Rust

+4

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


Обычно говорят что раст императивный, но с вывертом: чистые функциональные языки стараются не допускать общего изменяемого состояния (shared mutable state), запрещая изменения, а Ржавчина запрещает именно одновременность общего и изменяемого состояния. Т.е. в один момент времени состояние может быть или общим (много & указателей на переменную, например), или изменяемым, но с уникальным доступом (&mut указатель требует эксклюзивности доступа). Т.е. цель сходная с чистой функциональщиной, но путь к ней другой из-за необходимости быть более низкоуровневым.


P.S. недавняя статья на тему

10 неочевидных преимуществ использования Rust

10 неочевидных преимуществ использования Rust

+2

Для Си есть, как минимум, два более-менее живых:



Волшебства не делают — на выходе дают очень неидиоматичный код, наполненный сишными типами, сырыми указателями и unsafe'ом — т.е. годится только как первый шаг в портировании кода на раст.


Можно тут почитать отчет о недавней попытке использовать для портирования библиотеки: https://wiki.alopex.li/PortingCToRust

Губительная ошибка новичков в геймдеве

+2

Комментарии нарративщиков выше прям грусть навевают — вот жеж прям все прям игры делают исходя из сюжета или атмосферы, а игровые механики это, якобы, дело десятое уже :-\ .


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

10 неочевидных преимуществ использования Rust

Новости Rust #2 (октябрь 2018)

+3
мне кажется, что RFC в IETF, IAB и ISOC не пересекаются, и RFC однозначно можно было найти по номеру

Вполне может быть что так, это все ж таки связанные организации и их RFC находятся в одном "пространстве имен". Хотя я не то что бы прям сильно в теме как это все структурно устроено.


до тех пор, пока не появились ржавые RFC, которые уже пересекаются

Я не уверен что Rust это первый проект, который стал свои формализованные предложения обзывать "RFC": быстрый гуглеж показывается как формальные "MS RFC" еще аж в 2006ом году, так и просто неформальное использование аббревиатуры, например, на форумах D в 2011ом. А за последние годы так вообще распространенной практикой стало (хотя это уже, возможно, под влиянием ржавчины): emberjs/rfcs, yarnpkg/rfcs и еще десятки.


В общем, видимо, если контекст неоднозначен и есть шанс запутаться, то лучше сразу писать "<ИмяПректа> RFC <номер>".

Новости Rust #2 (октябрь 2018)

+2

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


Допустим, когда я вижу что-то типа RFC 5389 Section 15.2, я понимаю, что это ссылка на описание STUN, аттрибут XOR-MAPPED-ADDRESS.

По умолчанию "RFC" значит именно ржавые, а для IETF, IAB, ISOC или еще каких явно указывается префикс организации:


As stated in the User Datagram Protocol's specification in [IETF RFC 768], UDP is an unordered, unreliable protocol;

Новости Rust #2 (октябрь 2018)

+1

В идеале, никак не должны отличаться. По крайней мере процедуру одинаковую проходят.

Изучаю Rust: Как я игру «Змейка» сделал

Изучаю Rust: Как я игру «Змейка» сделал

0
Для 3D графики использовалась библиотека Three.rs которая является портом библиотеки Three.js

three-rs не настолько близка к 3js, что бы портом называться, она просто вдоховлена 3js. Так же как amethyst — не порт (уже мертвого) Стингеря, а ggez — не порт LÖVE.

Изучаю Rust: Как я игру «Змейка» сделал

0

В теории можно, но используемый three-rs движок в данный момент не поддерживает WASM.


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

Выпуск Rust 1.30

0
в других языках

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

Выпуск Rust 1.30

0

Да, походу в совсем узкой консоли имена компилируемых пакетов не показываются и все окей. А вот если сделать 90-100 шириной, то справа от индексов компилируемых пакетов показываются их имена и они уже не влезают в границу строки нормально. :(

Выпуск Rust 1.30

0

Новый прогрессбар так себе помещается в узкие вертикальные консоли по 90-100 символов, но не могу найти опций cargo для его отключения. Никто не натыкался?

GitHub анонсировал собственный CI/CD и начал раздавать инвайты

Введение в разработку типичного Open Source решения

+1
Профиль на гитхабе характеризует только умение писать код, а опыт на девлисте характеризует еще и опыт командной разработки.

Меня вот эта часть немного смутила. Правильно понимаю, что речь не идет о проектах, где много обсуждений проходят таки в задачах и ПРах?

Yew — Rust&WebAssembly-фреймворк для фронтенда

Telltale всё. А жаль

+1

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

Telltale всё. А жаль

+6
Второго Wolf Among Us тоже не будет

Черт, жалко :( Остальными играми не сильно проникся, но первый волк чем-то прям зацепил. Как-то особенно хорошо к его сеттингу и истории ложились телтейловские игровые и повествовательные механики.

Выпуск Rust 1.29

Выпуск Rust 1.29

0
переписывать кодовую базу

Не уверен, может это и имелось в виду, но обычно советуют c уже написанными проектами переходить по схеме "в целом проект остается на чем он и был написан, но новую функциональность мы реализуем на Rust, переписывая только самый минимум нужных для этого модулей". И постепенно-инкрементально проект и разработчики перебираются на ржавую сторону.


По этой теме недавно доклад от разработчиков Tor'а был на растконфе:


https://www.youtube.com/watch?v=WI4ApeHH9QE


Это все раво не так просто как с самого начала проект на расте начать, конечно, но уже намного более реальный путь чем "просто берем и RIIR!!! переписываем разом весь код ржавчину", о котором многие думают в первую очередь.


надо учить язык, а он окончательно ещё не устоялся

Этот момент немного смутил. Если речь о том что какой-то конкретной вещи в языке еще не хатает (async/await того же) — может и имеет смысл подождать ее выпуска и стабилизации.


Но в целом, 1.0 с гарантиями обратной совместимости давно уже вышел и однажды написанный корректный код так и продолжит работать, а какие-то доработки в язык так и будут вноситься до самой его смерти скорее всего.

Выпуск Rust 1.29

0

Почему не идет? Я теперь не уверен что понял изначальный вопрос.


Вроде как мы запускаем rustfix, смотрим через git diff что он сделал — если не нравится, то откатываем или частично, или целиком до последнего комита репозитория.

1 туда