All streams
Search
Write a publication
Pull to refresh
76
0
Андрей Лесников @ozkriff

Rust сектант и хобби-игродел

Send message
> Использование на камнях без fpu — боль

Хм, для такой, как по мне, экзотики можно было собрать с переопределением `lua_number` в `int`.

> сравнение float'ов — боль

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

> иногда очень не хватало простых человеческих битовых операций

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

> их можно вынести в мини-библиотеку

Еще у luajit было нечто приличное — http://bitop.luajit.org — но это, конечно, не стандартный интерпретатор и не везде заработает.

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

Хотя мне странно, что lua в этом списке, вот уж связанную с ним работу в игрострое точно не сложно найти.
> Rust продолжает стремительно меняться. Отставание в обучающих материалах на несколько месяцев может поставить ваши знания под угрозу.

После выхода 1.0 это уже совсем не так актуально. Собственно, большинство статей, написанных после середины 2015ого, вполне себе актуальны и полезны.
Бедный Клабник эту главу уже нцатый раз переписывает. Просто «время жизни» в ржавчине как монады в хаскелях — штука простая, но хрен ее просто так объяснишь)
> Плюс язык не выглядит уже намного проще С++

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

И, кстати, почему «уже»?
Это сводит на нет изначальные плюсы поиска по полигональной навигационной сетке.
Чем создание PR не «отправлять на ревью коммиты»?
Не то же самое — http://rurust.github.io/rust_book_ru/src/traits.html
Да просто к термину придрался. «Функциональщиной» все-таки обычно называют вычисления без побочных эффектов, а вышеописанное — это «процедурщина» :).
> функциональщины

кхм
> в Rust указатели могут быть использованы только внутри unsafe блока

Смотря как понимать «использованы» — сырые указатели можно брать и передавать где угодно, вот разыменовать можно только в `unsafe{}`.

> а если они там были объявлены, то они его и покинуть не смогут

Не, сырые указатели можно куда угодно передавать же, в том числе и из блока:

https://play.rust-lang.org/?gist=17f0da2b3d478e51e0b7&version=stable
> Макросы и так многострочные

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

Нужны просто HKT и чертовы монады с `do` :).
> Управление памятью — редкая проблема

Я не вижу, где бы такое утверждалось. Речь как раз о том, что «безопасность и _ювелирное_ обращение с памятью» не так уж и сильно нужны большинству программистов, по крайней мере по их представлениям.
> Что Rust действительно делает – так это отделяет наследование от полиморфизма…
> Хотите верьте, хотите – нет, но по крайней мере в Rust 1.6 нет вообще никаких специальных инструментов для наследования структур…

Я уже везде об этом успел поныть, но напишу таки еще раз — хочу это самое наследование реализаций, отделенное от полиморфизма. Как анонимные поля в Go или что в таком духе. Хаки с Deref это не полноценное решение, а вручную «пробрасывать» методы в структуру-обертку — боль.

А официальной активности на этом фронте (https://github.com/rust-lang/rfcs/issues/349) как-то совсем не видно, только парочка статей с размышлениями была, и то н-цать месяцев назад :(.
Это только если данные между библиотеками-зависимостями передаются, к сожалению.
Можно вот это, например, из clippy к своему проекту прикрутить, если кажется опасным:

https://github.com/Manishearth/rust-clippy/wiki#shadow_unrelated
В плюсах такого нет, там для всего требуется предварительное объявление.
Это другое же, в ржавчине область видимости нормально ограничена блоками, просто не требуется предварительное объявление, потому что компиляторы уже н-цать десятилетий как не однопроходные.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity